Azure PowerShell를 사용 하 여 Azure AD B2C 사용자 지정 정책 관리Manage Azure AD B2C custom policies with Azure PowerShell

Azure PowerShell은 Azure AD B2C 테 넌 트에서 명령줄 및 스크립트 기반 사용자 지정 정책 관리를 위한 몇 가지 cmdlet을 제공 합니다.Azure PowerShell provides several cmdlets for command line- and script-based custom policy management in your Azure AD B2C tenant. Azure AD PowerShell 모듈을 사용 하 여 다음을 수행 하는 방법을 알아봅니다.Learn how to use the Azure AD PowerShell module to:

  • Azure AD B2C 테 넌 트의 사용자 지정 정책 나열List the custom policies in an Azure AD B2C tenant
  • 테 넌 트에서 정책 다운로드Download a policy from a tenant
  • 콘텐츠를 덮어써서 기존 정책 업데이트Update an existing policy by overwriting its content
  • Azure AD B2C 테 넌 트에 새 정책 업로드Upload a new policy to your Azure AD B2C tenant
  • 테 넌 트에서 사용자 지정 정책 삭제Delete a custom policy from a tenant

필수 구성 요소Prerequisites

B2C 테 넌 트에 PowerShell 세션 연결Connect PowerShell session to B2C tenant

Azure AD B2C 테 넌 트에서 사용자 지정 정책에 대 한 작업을 수행 하려면 먼저 AzureAD 명령을 사용 하 여 PowerShell 세션을 테 넌 트에 연결 해야 합니다.To work with custom policies in your Azure AD B2C tenant, you first need to connect your PowerShell session to the tenant by using the Connect-AzureAD command.

{b2c-tenant-name}Azure AD B2C 테 넌 트의 이름으로 대체 하 여 다음 명령을 실행 합니다.Execute the following command, substituting {b2c-tenant-name} with the name of your Azure AD B2C tenant. 디렉터리에서 B2C IEF 정책 관리자 역할이 할당 된 계정으로 로그인 합니다.Sign in with an account that's assigned the B2C IEF Policy Administrator role in the directory.

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

성공적인 로그인을 보여 주는 예제 명령 출력:Example command output showing a successful sign-in:

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

테 넌 트의 모든 사용자 지정 정책을 나열 합니다.List all custom policies in the tenant

사용자 지정 정책을 검색 하면 Azure AD B2C 관리자가 비즈니스 논리를 검토, 관리 및 해당 작업에 추가할 수 있습니다.Discovering custom policies allows an Azure AD B2C administrator to review, manage, and add business logic to their operations. AzureADMSTrustFrameworkPolicy 명령을 사용 하 여 Azure AD B2C 테 넌 트의 사용자 지정 정책 id 목록을 반환 합니다.Use the Get-AzureADMSTrustFrameworkPolicy command to return a list of the IDs of the custom policies in an Azure AD B2C tenant.

Get-AzureADMSTrustFrameworkPolicy

예제 명령 출력:Example command output:

PS C:\> Get-AzureADMSTrustFrameworkPolicy

Id
--
B2C_1A_TrustFrameworkBase
B2C_1A_TrustFrameworkExtensions
B2C_1A_signup_signin
B2C_1A_ProfileEdit
B2C_1A_PasswordReset

정책 다운로드Download a policy

정책 Id의 목록을 검토 한 후에는 AzureADMSTrustFrameworkPolicy 를 사용 하 여 특정 정책을 대상으로 지정 하 여 해당 콘텐츠를 다운로드할 수 있습니다.After reviewing the list of policy IDs, you can target a specific policy with Get-AzureADMSTrustFrameworkPolicy to download its content.

Get-AzureADMSTrustFrameworkPolicy [-Id <policyId>]

이 예에서는 ID가 B2C_1A_signup_signin 인 정책이 다운로드 됩니다.In this example, the policy with ID B2C_1A_signup_signin is downloaded:

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 다음 원하는 편집기에서 파일을 엽니다.To edit the policy content locally, pipe the command output to a file with the -OutputFilePath argument, and then open the file in your favorite editor.

파일에 출력을 보내는 예제 명령:Example command sending output to a file:

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

기존 정책 업데이트Update an existing policy

만들거나 다운로드 한 정책 파일을 편집한 후에는 AzureADMSTrustFrameworkPolicy 명령을 사용 하 여 Azure AD B2C에 업데이트 된 정책을 게시할 수 있습니다.After editing a policy file you've created or downloaded, you can publish the updated policy to Azure AD B2C by using the Set-AzureADMSTrustFrameworkPolicy command.

