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

enter image description here

Альтернативно, вы можете изменить существующее одноарендное приложение на многоарендное путем изменения его Поддерживаемых типов учетных записей без модификации settings.py, как показано ниже:

enter image description here

Ссылка:

Конфигурация клиентского приложения (MSAL) | Microsoft Docs

Microsoft OAuth2 provider for django-allauth by Vincent Schänzer

Я только что разместил этот ответ на похожую тему. Теперь вам нужно использовать 'TENANT' с большой буквы, иначе он не будет работать

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