Správa vlastních zásad Azure AD B2C pomocí Azure PowerShell

Azure PowerShell poskytuje několik rutin pro správu vlastních zásad založených na příkazovém řádku a skriptech ve vašem tenantovi Azure AD B2C. Zjistěte, jak pomocí modulu Azure AD PowerShellu:

  • Výpis vlastních zásad v tenantovi Azure AD B2C
  • Stažení zásady z tenanta
  • Aktualizace existující zásady přepsáním jejího obsahu
  • Nahrání nové zásady do tenanta Azure AD B2C
  • Odstranění vlastní zásady z tenanta

Požadavky

Připojení relace PowerShellu k tenantovi B2C

Pokud chcete pracovat s vlastními zásadami v tenantovi Azure AD B2C, musíte nejprve připojit relaci PowerShellu k tenantovi pomocí příkazu Connect-AzureAD.

Spusťte následující příkaz a nahraďte {b2c-tenant-name} názvem vašeho tenanta Azure AD B2C. Přihlaste se pomocí účtu, který má v adresáři přiřazenou roli správce zásad IEF B2C .

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

Příklad výstupu příkazu znázorňující úspěšné přihlášení:

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

Výpis všech vlastních zásad v tenantovi

Zjišťování vlastních zásad umožňuje správci Azure AD B2C kontrolovat, spravovat a přidávat obchodní logiku do svých operací. Pomocí příkazu Get-AzureADMSTrustFrameworkPolicy vrátíte seznam ID vlastních zásad v tenantovi Azure AD B2C.

Get-AzureADMSTrustFrameworkPolicy

Příklad výstupu příkazu:

PS C:\> Get-AzureADMSTrustFrameworkPolicy

Id
--
B2C_1A_TrustFrameworkBase
B2C_1A_TrustFrameworkExtensions
B2C_1A_signup_signin
B2C_1A_ProfileEdit
B2C_1A_PasswordReset

Stažení zásady

Po kontrole seznamu ID zásad můžete pomocí get-AzureADMSTrustFrameworkPolicy cílit na konkrétní zásadu a stáhnout si její obsah.

Get-AzureADMSTrustFrameworkPolicy [-Id <policyId>]

V tomto příkladu se stáhne zásada s ID B2C_1A_signup_signin :

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>

Pokud chcete obsah zásad upravit místně, předejte výstup příkazu do souboru s argumentem -OutputFilePath a pak soubor otevřete v oblíbeném editoru.

Příklad příkazu odeslání výstupu do souboru:

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

Aktualizovat stávající zásady

Po úpravě souboru zásad, který jste vytvořili nebo stáhli, můžete aktualizované zásady publikovat do Azure AD B2C pomocí příkazu Set-AzureADMSTrustFrameworkPolicy.

Pokud příkaz vydáte Set-AzureADMSTrustFrameworkPolicy s ID zásady, která už ve vašem tenantovi Azure AD B2C existuje, obsah této zásady se přepíše.

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

Příklad příkazu:

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

Další příklady najdete v referenčních informacích k příkazu Set-AzureADMSTrustFrameworkPolicy .

Nahrání nové zásady

Když změníte vlastní zásadu, která běží v produkčním prostředí, budete pravděpodobně chtít publikovat několik verzí zásad pro scénáře záložního testování nebo testování A/B. Nebo můžete chtít vytvořit kopii existující zásady, upravit ji několika malými změnami a pak ji nahrát jako novou zásadu pro použití v jiné aplikaci.

K nahrání nové zásady použijte příkaz New-AzureADMSTrustFrameworkPolicy :

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

Příklad příkazu:

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

Odstranění vlastní zásady

Pokud chcete zachovat životní cyklus čistých operací, doporučujeme pravidelně odebírat nepoužívané vlastní zásady. Můžete například chtít odebrat staré verze zásad po provedení migrace na novou sadu zásad a ověření funkčnosti nových zásad. Pokud se navíc pokusíte publikovat sadu vlastních zásad a zobrazí se chyba, může být vhodné odebrat zásady vytvořené v rámci neúspěšné verze.

Pomocí příkazu Remove-AzureADMSTrustFrameworkPolicy odstraňte zásadu z vašeho tenanta.

Remove-AzureADMSTrustFrameworkPolicy -Id <policyId>

Příklad příkazu:

# Delete an existing policy
Remove-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin

Řešení potíží s nahráváním zásad

Při pokusu o publikování nové vlastní zásady nebo aktualizaci existujících zásad může nesprávné formátování XML a chyby v řetězu dědičnosti souborů zásad způsobit selhání ověření.

Tady je například pokus o aktualizaci zásad obsahem, který obsahuje poškozený kód XML (výstup se kvůli stručnosti zkrátí):

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

Informace o řešení potíží s vlastními zásadami najdete v tématu Řešení potíží s vlastními zásadami Azure AD B2C a rozhraní Identity Experience Framework.

Další kroky

Informace o použití PowerShellu k nasazení vlastních zásad v rámci kanálu kontinuální integrace nebo průběžného doručování (CI/CD) najdete v tématu Nasazení vlastních zásad z kanálu Azure DevOps.