Hantera Azure AD B2C anpassade principer med Azure PowerShell

Azure PowerShell innehåller flera cmdlets 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 Azure AD B2C klientorganisation
  • Ladda ned en princip från en klientorganisation
  • Uppdatera en befintlig princip genom att skriva över dess innehåll
  • Upload en ny princip för din Azure AD B2C klient
  • Ta bort en anpassad princip från en klientorganisation

Förutsättningar

Anslut PowerShell-session till B2C-klientorganisation

Om du vill arbeta med anpassade principer Azure AD B2C klientorganisationen måste du först ansluta PowerShell-sessionen till klienten med hjälp av kommandot Anslut-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 Azure AD B2C administratör granska, hantera och lägga till affärslogik i driften. Använd kommandot Get-AzureADMSTrustFrameworkPolicy för att returnera en lista över DE ANPASSADE principernas ID:er 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 ange en specifik princip som mål med Get-AzureADMSTrustFrameworkPolicy för att ladda ned innehållet.

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 argumentet och öppna -OutputFilePath sedan filen i din favoritredigerare.

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 princip

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 kommandot med ID:t för en princip som redan finns i Azure AD B2C klient, skrivs innehållet i principen Set-AzureADMSTrustFrameworkPolicy ö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.

Upload en ny princip

När du gör en ändring i 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 anpassade principer som inte används. 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 principfiler orsaka valideringsfel.

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

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 B2C anpassade 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.