Как я могу изменить ключи в связке утверждений Django Auth ADFS?

Я использую django-auth-adfs для аутентификации пользователей Azure AD на моем бэкенде django, это отлично работает для пользователей в моей организации. Однако для пользователей из других организаций есть определенные ключи, определенные в моем CLAIMS_MAPPING, которые не возвращаются в JWT-токене.

Я пробовал различные предложения, которые я нашел, чтобы заставить эти ключи присутствовать, но они не сработали для меня, поэтому я решил просто использовать ключи, присутствующие в обоих токенах (токены из моей организации и токены извне моей организации).

Например, я изменил 'USERNAME_CLAIM': 'upn' на 'USERNAME_CLAIM': 'email', потому что ключ upn отсутствует в обоих токенах, но ключ email присутствует, и они возвращают одинаковые значения.

Моя проблема сейчас связана с ключами first_name и last_name. С токенами из моей организации это сопоставление работает нормально:

'CLAIM_MAPPING': {'first_name': 'given_name',
                      'last_name': 'family_name',
                      'email': 'upn'},

Однако ключ family_name не существует в токенах, полученных извне моей организации.

Ключ name существует в обоих токенах, поэтому я решил .split(" ") ключ name и получить части, но я не уверен, как это сделать, поскольку отображение происходит на строку, представляющую ключ в токене JWT, а не на выражение python.

Как мне поступить, пожалуйста?

Вернуться на верх