Аутентификация с помощью Microsoft Azure AD в многопользовательском приложении
Следуя документации, зарегистрировал приложение с аккаунтами в любом организационном каталоге. Арендатор, в котором находится приложение, находится в "Default Directory" и имеет только одного пользователя tiagomartinsperes@gmail.com
. Также, приложение имеет назначение пользователей ( как указано здесь), установленное на No
После этого создал другого Tenant (другой каталог) и пригласил внешнего пользователя me@tiagoperes.eu
. Именно с этим пользователем у меня возникают проблемы при входе в ранее созданное приложение.
Затем, включите поддержку OAuth2 с помощью social_core.backends.azuread.AzureADOAuth2
( отсюда).
Как я пытаюсь аутентифицироваться сейчас, это работает хорошо с tiagomartinsperes@gmail.com
, но с me@tiagoperes.eu
выдает следующую ошибку
Выбранная учетная запись пользователя не существует в арендаторе 'Default Directory' и не может получить доступ к приложению 'a9a22676-8a1c-4297-95d3-8cd89553220e' в этом арендаторе. Сначала необходимо добавить учетную запись в качестве внешнего пользователя в арендаторе. Пожалуйста, используйте другую учетную запись.
Проблема заключается в URL, на который перенаправляется пользователь. Согласно документации , многопользовательские приложения должны перенаправлять на https://login.microsoftonline.com/organizations
.
Как мы видим в классе Python Social Auth AzureADOAuth2, BASE_URL
это
BASE_URL = "https://{authority_host}/{tenant_id}"
Поскольку authority_host = "https://login.microsoftonline.com/"
и tenant_id="common"
, мы получим неправильный url.
Изменив это и войдя под тем же пользователем, теперь я получаю запрос на добавление разрешений