使用 Azure PowerShell 管理 Azure AD B2C 自訂原則
針對 Azure AD B2C 租用戶中的命令列與指令碼型自訂原則管理,Azure PowerShell 提供了數個 Cmdlet。 了解如何使用 Azure AD PowerShell 模組進行下列動作:
- 列出 Azure AD B2C 租用戶中的自訂原則
- 從租用戶下載原則
- 藉由覆寫現有的原則內容來加以更新
- 將新的原則上傳至 Azure AD B2C 租用戶
- 刪除租用戶的自訂原則
必要條件
- Azure AD B2C 租用戶,以及目錄中具有 B2C IEF 原則系統管理員角色的使用者認證
- 自訂原則已上傳至您的租用戶
- Azure AD PowerShell for Graph 預覽模組
將 PowerShell 工作階段連線至 B2C 租用戶
若要在 Azure AD B2C 租用戶中使用自訂原則,您必須先使用 Connect-AzureAD 命令將 PowerShell 工作階段連線至租用戶。
執行下列命令,並以您 Azure AD B2C 租用戶的名稱替代 {b2c-tenant-name}
。 使用在目錄中獲指派 B2C IEF 原則系統管理員角色的帳戶登入。
Connect-AzureAD -Tenant "{b2c-tenant-name}.onmicrosoft.com"
顯示成功登入的範例命令輸出:
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
列出租用戶中的所有自訂原則
探索自訂原則可讓 Azure AD B2C 系統管理員檢閱及管理商務邏輯,並將其新增至自身的作業。 使用 Get-AzureADMSTrustFrameworkPolicy 命令,在 Azure AD B2C 租用戶中傳回自訂原則的識別碼清單。
Get-AzureADMSTrustFrameworkPolicy
範例命令與輸出:
PS C:\> Get-AzureADMSTrustFrameworkPolicy
Id
--
B2C_1A_TrustFrameworkBase
B2C_1A_TrustFrameworkExtensions
B2C_1A_signup_signin
B2C_1A_ProfileEdit
B2C_1A_PasswordReset
下載原則
檢閱原則識別碼清單之後,您可以使用 Get-AzureADMSTrustFrameworkPolicy 設定特定原則的目標,以下載其內容。
Get-AzureADMSTrustFrameworkPolicy [-Id <policyId>]
在此範例中,已下載具有識別碼 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>
若要在本機編輯原則內容,請使用 -OutputFilePath
引數將命令輸出透過管道傳送至檔案,然後在您慣用的編輯器中開啟該檔案。
將輸出傳送至檔案的範例命令:
# Download and send policy output to a file
Get-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -OutputFilePath C:\RPPolicy.xml
更新現有原則
在編輯您所建立或下載的原則檔之後,您可以使用 Set-AzureADMSTrustFrameworkPolicy 命令,將更新的原則發佈至 Azure AD B2C。
若您使用已存在於 Azure AD B2C 租用戶中的原則識別碼發出 Set-AzureADMSTrustFrameworkPolicy
命令,則會覆寫該原則的內容。
Set-AzureADMSTrustFrameworkPolicy [-Id <policyId>] -InputFilePath <inputpolicyfilePath> [-OutputFilePath <outputFilePath>]
範例命令:
# Update an existing policy from file
Set-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -InputFilePath C:\B2C_1A_signup_signin.xml
如需其他範例,請參閱 Set-AzureADMSTrustFrameworkPolicy 命令參考。
上傳新原則
當變更在生產中執行的自訂原則時,您可能想要針對遞補或 A/B 測試案例發佈多個版本的原則。 或者,您可能想要複製現有的原則、使用一些小變更加以修改,然後將其上傳為新的原則,以供不同的應用程式使用。
使用 New-AzureADMSTrustFrameworkPolicy 命令上傳新的原則:
New-AzureADMSTrustFrameworkPolicy -InputFilePath <inputpolicyfilePath> [-OutputFilePath <outputFilePath>]
範例命令:
# Add new policy from file
New-AzureADMSTrustFrameworkPolicy -InputFilePath C:\SignUpOrSignInv2.xml
刪除自訂原則
為了維持清除作業生命週期,建議定期移除未使用的自訂原則。 例如,建議在執行完一組新原則的移轉並確認新原則的功能之後,移除舊的原則版本。 此外,若您嘗試發佈一組自訂原則並收到錯誤訊息,則合理做法是移除在失敗版本中建立的原則。
使用 Remove-AzureADMSTrustFrameworkPolicy 命令,刪除租用戶的原則。
Remove-AzureADMSTrustFrameworkPolicy -Id <policyId>
範例命令:
# Delete an existing policy
Remove-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin
針對上傳的原則進行疑難排解
當嘗試發佈新的自訂原則或更新現有原則時,原則檔案繼承鏈結中不適當的 XML 格式與錯誤可能會導致驗證失敗。
例如,以下嘗試使用包含錯誤 XML 格式 (為求簡單明瞭,會截斷輸出) 的內容來更新原則:
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'.
...
如需針對自訂原則進行疑難排解的資訊,請參閱針對 Azure AD B2C 自訂原則與 Identity Experience Framework 進行疑難排解。
後續步驟
如需使用 PowerShell 將自訂原則部署為持續整合/持續傳遞 (CI/CD) 管線中一部分的資訊,請參閱從 Azure DevOps 管線部署自訂原則。