Azure AD B2C 사용자 지정 정책 개요

사용자 지정 정책은 Azure AD B2C(Azure Active Directory B2C) 테넌트의 동작을 정의하는 구성 파일입니다. 사용자 흐름은 가장 일반적인 ID 작업을 위해 Azure AD B2C 포털에서 미리 정의되지만 ID 개발자는 사용자 지정 정책을 편집하여 다양한 작업을 완료할 수 있습니다.

사용자 지정 정책은 완전히 구성 가능하며 정책을 기반으로 합니다. 사용자 지정 정책은 표준 프로토콜의 엔터티 간에 트러스트를 오케스트레이션합니다. 예를 들어 OpenID 커넥트, OAuth, SAML 및 일부 비표준 클레임(예: REST API 기반 시스템 간 클레임 교환)이 있습니다. 프레임워크는 사용자에게 친숙한 화이트 레이블 환경을 만듭니다.

사용자 지정 정책은 계층 체인에서 서로를 참조하는 하나 이상의 XML 형식 파일로 표시됩니다. XML 요소는 구성 요소, 사용자 및 기타 당사자와의 상호 작용 및 비즈니스 논리를 정의합니다.

사용자 지정 정책 시작 팩

Azure AD B2C 사용자 지정 정책 시작 팩 에는 미리 빌드된 몇 가지 정책이 함께 제공되어 빠르게 시작할 수 있습니다. 이러한 각 시작 팩에는 설명된 시나리오를 달성하는 데 필요한 기술 프로필 및 사용자 경험 수가 가장 적습니다.

  • LocalAccounts - 로컬 계정만 사용할 수 있습니다.
  • SocialAccounts - 소셜(또는 페더레이션) 계정만 사용할 수 있습니다.
  • SocialAndLocalAccounts - 로컬 계정과 소셜 계정을 모두 사용할 수 있습니다. 대부분의 샘플은 이 정책을 참조합니다.
  • SocialAndLocalAccountsWithMFA - 소셜, 로컬 및 다단계 인증 옵션을 사용하도록 설정합니다.

Azure AD B2C 샘플 GitHub 리포지토리에서 향상된 여러 Azure AD B2C 사용자 지정 CIAM 사용자 경험 및 시나리오에 대한 샘플을 찾을 수 있습니다. 예를 들어 로컬 계정 정책 향상, 소셜 계정 정책 향상, MFA 향상, 사용자 인터페이스 향상, 일반 향상, 앱 마이그레이션, 사용자 마이그레이션, 조건부 액세스, 웹 테스트 및 CI/CD가 있습니다.

기본 사항 이해

클레임

클레임은 Azure AD B2C 정책 실행 중에 데이터의 임시 스토리지를 제공합니다. 클레임은 프로그래밍 언어의 변수와 비슷합니다. 이름, 성 또는 사용자 또는 다른 시스템(클레임 교환)에서 가져온 다른 클레임과 같은 사용자에 대한 정보를 저장할 수 있습니다. 클레임 스키마는 클레임을 선언하는 위치입니다.

정책이 실행되면 Azure AD B2C는 내부 및 외부 당사자와 클레임을 주고받은 다음, 해당 클레임의 일부를 신뢰 당사자 애플리케이션에 토큰의 일부로 보냅니다. 클레임은 다음과 같은 방식으로 사용됩니다.

  • 클레임이 디렉터리 사용자 개체에 대해 저장, 읽기 또는 업데이트됩니다.
  • 외부 ID 공급자로부터 클레임을 받습니다.
  • 클레임은 사용자 지정 REST API 서비스를 사용하여 전송되거나 수신됩니다.
  • 데이터는 등록 또는 편집 프로필 흐름 중에 사용자의 클레임으로 수집됩니다.

클레임 조작

