Включение параметров проверки подлинности в веб-приложениях Python с помощью Azure AD B2C
В этой статье описан способ включения, настройки и улучшения проверки подлинности Azure Active Directory B2C (Azure AD B2C) для веб-приложения Python.
Перед началом работы важно ознакомиться с тем, как настроить проверку подлинности в примере веб-приложения на Python с помощью Azure AD B2C.
Использование личного домена
С помощью личного домена можно полностью брендировать URL-адрес проверки подлинности. С точки зрения пользователя, пользователи остаются в вашем домене во время процесса аутентификации, а не перенаправляются на доменное имя b2clogin.com в Azure AD B2C.
Чтобы удалить все ссылки на b2c в URL-адресе, вы также можете заменить свое имя клиента B2C, contoso.onmicrosoft.com, в URL-адресе запроса проверки подлинности на свой GUID идентификатора клиента. Например, можно изменить https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/
на https://account.contosobank.co.uk/<tenant ID GUID>/
.
Чтобы использовать личный домен и ваш идентификатор клиента в URL-адресе проверки подлинности, сделайте следующее:
- Следуйте инструкциям в статье Подключение личных доменов в Azure Active Directory B2C.
- В файле app_config.py замените элемент класса
authority_template
на свой личный домен.
В приведенном ниже коде на языке Python показаны параметры приложения перед изменением.
authority_template = "https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{user_flow}"
В приведенном ниже коде на языке Python показаны параметры приложения после изменения.
authority_template = "https://custom.domain.com/00000000-0000-0000-0000-000000000000/{user_flow}"
Предварительное заполнение имени входа в систему
Во время входа пользователя в систему ваше приложение может предложить определенное имя пользователя. При этом приложение может указать параметр запроса login_hint
с именем пользователя в запросе на авторизацию. Azure AD B2C автоматически заполняет имя для входа в систему — пользователю нужно ввести только пароль.
Чтобы предварительно заполнить имя для входа, выполните следующие действия.
- Если вы используете настраиваемую политику, добавьте обязательное входящее утверждение, как описано в статье Настройка прямого входа в систему.
- Найдите метод
initiate_auth_code_flow
, а затем добавьте параметрlogin_hint
с доменным именем поставщика удостоверений (например, facebook.com).
def _build_auth_code_flow(authority=None, scopes=None):
return _build_msal_app(authority=authority).initiate_auth_code_flow(
scopes or [],
redirect_uri=url_for("authorized", _external=True),
login_hint="bob@contoso.com")
Предварительный выбор поставщика удостоверений
Если вы настроили для приложения возможность входа с использованием учетных записей социальных сетей, таких как Facebook, LinkedIn или Google, вы можете указать параметр domain_hint
. Этот параметр запроса сообщает Azure AD B2C о поставщике удостоверений социальных сетей, который должен использоваться для входа в систему. Например, если приложение указывает domain_hint=facebook.com
, вход в систему выполняется непосредственно на странице входа в Facebook.
Чтобы перенаправить пользователей к внешнему поставщику удостоверений, выполните следующие действия.
Проверьте доменное имя внешнего поставщика удостоверений. Дополнительные сведения см. в статье Перенаправление входа в поставщика социальных сетей.
Найдите метод
initiate_auth_code_flow
, а затем добавьте параметрdomain_hint
с подсказкой для входа.def _build_auth_code_flow(authority=None, scopes=None): return _build_msal_app(authority=authority).initiate_auth_code_flow( scopes or [], redirect_uri=url_for("authorized", _external=True), domain_hint="facebook.com")
Дальнейшие действия
- Дополнительные сведения см. в статье Параметры конфигурации MSAL для Python.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по