Django allauth Microsoft SSO
У меня проблемы с настройкой опций SSO для моего проекта Django, над которым я работаю. Я надеюсь сделать так, чтобы только пользователи из моей организации могли войти в приложение, но я продолжаю получать следующую ошибку:
AADSTS50194: Приложение 'Azure: Application (client) ID'(DjangoAppSSO) не настроено как многопользовательское приложение. Использование конечной точки /common не поддерживается для таких приложений, созданных после '10/15/2018'. Используйте конечную точку, специфичную для арендатора, или настройте приложение как многопользовательское.
Я зашел и заполнил консоль администратора своим идентификатором клиента, как указано выше, из учетной записи Azure. Я также создал Client Secret с моим Value и Secret ID и поместил их в консоль администратора. В консоли администратора я указал значение в качестве "Ключа", а ID Secret - в качестве "Секретного ключа". Все необходимые импорты выполнены для settings.py, и я считаю, что проблема в том, что я передаю SOCIALACCOUNT_PROVIDERS возможно.
settings.py:
SOCIALACCOUNT_PROVIDERS = {
'microsoft': {
'APP': {
'tenant': 'organization',
'client_id': 'Azure: Application (client) ID',
}
}
}
Просто для уточнения, везде, где написано "Azure: ID приложения (клиента)" - это фактическое значение оттуда, я просто не хочу публиковать его где-либо.
AADSTS50194: Приложение не настроено как мультитенантное приложение. Использование конечной точки
/common
не поддерживается для таких приложений, созданных после "10/15/2018". Используйте конечную точку для конкретного арендатора или настройте приложение как многоарендное.
Описанная выше ошибка обычно возникает, если пользователи пытались войти в ваше однопользовательское приложение с multi-tenant (/common
) конечной точкой.
Пожалуйста, обратите внимание на то, что organizations
используется для многопользовательских приложений, где позволяет пользователям входить как с рабочим, так и со школьным аккаунтом.
Чтобы устранить ошибку, вам необходимо изменить ваш settings.py
файл, заменив организации на ваш ID арендатора, как показано ниже:
SOCIALACCOUNT_PROVIDERS = {
'microsoft': {
'APP': {
'tenant': 'Your_TenantID', //You can also give tenant domain here(contoso.onmicrosoft.com)
'client_id': 'Azure: Application (client) ID',
}
}
}
Вы можете найти Tenant ID
вашего арендатора, как показано ниже:
Зайдите на Azure Portal -> Azure Active Directory -> App Registrations -> Your Application -> Overview
Альтернативно, вы можете изменить существующее одноарендное приложение на многоарендное путем изменения его Поддерживаемых типов учетных записей без модификации settings.py
, как показано ниже:
Ссылка:
Конфигурация клиентского приложения (MSAL) | Microsoft Docs
Microsoft OAuth2 provider for django-allauth by Vincent Schänzer
Я только что разместил этот ответ на похожую тему. Теперь вам нужно использовать 'TENANT' с большой буквы, иначе он не будет работать