클레임 변환은 지정된 클레임을 다른 클레임으로 변환하거나, 클레임을 평가하거나, 클레임 값을 설정하는 데 사용할 수 있는 미리 정의된 함수입니다. 예를 들어 문자열 컬렉션에 항목을 추가하거나, 문자열의 대/소문자를 변경하거나, 날짜 및 시간 클레임을 평가합니다. 클레임 변환은 미리 정의된 변환 방법을 지정합니다.

UI 사용자 지정 및 지역화

웹 브라우저에 페이지를 표시하여 사용자로부터 정보를 수집하려면 자체 어설션 기술 프로필을 사용합니다. 자체 어설션된 기술 프로필을 편집하여 클레임을 추가하고 사용자 입력을 사용자 지정할 수 있습니다.

자체 어설션 기술 프로필에 대한 사용자 인터페이스를 사용자 지정하려면 콘텐츠 정의 요소에서 사용자 지정된 HTML 콘텐츠를 사용하여 URL을 지정합니다. 자체 어설션 기술 프로필에서 이 콘텐츠 정의 ID를 가리킵니다.

언어별 문자열을 사용자 지정하려면 지역화 요소를 사용합니다. 콘텐츠 정의에는 로드할 지역화된 리소스 목록을 지정하는 지역화 참조가 포함될 수 있습니다. Azure AD B2C는 URL에서 로드된 HTML 콘텐츠와 사용자 인터페이스 요소를 병합한 다음 사용자에게 페이지를 표시합니다.

신뢰 당사자 정책 개요

SAML 프로토콜에서는 서비스 공급자라고 부르는 신뢰 당사자 애플리케이션은 신뢰 당사자 정책을 호출하여 특정 사용자 경험을 실행합니다. 신뢰 당사자 정책은 실행할 사용자 경험 및 토큰에 포함된 클레임 목록을 지정합니다.

Diagram showing the policy execution flow

동일한 정책을 사용하는 모든 신뢰 당사자 애플리케이션은 동일한 토큰 클레임을 수신하며 사용자는 동일한 사용자 경험을 겪습니다.

사용자 경험

사용자 경험을 통해 사용자가 애플리케이션에 액세스하기 위해 따르는 경로를 사용하여 비즈니스 논리를 정의할 수 있습니다. 사용자는 사용자 경험을 통해 애플리케이션에 제공될 클레임을 검색합니다. 사용자 경험은 일련의 오케스트레이션 단계를 통해 빌드됩니다. 토큰을 획득하려면 사용자가 마지막 단계에 도달해야 합니다.

다음 지침에서는 소셜 및 로컬 계정 시작 팩 정책에 오케스트레이션 단계를 추가하는 방법을 설명합니다. 다음은 추가된 REST API 호출의 예제입니다.

customized user journey

오케스트레이션 단계

오케스트레이션 단계에서는 의도한 용도 또는 기능을 구현하는 방법을 참조합니다. 이 메서드를 기술 프로필이라고 합니다. 비즈니스 논리를 더 잘 나타내기 위해 사용자 경험에 분기가 필요한 경우 오케스트레이션 단계는 하위 여정참조합니다. 하위 경험에는 고유한 오케스트레이션 단계 집합이 포함됩니다.

사용자는 토큰을 획득하려면 사용자 경험의 마지막 오케스트레이션 단계에 도달해야 합니다. 그러나 사용자는 모든 오케스트레이션 단계를 거치지 않아도 됩니다. 오케스트레이션 단계는 오케스트레이션 단계에서 정의된 사전 조건에 따라 조건부로 실행할 수 있습니다.

오케스트레이션 단계가 완료되면 Azure AD B2C는 출력된 클레임을 클레임 모음저장합니다. 클레임 모음의 클레임은 사용자 경험의 추가 오케스트레이션 단계에서 활용할 수 있습니다.

다음 다이어그램은 사용자 경험의 오케스트레이션 단계가 클레임 모음에 액세스할 수 있는 방법을 보여 주는 다이어그램입니다.

Azure AD B2C user journey

기술 프로필

