fix: Enable OIDC with Synology SSO Server (#4544)

This commit is contained in:
Jonas Graubner
2024-11-19 15:15:58 +01:00
committed by GitHub
parent f194a6d8c8
commit 426f91fb50
3 changed files with 8 additions and 4 deletions

View File

@@ -63,12 +63,14 @@ class OpenIDProvider(AuthProvider[UserInfo]):
try:
# some IdPs don't provide a username (looking at you Google), so if we don't have the claim,
# we'll create the user with whatever the USER_CLAIM is (default email)
username = claims.get("preferred_username", claims.get(settings.OIDC_USER_CLAIM))
username = claims.get(
"preferred_username", claims.get("username", claims.get(settings.OIDC_USER_CLAIM))
)
user = repos.users.create(
{
"username": username,
"password": "OIDC",
"full_name": claims.get("name"),
"full_name": claims.get(settings.OIDC_NAME_CLAIM),
"email": claims.get("email"),
"admin": is_admin,
"auth_method": AuthMethod.OIDC,
@@ -96,7 +98,7 @@ class OpenIDProvider(AuthProvider[UserInfo]):
def required_claims(self):
settings = get_app_settings()
claims = {"name", "email", settings.OIDC_USER_CLAIM}
claims = {settings.OIDC_NAME_CLAIM, "email", settings.OIDC_USER_CLAIM}
if settings.OIDC_REQUIRES_GROUP_CLAIM:
claims.add(settings.OIDC_GROUPS_CLAIM)
return claims