Set-AzureADMSTrustFrameworkPolicyAzure AD B2C 테 넌 트에 이미 있는 정책의 ID를 사용 하 여 명령을 실행 하는 경우 해당 정책의 콘텐츠를 덮어씁니다.If you issue the Set-AzureADMSTrustFrameworkPolicy command with the ID of a policy that already exists in your Azure AD B2C tenant, the content of that policy is overwritten.

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

예제 명령:Example command:

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

추가 예제는 AzureADMSTrustFrameworkPolicy 명령 참조를 참조 하세요.For additional examples, see the Set-AzureADMSTrustFrameworkPolicy command reference.

새 정책 업로드Upload a new policy

프로덕션에서 실행 되는 사용자 지정 정책을 변경 하는 경우 대체 또는 A/B 테스트 시나리오에 대 한 여러 버전의 정책을 게시할 수 있습니다.When you make a change to a custom policy that's running in production, you might want to publish multiple versions of the policy for fallback or A/B testing scenarios. 또는 기존 정책의 복사본을 만들고 몇 개의 작은 변경 내용을 수정한 다음 다른 응용 프로그램에서 사용 하기 위한 새 정책으로 업로드할 수 있습니다.Or, you might want to make a copy of an existing policy, modify it with a few small changes, then upload it as a new policy for use by a different application.

AzureADMSTrustFrameworkPolicy 명령을 사용 하 여 새 정책을 업로드 합니다.Use the New-AzureADMSTrustFrameworkPolicy command to upload a new policy:

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

예제 명령:Example command:

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

사용자 지정 정책 삭제Delete a custom policy

정상적인 작업 수명 주기를 유지 하려면 사용 하지 않는 사용자 지정 정책을 정기적으로 제거 하는 것이 좋습니다.To maintain a clean operations life cycle, we recommend that you periodically remove unused custom policies. 예를 들어 새 정책 집합에 대 한 마이그레이션을 수행 하 고 새 정책의 기능을 확인 한 후 이전 정책 버전을 제거 하는 것이 좋습니다.For example, you might want to remove old policy versions after performing a migration to a new set of policies and verifying the new policies' functionality. 또한 사용자 지정 정책 집합을 게시 하 고 오류를 수신 하려는 경우 실패 한 릴리스의 일부로 생성 된 정책을 제거 하는 것이 적합할 수 있습니다.Additionally, if you attempt to publish a set of custom policies and receive an error, it might make sense to remove the policies that were created as part of the failed release.

AzureADMSTrustFrameworkPolicy 명령을 사용 하 여 테 넌 트에서 정책을 삭제 합니다.Use the Remove-AzureADMSTrustFrameworkPolicy command to delete a policy from your tenant.

Remove-AzureADMSTrustFrameworkPolicy -Id <policyId>

예제 명령:Example command:

# Delete an existing policy
Remove-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin

정책 업로드 문제 해결Troubleshoot policy upload

새 사용자 지정 정책을 게시 하거나 기존 정책을 업데이트 하는 경우 정책 파일 상속 체인에서 잘못 된 XML 형식 지정 및 오류가 발생 하면 유효성 검사가 실패할 수 있습니다.When you try to publish a new custom policy or update an existing policy, improper XML formatting and errors in the policy file inheritance chain can cause validation failures.

예를 들어 다음은 잘못 된 XML이 포함 된 콘텐츠를 사용 하 여 정책을 업데이트 하려고 시도 하는 경우입니다. 출력은 간단히 하기 위해 잘립니다.For example, here's an attempt at updating a policy with content that contains malformed XML (output is truncated for brevity):

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

사용자 지정 정책 문제 해결에 대 한 자세한 내용은 사용자 지정 정책 및 Id 경험 프레임 워크 Azure AD B2C 문제 해결을 참조 하세요.For information about troubleshooting custom policies, see Troubleshoot Azure AD B2C custom policies and Identity Experience Framework.

다음 단계Next steps

PowerShell을 사용 하 여 CI/CD (지속적인 통합/지속적인 업데이트) 파이프라인의 일부로 사용자 지정 정책을 배포 하는 방법에 대 한 자세한 내용은 Azure DevOps 파이프라인에서 사용자 지정 정책 배포를 참조 하세요.For information about using PowerShell to deploy custom policies as part of a continuous integration/continuous delivery (CI/CD) pipeline, see Deploy custom policies from an Azure DevOps pipeline.