Ativar opções de autenticação numa aplicação Web Python com o Azure AD B2C
Este artigo descreve como ativar, personalizar e melhorar a experiência de autenticação do Azure Active Directory B2C (Azure AD B2C) para a sua aplicação Web Python.
Antes de começar, é importante familiarizar-se com a forma como Configurar a autenticação numa aplicação Web Python de exemplo com Azure AD B2C.
Utilizar um domínio personalizado
Ao utilizar um domínio personalizado, pode marcar totalmente o URL de autenticação. Do ponto de vista do utilizador, os utilizadores permanecem no seu domínio durante o processo de autenticação, em vez de serem redirecionados para o Azure AD B2C b2clogin.com nome de domínio.
Para remover todas as referências a "b2c" no URL, também pode substituir o nome do inquilino B2C, contoso.onmicrosoft.com, no URL do pedido de autenticação pelo GUID do ID do inquilino. Por exemplo, pode mudar https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/
para https://account.contosobank.co.uk/<tenant ID GUID>/
.
Para utilizar um domínio personalizado e o seu ID de inquilino no URL de autenticação:
- Siga a documentação de orientação em Ativar domínios personalizados.
- No ficheiro app_config.py , atualize o membro da classe com o
authority_template
seu domínio personalizado.
O seguinte código Python mostra as definições da aplicação antes da alteração:
authority_template = "https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{user_flow}"
O seguinte código Python mostra as definições da aplicação após a alteração:
authority_template = "https://custom.domain.com/00000000-0000-0000-0000-000000000000/{user_flow}"
Pré-preencher o nome de início de sessão
Durante um percurso de início de sessão do utilizador, a sua aplicação poderá visar um utilizador específico. Quando uma aplicação destina um utilizador, pode especificar no pedido de autorização o login_hint
parâmetro de consulta com o nome de início de sessão do utilizador. Azure AD B2C preenche automaticamente o nome de início de sessão e o utilizador tem de fornecer apenas a palavra-passe.
Para pré-preencher o nome de início de sessão, faça o seguinte:
- Se estiver a utilizar uma política personalizada, adicione a afirmação de entrada necessária, conforme descrito em Configurar o início de sessão direto.
- Localize o
initiate_auth_code_flow
método e, em seguida, adicione ologin_hint
parâmetro com o nome de domínio do fornecedor de identidade (por exemplo, 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")
Pré-selecionar um fornecedor de identidade
Se tiver configurado o percurso de início de sessão para que a sua aplicação inclua contas de redes sociais, como o Facebook, o LinkedIn ou o Google, pode especificar o domain_hint
parâmetro . Este parâmetro de consulta fornece uma sugestão para Azure AD B2C sobre o fornecedor de identidade social que deve ser utilizado para iniciar sessão. Por exemplo, se a aplicação especificar domain_hint=facebook.com
, o fluxo de início de sessão vai diretamente para a página de início de sessão do Facebook.
Para redirecionar os utilizadores para um fornecedor de identidade externo, faça o seguinte:
Verifique o nome de domínio do seu fornecedor de identidade externa. Para obter mais informações, veja Redirecionar o início de sessão para um fornecedor de redes sociais.
Localize o
initiate_auth_code_flow
método e, em seguida, adicione odomain_hint
parâmetro com a sugestão de início de sessão.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")
Passos seguintes
- Para saber mais, veja MSAL for Python configuration options (Opções de configuração do MSAL para Python).