Django-allauth Azure Ad Configurations
Я пытаюсь настроить аутентификацию django azure ad с помощью django-allauth, но в настоящее время в документации нет надлежащей документации по настройке Azure ad.
У меня есть client_id, secret и tenant_id. Я попробовал несколько конфигураций, но, похоже, они не работают. Конфигурация 1:
SOCIALACCOUNT_PROVIDERS = {
'azure': {
'APP': {
'client_id': 'client_id',
'secret': 'secret',
'key': ''
}
}
}
Конфигурация 2:
SOCIALACCOUNT_PROVIDERS = {
'azure': {
'APP': {
'client_id': 'client_id',
'secret': 'secret',
'key': '',
'tenant_id': '',
}
}
}
I have experimented few more configuration but its seems to be not working
https://django-allauth.readthedocs.io/en/latest/providers.html
Как вы сказали, документации по этой интеграции не хватает. Мне удалось заставить Azure SSO работать со следующей конфигурацией в настройках для приложения single tenant. Во-первых, убедитесь, что в INSTALLED APPS
:
"allauth",
"allauth.account",
"allauth.socialaccount",
"allauth.socialaccount.providers.microsoft",
Обратите внимание на отсутствие .azure
в качестве провайдера. Мои тесты показали, что использование .microsoft
в качестве провайдера работает с моими зарегистрированными однопользовательскими приложениями в Azure AD, а .azure
не работает и выдает ошибку при входе. Вы указали, является ли ваше приложение одно- или многоарендным.
Во-вторых, объявите свою конфигурацию следующим образом:
SOCIALACCOUNT_PROVIDERS = {
'microsoft': {
'tenant': secrets.AZURE_AD_TENANT_ID,
'client_id': secrets.AZURE_AD_CLIENT_ID,
}
}
secrets.
- это просто мой пользовательский менеджер секретов, важен синтаксис и передаваемые идентификаторы. Здесь "арендатор" - это не ваш ID арендатора подписки, а ID арендатора, который отображается в области Overview вашего зарегистрированного приложения в Azure AD. client_id
находится в той же области обзора, чуть выше "ID объекта". Обратите внимание на отсутствие APP: {}
выше. Поначалу это тоже сбило меня с толку. Я нашел подсказку в этом посте на GitHub.
Наконец, чтобы это заработало, вы должны создать запись "Social Application" в панели администратора django-allauth внутри Django Admin. Дайте приложению любое имя, какое захотите, и добавьте сюда 'Client ID' и 'Application Secret' из зарегистрированного в Azure AD приложения.
Просто хотел сообщить последние новости об ответе Майло. После нескольких неудачных попыток, когда это не сработало, я заглянул в примечания к релизу проекта github для django-allauth и заметил этот комментарий к релизу 0.49.0:
Настройка арендатора Microsoft теперь должна быть указана с использованием заглавной буквы TENANT.
Просто измените падеж "tenant" на "TENANT", и все заработает