Abilitare le opzioni di autenticazione in un'app Web Python usando Azure AD B2C
Questo articolo descrive come abilitare, personalizzare e migliorare l'esperienza di autenticazione di Azure Active Directory B2C (Azure AD B2C) per l'applicazione Web Python.
Prima di iniziare, è importante acquisire familiarità con come configurare l'autenticazione in un'app Web Python di esempio usando Azure AD B2C.
Usare un dominio personalizzato
Usando un dominio personalizzato, è possibile personalizzare completamente l'URL di autenticazione. Dal punto di vista dell'utente, gli utenti rimangono nel dominio durante il processo di autenticazione, anziché essere reindirizzati al nome di dominio di Azure AD B2C b2clogin.com.
Per rimuovere tutti i riferimenti a "b2c" nell'URL, è anche possibile sostituire il nome del tenant B2C, contoso.onmicrosoft.com, nell'URL della richiesta di autenticazione con il GUID dell'ID tenant. Ad esempio, è possibile passare https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/
a https://account.contosobank.co.uk/<tenant ID GUID>/
.
Per usare un dominio personalizzato e l'ID tenant nell'URL di autenticazione:
- Seguire le indicazioni in Abilitare domini personalizzati.
- Nel file app_config.py aggiornare il membro della classe con il
authority_template
dominio personalizzato.
Il codice Python seguente mostra le impostazioni dell'app prima della modifica:
authority_template = "https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{user_flow}"
Il codice Python seguente mostra le impostazioni dell'app dopo la modifica:
authority_template = "https://custom.domain.com/00000000-0000-0000-0000-000000000000/{user_flow}"
Precompilare il nome di accesso
Durante un percorso utente di accesso, l'app potrebbe avere come destinazione un utente specifico. Quando un'app è destinata a un utente, può specificare nella richiesta di autorizzazione il login_hint
parametro di query con il nome di accesso dell'utente. Azure AD B2C popola automaticamente il nome di accesso e l'utente deve fornire solo la password.
Per prepopopolare il nome di accesso, eseguire le operazioni seguenti:
- Se si usa un criterio personalizzato, aggiungere l'attestazione di input necessaria come descritto in Configurare l'accesso diretto.
- Trovare il
initiate_auth_code_flow
metodo e quindi aggiungere illogin_hint
parametro con il nome di dominio del provider di identità, ad esempio 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")
Pre-selezionare un provider di identità
Se la procedura di accesso per l'applicazione è stata configurata per includere gli account di social networking, ad esempio Facebook, LinkedIn o Google, è possibile specificare il parametro domain_hint
. Questo parametro di query fornisce un hint ad Azure AD B2C sul provider di identità di social networking che deve essere usato per l'accesso. Ad esempio, se l'applicazione specifica domain_hint=facebook.com
, il flusso di accesso passa direttamente alla pagina di accesso di Facebook.
Per reindirizzare gli utenti a un provider di identità esterno, eseguire le operazioni seguenti:
Controllare il nome di dominio del provider di identità esterno. Per altre informazioni, vedere Reindirizzare l'accesso a un provider di social networking.
Trovare il
initiate_auth_code_flow
metodo e quindi aggiungere ildomain_hint
parametro con l'hint di accesso.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")
Passaggi successivi
- Per altre informazioni, vedere Opzioni di configurazione di MSAL per Python.