기술 프로필은 다양한 유형의 파티와 통신하는 인터페이스를 제공합니다. 사용자 경험은 오케스트레이션 단계를 통해 호출 기술 프로필을 결합하여 비즈니스 논리를 정의합니다.

모든 유형의 기술 프로필은 동일한 개념을 공유합니다. 입력 클레임을 보내고, 클레임 변환을 실행하고, 구성된 당사자와 통신합니다. 프로세스가 완료되면 기술 프로필은 클레임 모음에 출력 클레임을 반환합니다. 자세한 내용은 기술 프로필 개요를 참조하세요.

유효성 검사 기술 프로필

사용자가 사용자 인터페이스와 상호 작용할 때 수집된 데이터의 유효성을 검사할 수 있습니다. 사용자 와 상호 작용하려면 자체 어설션된 기술 프로필을 사용해야 합니다.

사용자 입력 의 유효성을 검사하기 위해 자체 어설션된 기술 프로필 에서 유효성 검사 기술 프로필이 호출됩니다. 유효성 검사 기술 프로필은 비대화형 기술 프로필을 호출하는 방법입니다. 이 경우 기술 프로필은 출력 클레임 또는 오류 메시지를 반환할 수 있습니다. 오류 메시지가 화면에 사용자에게 렌더링되어 사용자가 다시 시도할 수 있습니다.

다음 다이어그램에서는 Azure AD B2C에서 유효성 검사 기술 프로필을 사용하여 사용자 자격 증명의 유효성을 검사하는 방법을 보여 줍니다.

Validation technical profile diagram

상속 모델

시작 팩에는 다음 파일이 포함되어 있습니다.

  • 기본 파일 - 대부분의 정의를 포함합니다. 정책의 문제 해결 및 장기적인 유지 관리에 도움이 되도록 이 파일을 최소한으로 변경하는 것이 좋습니다.
  • 지역화 문자열을 보유하는 지역화 파일입니다. 이 정책 파일은 기본 파일에서 파생됩니다. 이 파일을 사용하여 고객 요구에 맞게 다양한 언어를 수용할 수 있습니다.
  • 테넌트에 대한 고유한 구성 변경 내용을 포함하는 확장 파일입니다. 이 정책 파일은 지역화 파일에서 파생됩니다. 이 파일을 사용하여 새 기능을 추가하거나 기존 기능을 재정의할 수 있습니다. 예를 들어 이 파일을 사용하여 새 ID 공급자와 페더레이션합니다.
  • 웹, 모바일 또는 데스크톱 애플리케이션과 같은 신뢰 당사자 애플리케이션에서 직접 호출하는 단일 작업 중심 파일인 RP(신뢰 당사자) 파일입니다. 등록, 로그인 또는 프로필 편집과 같은 고유한 작업마다 자체적인 신뢰 당사자 정책 파일이 필요합니다. 이 정책 파일은 확장 파일에서 파생됩니다.

상속 모델은 다음과 같습니다.

  • 모든 수준의 자식 정책은 부모 정책에서 상속하고 새 요소를 추가하여 확장할 수 있습니다.
  • 더 복잡한 시나리오의 경우 상속 수준을 더 추가할 수 있습니다(총 최대 10개).
  • 신뢰 당사자 정책을 더 추가할 수 있습니다. 예를 들어 내 계정을 삭제하고 전화번호, SAML 신뢰 당사자 정책 등을 변경합니다.

다음 다이어그램은 정책 파일과 신뢰 당사자 애플리케이션 간의 관계를 보여 줍니다.

Diagram showing the trust framework policy inheritance model

지침 및 모범 사례

모범 사례

