這很重要
自 2025 年 5 月 1 日起,Azure AD B2C 將不再可供新客戶購買。 在我們的常見問題中深入瞭解。
針對 Azure AD B2C 租用戶中的命令列與指令碼型自訂原則管理,Microsoft Graph PowerShell 提供了數個 Cmdlet。 瞭解如何使用 Microsoft Graph PowerShell SDK 來:
- 列出 Azure AD B2C 租戶中的自定義原則
- 從租用戶下載原則
- 藉由覆寫其內容來更新現有原則
- 將新政策上傳至您的 Azure AD B2C 租戶
- 刪除租用戶的自訂原則
先決條件
- Azure AD B2C 租用戶,以及目錄中具有 B2C IEF 原則系統管理員角色的使用者認證
- 自訂原則已上傳至您的租用戶
- Microsoft Graph PowerShell SDK Beta 模組
將 PowerShell 會話連線到 B2C 租戶
若要在 Azure AD B2C 租使用者中使用自定義原則,您必須先使用 Connect-MgGraph 命令將 PowerShell 會話連線到租使用者。
執行以下命令。 使用在目錄中獲指派 B2C IEF 原則系統管理員角色的帳戶登入。
Connect-MgGraph -TenantId "{b2c-tenant-name}.onmicrosoft.com" -Scopes "Policy.ReadWrite.TrustFramework"
顯示成功登入的範例指令輸出:
Welcome to Microsoft Graph!
Connected via delegated access using 64636d5d-8eb5-42c9-b9eb-f53754c5571f
Readme: https://aka.ms/graph/sdk/powershell
SDK Docs: https://aka.ms/graph/sdk/powershell/docs
API Docs: https://aka.ms/graph/docs
NOTE: You can use the -NoWelcome parameter to suppress this message.
列出租用戶中的所有自訂原則
探索自定義原則可讓 Azure AD B2C 系統管理員檢閱、管理及新增商業規則至其作業。 使用 Get-MgBetaTrustFrameworkPolicy 命令來傳回 Azure AD B2C 租戶中自訂原則的 ID 清單。
Get-MgBetaTrustFrameworkPolicy
範例命令輸出:
Id
--
B2C_1A_TrustFrameworkBase
B2C_1A_TrustFrameworkExtensions
B2C_1A_signup_signin
B2C_1A_ProfileEdit
B2C_1A_PasswordReset
下載政策
檢閱原則標識碼清單之後,您可以使用 Get-MgBetaTrustFrameworkPolicy 將特定原則設為目標,以下載其內容。
Get-MgBetaTrustFrameworkPolicy [-TrustFrameworkPolicyId <policyId>]
在此範例中,已下載具有識別碼 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>
若要在本機編輯原則內容,請使用管線將命令輸出傳送至檔案,然後在您最愛的編輯器中開啟檔案。
更新現有的原則
編輯您建立或下載的原則檔案之後,您可以使用 Update-MgBetaTrustFrameworkPolicy 命令,將更新的原則發佈至 Azure AD B2C。
若您使用已存在於 Azure AD B2C 租用戶中的原則識別碼發出 Update-MgBetaTrustFrameworkPolicy 命令,則會覆寫該原則的內容。
Update-MgBetaTrustFrameworkPolicy -TrustFrameworkPolicyId <policyId> -BodyParameter @{trustFrameworkPolicy = "<policy file path>"}
範例 命令:
# Update an existing policy from file
Update-MgBetaTrustFrameworkPolicy -TrustFrameworkPolicyId B2C_1A_signup_signin -BodyParameter @{trustFrameworkPolicy = C:\B2C_1A_signup_signin.xml}
上傳新政策
當您變更在生產環境中執行的自定義原則時,可能會想要發佈多個版本的原則以用於備援或 A/B 測試情境。 或者,您可能想要建立現有原則的複本、使用一些小變更加以修改,然後將它上傳為新原則以供不同的應用程式使用。
使用 New-MgBetaTrustFrameworkPolicy 命令來上傳新的原則:
New-MgBetaTrustFrameworkPolicy -BodyParameter @{trustFrameworkPolicy = "<policy file path>"}
範例 命令:
# Add new policy from file
New-MgBetaTrustFrameworkPolicy -BodyParameter @{trustFrameworkPolicy = C:\B2C_1A_signup_signin.xml }
刪除自定義原則
若要維護乾淨的作業生命週期,建議您定期移除未使用的自定義原則。 例如,您可能想要在執行移轉至新原則集並驗證新原則的功能之後移除舊原則版本。 此外,如果您嘗試發佈一組自定義原則並收到錯誤,則移除在失敗發行時所建立的原則可能很合理。
使用 Remove-MgBetaTrustFrameworkPolicy 命令,從租戶中刪除政策。
Remove-MgBetaTrustFrameworkPolicy -TrustFrameworkPolicyId <policyId>
範例 命令:
# Delete an existing policy
Remove-MgBetaTrustFrameworkPolicy -TrustFrameworkPolicyId B2C_1A_signup_signin
針對上傳的原則進行疑難排解
當您嘗試發佈新的自定義原則或更新現有的原則時,原則檔案繼承鏈結中的 XML 格式不正確和錯誤可能會導致驗證失敗。
如需針對自定義原則進行疑難解答的資訊,請參閱 針對 Azure AD B2C 自定義原則和身分識別體驗架構進行疑難解答。
後續步驟
如需使用PowerShell將自定義原則部署為持續整合/持續傳遞 (CI/CD) 管線一部分的資訊,請參閱 從 Azure DevOps 管線部署自定義原則。