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

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.