Hantera Azure AD anpassade B2C-principer med Azure PowerShell

Azure PowerShell innehåller flera cmdletar för kommandorads- och skriptbaserad anpassad principhantering i din Azure AD B2C-klientorganisation. Lär dig hur du använder Azure AD PowerShell-modulen för att:

  • Visa en lista över anpassade principer i en Azure AD B2C-klientorganisation
  • Ladda ned en princip från en klientorganisation
  • Uppdatera en befintlig princip genom att skriva över dess innehåll
  • Ladda upp en ny princip till din Azure AD B2C-klientorganisation
  • Ta bort en anpassad princip från en klientorganisation

Förutsättningar

Ansluta PowerShell-sessionen till B2C-klientorganisationen

Om du vill arbeta med anpassade principer i din Azure AD B2C-klientorganisation måste du först ansluta PowerShell-sessionen till klientorganisationen med hjälp av kommandot Connect-AzureAD.

Kör följande kommando och ersätt {b2c-tenant-name} med namnet på din Azure AD B2C-klientorganisation. Logga in med ett konto som har tilldelats rollen B2C IEF-principadministratör i katalogen.

Connect-AzureAD -Tenant "{b2c-tenant-name}.onmicrosoft.com"

Exempel på kommandoutdata som visar en lyckad inloggning:

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

Visa en lista över alla anpassade principer i klientorganisationen

Genom att identifiera anpassade principer kan en Azure AD B2C-administratör granska, hantera och lägga till affärslogik i sina åtgärder. Använd kommandot Get-AzureADMSTrustFrameworkPolicy för att returnera en lista över ID:n för anpassade principer i en Azure AD B2C-klientorganisation.

Get-AzureADMSTrustFrameworkPolicy

Exempel på kommandoutdata:

PS C:\> Get-AzureADMSTrustFrameworkPolicy

Id
--
B2C_1A_TrustFrameworkBase
B2C_1A_TrustFrameworkExtensions
B2C_1A_signup_signin
B2C_1A_ProfileEdit
B2C_1A_PasswordReset

Ladda ned en princip

När du har granskat listan över princip-ID:er kan du rikta in dig på en specifik princip med Get-AzureADMSTrustFrameworkPolicy för att ladda ned dess innehåll.

Get-AzureADMSTrustFrameworkPolicy [-Id <policyId>]

I det här exemplet laddas principen med ID B2C_1A_signup_signin ned:

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>

Om du vill redigera principinnehållet lokalt, skicka kommandots utdata till en fil med -OutputFilePath argumentet och öppna sedan filen i favoritredigeraren.

Exempelkommando som skickar utdata till en fil:

# Download and send policy output to a file
Get-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -OutputFilePath C:\RPPolicy.xml

Uppdatera en befintlig policy

När du har redigerat en principfil som du har skapat eller laddat ned kan du publicera den uppdaterade principen till Azure AD B2C med hjälp av kommandot Set-AzureADMSTrustFrameworkPolicy.

Om du utfärdar Set-AzureADMSTrustFrameworkPolicy kommandot med ID:t för en princip som redan finns i din Azure AD B2C-klientorganisation skrivs innehållet i principen över.

Set-AzureADMSTrustFrameworkPolicy [-Id <policyId>] -InputFilePath <inputpolicyfilePath> [-OutputFilePath <outputFilePath>]

Exempelkommando:

# Update an existing policy from file
Set-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -InputFilePath C:\B2C_1A_signup_signin.xml

Fler exempel finns i kommandoreferensen Set-AzureADMSTrustFrameworkPolicy .

Ladda upp en ny princip

När du ändrar en anpassad princip som körs i produktion kanske du vill publicera flera versioner av principen för återställnings- eller A/B-testscenarier. Eller så kanske du vill göra en kopia av en befintlig princip, ändra den med några små ändringar och sedan ladda upp den som en ny princip för användning av ett annat program.

Använd kommandot New-AzureADMSTrustFrameworkPolicy för att ladda upp en ny princip:

New-AzureADMSTrustFrameworkPolicy -InputFilePath <inputpolicyfilePath> [-OutputFilePath <outputFilePath>]

Exempelkommando:

# Add new policy from file
New-AzureADMSTrustFrameworkPolicy -InputFilePath C:\SignUpOrSignInv2.xml

Ta bort en anpassad princip

För att upprätthålla en ren driftlivscykel rekommenderar vi att du regelbundet tar bort oanvända anpassade principer. Du kanske till exempel vill ta bort gamla principversioner när du har utfört en migrering till en ny uppsättning principer och verifierat de nya principernas funktioner. Om du försöker publicera en uppsättning anpassade principer och får ett fel kan det vara bra att ta bort de principer som skapades som en del av den misslyckade versionen.

Använd kommandot Remove-AzureADMSTrustFrameworkPolicy för att ta bort en princip från din klientorganisation.

Remove-AzureADMSTrustFrameworkPolicy -Id <policyId>

Exempelkommando:

# Delete an existing policy
Remove-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin

Felsöka principuppladdning

När du försöker publicera en ny anpassad princip eller uppdatera en befintlig princip kan felaktig XML-formatering och fel i arvskedjan för principfilen orsaka valideringsfel.

Här är till exempel ett försök att uppdatera en princip med innehåll som innehåller felaktigt XML (utdata trunkeras för korthet):

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'.
...

Information om hur du felsöker anpassade principer finns i Felsöka Azure AD anpassade B2C-principer och Identity Experience Framework.

Nästa steg

Information om hur du använder PowerShell för att distribuera anpassade principer som en del av en CI/CD-pipeline (kontinuerlig integrering/kontinuerlig leverans) finns i Distribuera anpassade principer från en Azure DevOps-pipeline.