Browse Source

Merge pull request #8566 from rragundez/ms-auth-picture

Add functionality to retrive picture for microsoft oauth
Timothy Jaeryang Baek 3 months ago
parent
commit
3328e2ea97
2 changed files with 4 additions and 1 deletions
  1. 1 0
      backend/open_webui/config.py
  2. 3 1
      backend/open_webui/utils/oauth.py

+ 1 - 0
backend/open_webui/config.py

@@ -487,6 +487,7 @@ def load_oauth_providers():
             "server_metadata_url": f"https://login.microsoftonline.com/{MICROSOFT_CLIENT_TENANT_ID.value}/v2.0/.well-known/openid-configuration",
             "server_metadata_url": f"https://login.microsoftonline.com/{MICROSOFT_CLIENT_TENANT_ID.value}/v2.0/.well-known/openid-configuration",
             "scope": MICROSOFT_OAUTH_SCOPE.value,
             "scope": MICROSOFT_OAUTH_SCOPE.value,
             "redirect_uri": MICROSOFT_REDIRECT_URI.value,
             "redirect_uri": MICROSOFT_REDIRECT_URI.value,
+            "picture_url": "https://graph.microsoft.com/v1.0/me/photo/$value",
         }
         }
 
 
     if (
     if (

+ 3 - 1
backend/open_webui/utils/oauth.py

@@ -255,7 +255,9 @@ class OAuthManager:
                     raise HTTPException(400, detail=ERROR_MESSAGES.EMAIL_TAKEN)
                     raise HTTPException(400, detail=ERROR_MESSAGES.EMAIL_TAKEN)
 
 
                 picture_claim = auth_manager_config.OAUTH_PICTURE_CLAIM
                 picture_claim = auth_manager_config.OAUTH_PICTURE_CLAIM
-                picture_url = user_data.get(picture_claim, "")
+                picture_url = user_data.get(
+                    picture_claim, OAUTH_PROVIDERS[provider].get("picture_url", "")
+                )
                 if picture_url:
                 if picture_url:
                     # Download the profile image into a base64 string
                     # Download the profile image into a base64 string
                     try:
                     try: