Как я могу изменить ключи в связке утверждений 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.
Как мне поступить, пожалуйста?