重要
2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください。
Microsoft Graph PowerShell には、Azure AD B2C テナントでのコマンド ラインベースおよびスクリプト ベースのカスタム ポリシー管理用のコマンドレットがいくつか用意されています。 Microsoft Graph PowerShell SDK を使用して次の操作を行う方法について説明します。
- Azure AD B2C テナントのカスタム ポリシーを一覧表示する
- テナントからポリシーをダウンロードする
- コンテンツを上書きして既存のポリシーを更新する
- Azure AD B2C テナントに新しいポリシーをアップロードする
- テナントからカスタム ポリシーを削除する
[前提条件]
- Azure AD B2C テナント、および B2C IEF ポリシー管理者 ロールを持つディレクトリ内のユーザーの資格情報
- テナントにアップロードされたカスタム ポリシー
- Microsoft Graph PowerShell SDK ベータ モジュール
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
ポリシーをダウンロードする
ポリシー ID の一覧を確認したら、 Get-MgBetaTrustFrameworkPolicy を使用して特定のポリシーをターゲットにして、そのコンテンツをダウンロードできます。
Get-MgBetaTrustFrameworkPolicy [-TrustFrameworkPolicyId <policyId>]
この例では、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>
ポリシーの内容をローカルで編集するには、コマンド出力をファイルにパイプし、お気に入りのエディターでファイルを開きます。
既存のポリシーを更新する
作成またはダウンロードしたポリシー ファイルを編集したら、 Update-MgBetaTrustFrameworkPolicy コマンドを使用して、更新されたポリシーを Azure AD B2C に発行できます。
Azure AD B2C テナントに既に存在するポリシーの ID を使用して 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 カスタム ポリシーと Identity Experience Framework のトラブルシューティング」を参照してください。
次のステップ
PowerShell を使用して継続的インテグレーション/継続的デリバリー (CI/CD) パイプラインの一部としてカスタム ポリシーをデプロイする方法については、「 Azure DevOps パイプラインからカスタム ポリシーをデプロイする」を参照してください。