Gérer les stratégies personnalisées Azure AD B2C avec Azure PowerShell
Azure PowerShell fournit différentes cmdlet pour la gestion basée sur ligne de commande et sur script des stratégies personnalisées dans votre locataire Azure AD B2C. Apprenez à utiliser le module PowerShell Azure AD pour :
- Dresser la liste des stratégies personnalisées dans un locataire Azure AD B2C
- Télécharger une stratégie à partir d'un locataire
- Mettre à jour une stratégie existante en écrasant son contenu
- Charger une nouvelle stratégie dans votre locataire Azure AD B2C
- Supprimer une stratégie personnalisée d'un locataire
Prérequis
- Locataire Azure AD B2C et informations d'identification d'un utilisateur de l'annuaire disposant du rôle Administrateur de stratégies B2C IEF
- Stratégies personnalisées téléchargées sur votre locataire
- Azure AD PowerShell pour Graph - Module disponible en préversion
Connecter la session PowerShell au locataire B2C
Pour utiliser des stratégies personnalisées dans votre locataire Azure AD B2C, vous devez d'abord connecter votre session PowerShell au locataire à l'aide de la commande Connect-AzureAD.
Exécutez la commande suivante, en remplaçant {b2c-tenant-name}
par le nom de votre locataire Azure AD B2C. Connectez-vous à l'aide d'un compte de l'annuaire auquel le rôle Administrateur de stratégies B2C IEF a été attribué.
Connect-AzureAD -Tenant "{b2c-tenant-name}.onmicrosoft.com"
Exemple de sortie de commande affichant une connexion réussie :
PS C:\> Connect-AzureAD -Tenant "contosob2c.onmicrosoft.com"
Account Environment TenantId TenantDomain AccountType
------- ----------- -------- ------------ -----------
azureuser@contoso.com AzureCloud 00000000-0000-0000-0000-000000000000 contosob2c.onmicrosoft.com User
Dresser la liste de toutes les stratégies personnalisées du locataire
La découverte de stratégies personnalisées permet à un administrateur Azure AD B2C d'examiner, de gérer et d'ajouter une logique métier à ses opérations. Utilisez la commande Get-AzureADMSTrustFrameworkPolicy pour renvoyer la liste des ID des stratégies personnalisées d'un locataire Azure AD B2C.
Get-AzureADMSTrustFrameworkPolicy
Exemple de sortie de commande :
PS C:\> Get-AzureADMSTrustFrameworkPolicy
Id
--
B2C_1A_TrustFrameworkBase
B2C_1A_TrustFrameworkExtensions
B2C_1A_signup_signin
B2C_1A_ProfileEdit
B2C_1A_PasswordReset
Télécharger une stratégie
Après avoir examiné la liste des ID de stratégies, vous pouvez cibler une stratégie spécifique à l'aide de la commande Get-AzureADMSTrustFrameworkPolicy afin de télécharger son contenu.
Get-AzureADMSTrustFrameworkPolicy [-Id <policyId>]
Dans cet exemple, la stratégie correspondant à l'ID B2C_1A_signup_signin est téléchargée :
PS C:\> Get-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin
<TrustFrameworkPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06" PolicySchemaVersion="0.3.0.0" TenantId="contosob2c.onmicrosoft.com" PolicyId="B2C_1A_signup_signin" PublicPolicyUri="http://contosob2c.onmicrosoft.com/B2C_1A_signup_signin" TenantObjectId="00000000-0000-0000-0000-000000000000">
<BasePolicy>
<TenantId>contosob2c.onmicrosoft.com</TenantId>
<PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId>
</BasePolicy>
<RelyingParty>
<DefaultUserJourney ReferenceId="SignUpOrSignIn" />
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="email" />
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" />
<OutputClaim ClaimTypeReferenceId="identityProvider" />
<OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
</TrustFrameworkPolicy>
Pour modifier le contenu de la stratégie localement, dirigez la sortie de la commande vers un fichier à l'aide de l'argument -OutputFilePath
, puis ouvrez le fichier dans l'éditeur de votre choix.
Exemple de commande envoyant une sortie vers un fichier :
# Download and send policy output to a file
Get-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -OutputFilePath C:\RPPolicy.xml
Mettre à jour une stratégie existante
Après avoir modifié un fichier de stratégie que vous avez créé ou téléchargé, vous pouvez publier la stratégie mise à jour sur Azure AD B2C à l'aide de la commande Set-AzureADMSTrustFrameworkPolicy.
Si vous utilisez la commande Set-AzureADMSTrustFrameworkPolicy
avec l'ID d'une stratégie qui existe déjà dans votre locataire Azure AD B2C, le contenu de cette stratégie est écrasé.
Set-AzureADMSTrustFrameworkPolicy [-Id <policyId>] -InputFilePath <inputpolicyfilePath> [-OutputFilePath <outputFilePath>]
Exemple de commande :
# Update an existing policy from file
Set-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -InputFilePath C:\B2C_1A_signup_signin.xml
Pour accéder à d'autres exemples, consultez les informations de référence relatives à la commande Set-AzureADMSTrustFrameworkPolicy.
Charger une nouvelle stratégie
Lorsque vous apportez une modification à une stratégie personnalisée qui est en production, vous pouvez publier plusieurs versions de cette stratégie pour des scénarios de secours ou de test A/B. Vous pouvez également effectuer une copie d'une stratégie existante, y apporter quelques petites modifications, puis la charger en tant que nouvelle stratégie à utiliser par une autre application.
Utilisez la commande New-AzureADMSTrustFrameworkPolicy pour charger une nouvelle stratégie :
New-AzureADMSTrustFrameworkPolicy -InputFilePath <inputpolicyfilePath> [-OutputFilePath <outputFilePath>]
Exemple de commande :
# Add new policy from file
New-AzureADMSTrustFrameworkPolicy -InputFilePath C:\SignUpOrSignInv2.xml
Supprimer une stratégie personnalisée
Pour maintenir le cycle de vie des opérations, nous vous recommandons de supprimer régulièrement les stratégies personnalisées inutilisées. Par exemple, n'hésitez pas à supprimer les anciennes versions des stratégies après avoir procédé à une migration vers un nouvel ensemble de stratégies et vérifié le bon fonctionnement des nouvelles stratégies. En outre, si vous tentez de publier un ensemble de stratégies personnalisées et que vous recevez un message d'erreur, il peut être judicieux de supprimer les stratégies créées avec la version défectueuse.
Utilisez la commande Remove-AzureADMSTrustFrameworkPolicy pour supprimer une stratégie de votre locataire.
Remove-AzureADMSTrustFrameworkPolicy -Id <policyId>
Exemple de commande :
# Delete an existing policy
Remove-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin
Résoudre les problèmes liés au chargement d'une stratégie
Lorsque vous essayez de publier une nouvelle stratégie personnalisée ou de mettre à jour une stratégie existante, une mise en forme XML incorrecte et des erreurs liées à la chaîne d'héritage du fichier de stratégie peuvent faire échouer la validation.
Par exemple, voici une tentative de mise à jour d'une stratégie dont le contenu présente une mise en forme XML incorrecte (la sortie est tronquée par souci de concision) :
PS C:\> Set-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -InputFilePath C:\B2C_1A_signup_signin.xml
Set-AzureADMSTrustFrameworkPolicy : Error occurred while executing PutTrustFrameworkPolicy
Code: AADB2C
Message: Validation failed: 1 validation error(s) found in policy "B2C_1A_SIGNUP_SIGNIN" of tenant "contosob2c.onmicrosoft.com".Schema validation error found at line
14 col 55 in policy "B2C_1A_SIGNUP_SIGNIN" of tenant "contosob2c.onmicrosoft.com": The element 'OutputClaims' in namespace
'http://schemas.microsoft.com/online/cpim/schemas/2013/06' cannot contain text. List of possible elements expected: 'OutputClaim' in namespace
'http://schemas.microsoft.com/online/cpim/schemas/2013/06'.
...
Pour plus d'informations sur la résolution des problèmes de stratégies personnalisées, consultez Résoudre les problèmes liés aux stratégies personnalisées Azure AD B2C et à Identity Experience Framework.
Étapes suivantes
Pour plus d'informations sur l'utilisation de PowerShell pour déployer des stratégies personnalisées dans le cadre d'un pipeline d'intégration/livraison continue (CI/CD), consultez Déployer des stratégies personnalisées à partir d'un pipeline Azure DevOps.