Azure AD B2C 사용자 지정 정책 내에서 고유한 비즈니스 논리를 통합하여 필요한 사용자 환경을 빌드하고 서비스의 기능을 확장할 수 있습니다. 시작 모범 사례 및 권장 사항이 준비되어 있습니다.

  • 확장 정책 또는 신뢰 당사자 정책 내에서 논리를 만들어 보세요. 동일한 ID를 참조하여 기본 정책을 재정의하는 새 요소를 추가할 수 있습니다. 이 방법을 사용하면 나중에 Microsoft에서 새 스타터 팩을 릴리스하는 경우 기본 정책을 더 쉽게 업그레이드할 수 있도록 하면서 프로젝트를 스케일 아웃할 수 있습니다.
  • 기본 정책 내에서는 변경하지 않는 것이 좋습니다. 필요한 경우 변경 내용이 있는 위치에 의견을 남겨 주세요.
  • 기술 프로필 메타데이터와 같은 요소를 재정의하는 경우 기본 정책의 기술 프로필 전체를 복사하지 말고, 대신 요소의 필수 섹션만 복사합니다. 변경 방법의 예는 전자 메일 확인 사용 안 함을 참조하세요.
  • 핵심 기능이 공유되는 기술 프로필의 중복을 줄이려면 기술 프로필 포함을 사용합니다.
  • 로그인하는 동안 Microsoft Entra 디렉터리에 쓰지 마세요. 그러면 제한 문제가 발생할 수 있습니다.
  • 정책에 REST API와 같은 외부 종속성이 있는 경우 가용성이 높은지 확인합니다.
  • 보다 나은 사용자 환경을 제공할 수 있도록 온라인 콘텐츠 배달을 사용하여 사용자 지정 HTML 템플릿을 전역적으로 배포합니다. Azure CDN(Content Delivery Network)을 사용하면 로드 시간을 줄이고 대역폭을 절약하며 응답 속도를 향상시킬 수 있습니다.
  • 사용자 경험을 변경하려면 기본 정책의 사용자 경험 전체를 확장 정책으로 복사합니다. 복사한 사용자 경험에 고유한 사용자 경험 ID를 제공합니다. 그런 다음 신뢰 당사자 정책에서 새 사용자 경험을 가리키도록 기본 사용자 경험 요소를 변경합니다.

문제 해결

Azure AD B2C 정책을 사용하여 개발할 때 사용자 경험을 실행하는 동안 오류 또는 예외가 발생할 수 있습니다. Application Insights를 사용하여 조사할 수 있습니다.

연속 통합

Azure Pipelines에서 설정한 CI/CD(연속 통합 및 업데이트) 파이프라인을 사용하여 소프트웨어 배달 및 코드 제어 자동화에 Azure AD B2C 사용자 지정 정책을 포함할 수 있습니다. 개발, 테스트 및 프로덕션과 같은 다양한 Azure AD B2C 환경에 배포할 때는 수동 프로세스를 제거하고 Azure Pipelines를 사용하여 자동화된 테스트를 수행하는 것이 좋습니다.

환경 준비

Azure AD B2C 사용자 지정 정책을 시작합니다.

  1. Azure AD B2C 테넌트 만들기
  2. 정책을 테스트할 수 있도록 Azure Portal을 사용하여 웹 애플리케이션을 등록합니다.
  3. 필요한 정책 키를 추가하고 ID 경험 프레임워크 애플리케이션을 등록합니다.
  4. Azure AD B2C 정책 시작 팩 을 가져와 테넌트에 업로드합니다.
  5. 스타터 팩을 업로드한 후에는 가입 또는 로그인 정책을 테스트합니다.
  6. VS Code(Visual Studio Code)를 다운로드하여 설치하는 것이 좋습니다. Visual Studio Code는 데스크톱에서 실행되며 Windows, macOS 및 Linux에서 사용할 수 있는 가볍고 강력한 소스 코드 편집기입니다. VS Code를 사용하면 VS Code용 Azure AD B2C 확장을 설치하여 Azure AD B2C 사용자 지정 정책 XML 파일을 빠르게 탐색하고 편집할 수 있습니다.

다음 단계

Azure AD B2C 정책을 설정하고 테스트한 후 정책 사용자 지정을 시작할 수 있습니다. 다음 문서를 통해 방법을 알아봅니다.