Activer les options d’authentification dans une application web Python à l’aide d’Azure AD B2C
Cet article décrit les méthodes permettant d’activer, de personnaliser et d’améliorer l’expérience d’authentification Azure Active Directory B2C (Azure AD B2C) pour votre application web Python.
Avant de commencer, nous vous recommandons de consulter Configurer l’authentification dans un exemple d’application web Python à l’aide d’Azure AD B2C.
Utiliser un domaine personnalisé
En utilisant un domaine personnalisé, vous pouvez intégralement marquer l’URL d’authentification. En ce qui concerne les utilisateurs, ils restent sur votre domaine pendant le processus d’authentification, au lieu d’être redirigés vers le nom de domaine Azure AD B2C b2clogin.com.
Pour supprimer toutes les références à « b2c » dans l’URL, vous pouvez remplacer le nom de votre locataire b2c (contoso.onmicrosoft.com) dans l’URL de la requête d’authentification par le GUID d’ID de votre locataire. Par exemple, vous pouvez remplacer https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/
par https://account.contosobank.co.uk/<tenant ID GUID>/
.
Pour utiliser un domaine personnalisé et votre ID de locataire dans l’URL d’authentification :
- Suivez les instructions dans Activer les domaines personnalisés.
- Dans le fichier app_config.py, mettez à jour le membre de classe
authority_template
avec votre domaine personnalisé.
Le code Python suivant montre les paramètres de l’application avant la modification :
authority_template = "https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{user_flow}"
Le code Python suivant montre les paramètres de l’application après la modification :
authority_template = "https://custom.domain.com/00000000-0000-0000-0000-000000000000/{user_flow}"
Préremplir le nom de connexion
Pendant le parcours utilisateur pour la connexion, votre application peut cibler un utilisateur spécifique. Quand une application cible un utilisateur, celle-ci peut spécifier, dans la requête d’autorisation, le paramètre de requête login_hint
avec le nom de connexion de l’utilisateur. Azure AD B2C remplit automatiquement le nom de connexion, et l’utilisateur n’a que le mot de passe à fournir.
Pour préremplir le nom de connexion, procédez comme suit :
- Si vous utilisez une stratégie personnalisée, ajoutez la revendication d’entrée requise comme décrit dans Configurer la connexion directe.
- Recherchez la méthode
initiate_auth_code_flow
, puis ajoutez le paramètrelogin_hint
avec le nom de domaine du fournisseur d’identité (par exemple, 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ésélectionner un fournisseur d'identité
Si vous avez configuré la procédure de connexion pour votre application afin d’inclure des comptes de réseaux sociaux comme Facebook, LinkedIn ou Google, vous pouvez spécifier le paramètre domain_hint
. Ce paramètre de requête fournit un indicateur à Azure AD B2C concernant le fournisseur d’identité sociale qui doit être utilisé pour la connexion. Par exemple, si l’application spécifie domain_hint=facebook.com
, le flux de connexion accède directement à la page de connexion Facebook.
Pour rediriger les utilisateurs vers un fournisseur d’identité externe, procédez comme suit :
Vérifiez le nom de domaine de votre fournisseur d’identité externe. Pour plus d’informations, consultez Rediriger la connexion vers un fournisseur social.
Recherchez la méthode
initiate_auth_code_flow
, puis ajoutez le paramètredomain_hint
avec l’indicateur de connexion.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")
Étapes suivantes
- Pour en savoir plus, consultez Options de configuration de MSAL pour Python.