From 6a48fa64ce4d902af7b567dd64a294c6fc33f759 Mon Sep 17 00:00:00 2001 From: ishaan-jaff Date: Thu, 22 Feb 2024 14:25:07 -0800 Subject: [PATCH 1/2] (docs) set generic user attributes --- docs/my-website/docs/proxy/ui.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/my-website/docs/proxy/ui.md b/docs/my-website/docs/proxy/ui.md index 410d8d5f904..9dcf992eb4a 100644 --- a/docs/my-website/docs/proxy/ui.md +++ b/docs/my-website/docs/proxy/ui.md @@ -133,6 +133,9 @@ The following can be used to customize attribute names when interacting with the ```shell GENERIC_USER_ID_ATTRIBUTE = "given_name" GENERIC_USER_EMAIL_ATTRIBUTE = "family_name" +GENERIC_USER_DISPLAY_NAME_ATTRIBUTE = "display_name" +GENERIC_USER_FIRST_NAME_ATTRIBUTE = "first_name" +GENERIC_USER_LAST_NAME_ATTRIBUTE = "last_name" GENERIC_USER_ROLE_ATTRIBUTE = "given_role" GENERIC_CLIENT_STATE = "some-state" # if the provider needs a state parameter GENERIC_INCLUDE_CLIENT_ID = "false" # some providers enforce that the client_id is not in the body From b205d13a3b13e7661027216ebf27560ffd4d449a Mon Sep 17 00:00:00 2001 From: ishaan-jaff Date: Thu, 22 Feb 2024 14:25:32 -0800 Subject: [PATCH 2/2] (feat) use generic user first name / last name --- litellm/proxy/proxy_server.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 853f10234bc..66496b21602 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -5321,12 +5321,22 @@ async def auth_callback(request: Request): ) generic_user_id_attribute_name = os.getenv("GENERIC_USER_ID_ATTRIBUTE", "email") + generic_user_display_name_attribute_name = os.getenv( + "GENERIC_USER_DISPLAY_NAME_ATTRIBUTE", "email" + ) generic_user_email_attribute_name = os.getenv( "GENERIC_USER_EMAIL_ATTRIBUTE", "email" ) generic_user_role_attribute_name = os.getenv( "GENERIC_USER_ROLE_ATTRIBUTE", "role" ) + generic_user_first_name_attribute_name = os.getenv( + "GENERIC_USER_FIRST_NAME_ATTRIBUTE", "first_name" + ) + generic_user_last_name_attribute_name = os.getenv( + "GENERIC_USER_LAST_NAME_ATTRIBUTE", "last_name" + ) + verbose_proxy_logger.debug( f" generic_user_id_attribute_name: {generic_user_id_attribute_name}\n generic_user_email_attribute_name: {generic_user_email_attribute_name}\n generic_user_role_attribute_name: {generic_user_role_attribute_name}" ) @@ -5339,9 +5349,11 @@ async def auth_callback(request: Request): def response_convertor(response, client): return OpenID( - id=response.get(generic_user_email_attribute_name), - display_name=response.get(generic_user_email_attribute_name), + id=response.get(generic_user_id_attribute_name), + display_name=response.get(generic_user_display_name_attribute_name), email=response.get(generic_user_email_attribute_name), + first_name=response.get(generic_user_first_name_attribute_name), + last_name=response.get(generic_user_last_name_attribute_name), ) SSOProvider = create_provider(