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. Naučte se používat modul Azure AD PowerShellu k následujícímu:

  • 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
  • Upload nové zásady pro vašeho tenanta Azure AD B2C
  • Odstranění vlastních zásad z tenanta

Požadavky

Připojení relaci PowerShellu s tenantem B2C

Pokud chcete pracovat s vlastními zásadami ve vašem tenantovi Azure AD B2C, musíte nejprve připojit relaci PowerShellu k tenantovi pomocí příkazu Připojení-AzureAD.

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

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

Příklad výstupu příkazu zobrazují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 cílit na konkrétní zásadu pomocí Get-AzureADMSTrustFrameworkPolicy ke stažení jejího obsahu.

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 pomocí argumentu -OutputFilePath a pak ho otevřete ve svém oblíbeném editoru.

Příklad příkazu odesílajícího výstup do souboru:

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

Aktualizace existujících zásad

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 .

Upload nové zásady

Když provedete změnu vlastních zásad spuštěných v produkčním prostředí, můžete chtít publikovat několik verzí zásad pro záložní scénáře nebo scénáře 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í jinou aplikací.

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ích zásad

Pokud chcete udržovat životní cyklus čistých operací, doporučujeme pravidelně odebírat nepoužívané vlastní zásady. Po provedení migrace na novou sadu zásad a ověření funkčnosti nových zásad můžete například chtít odebrat staré verze 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í zásady může nesprávné formátování XML a chyby v řetězci dědičnosti souborů zásad způsobit selhání ověření.

Tady je například pokus o aktualizaci zásady s obsahem, který obsahuje poškozený kód XML (výstup je zkrácen pro stručnost):

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 architekturou prostředí identit.

Další kroky

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