Habilitar as opções de autenticação em um aplicativo Web Python usando o Azure AD B2C
Este artigo descreve como habilitar, personalizar e aprimorar a experiência de autenticação do Azure Active Directory B2C (Azure AD B2C) para o aplicativo Web Python.
Antes de começar, é importante se familiarizar sobre como Configurar a autenticação em um aplicativo Web Python de amostra usando o Azure AD B2C.
Usar um domínio personalizado
Ao usar um domínio personalizado, você pode recriar por completo a URL de autenticação. Da perspectiva do usuário, os usuários permanecem nos domínios durante o processo de autenticação, em vez de serem redirecionados para o nome de domínio b2clogin.com do Azure AD B2C.
Para remover todas as referências a “b2c” na URL, você também pode substituir o nome do locatário b2c, contoso.onmicrosoft.com, na URL de solicitação de autenticação pelo GUID da ID do locatário. Por exemplo, você pode mudar de https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/
para https://account.contosobank.co.uk/<tenant ID GUID>/
.
Para usar um domínio personalizado e a ID de locatário na URL de autenticação:
- Siga as instruções em Habilitar domínios personalizados.
- No arquivo app_config.py, atualize o membro da classe
authority_template
com o domínio personalizado.
O código Python a seguir mostra as configurações do aplicativo antes da alteração:
authority_template = "https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{user_flow}"
O código Python a seguir mostra as configurações do aplicativo após a alteração:
authority_template = "https://custom.domain.com/00000000-0000-0000-0000-000000000000/{user_flow}"
Preencher previamente o nome de usuário
Durante um percurso de entrada do usuário, um aplicativo pode ser direcionado a um usuário específico. Ao direcionar a um usuário, um aplicativo pode especificar, na solicitação de autorização, o parâmetro de consulta login_hint
com o nome de entrada do usuário. O Azure AD B2C preenche automaticamente o nome de entrada, e o usuário só precisa fornecer a senha.
Para preencher o nome de logon, faça o seguinte:
- Se você estiver usando uma política personalizada, adicione a declaração de entrada necessária, conforme descrito em Configurar entrada direta.
- Encontre o método
initiate_auth_code_flow
e, em seguida, adicione o parâmetrologin_hint
com o nome de domínio do provedor 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 provedor de identidade
Se você configurou o percurso de entrada para seu aplicativo para incluir contas sociais, como Facebook, LinkedIn ou do Google, você pode especificar o domain_hint
parâmetro. Esse parâmetro de consulta fornece uma dica para o Azure AD B2C sobre o provedor de identidade social que deve ser usado para entrar. Por exemplo, se o aplicativo especifica domain_hint=facebook.com
, o fluxo de entrada vai diretamente para a página de entrada do Facebook.
Para redirecionar usuários para um provedor de identidade externo, faça o seguinte:
Verifique o nome de domínio do seu provedor de identidade externo. Para obter mais informações, consulte redirecionar entrada para um provedor social.
Encontre o método
initiate_auth_code_flow
e, em seguida, adicione o parâmetrodomain_hint
com a dica de logon.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")
Próximas etapas
- Para saber mais, confira Opções de configuração da MSAL para Python.