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", и все заработает

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