중요합니다
2025년 5월 1일부터 새 고객을 위해 Azure AD B2C를 더 이상 구매할 수 없습니다. FAQ에서 자세히 알아보세요.
Azure AD B2C(Azure Active Directory B2C)는 OpenID Connect 및 OAuth 2.0이라는 두 가지 업계 표준 프로토콜을 지원하여 앱에 대한 ID를 서비스로 제공합니다. 서비스는 표준 규격이지만 이러한 프로토콜의 두 구현에는 미묘한 차이가 있을 수 있습니다.
이 가이드의 정보는 오픈 소스 라이브러리를 사용하는 대신 HTTP 요청을 직접 보내고 처리하여 코드를 작성하는 경우에 유용합니다. 각 특정 프로토콜의 세부 정보를 살펴보기 전에 이 페이지를 읽는 것이 좋습니다. 그러나 Azure AD B2C에 이미 익숙한 경우 프로토콜 참조 가이드로 바로 이동하면 됩니다.
기본 사항
Azure AD B2C를 사용하는 모든 앱은 Azure Portal의 B2C 디렉터리에 등록되어야 합니다. 앱 등록 프로세스는 몇 가지 값을 수집하여 앱에 할당합니다.
앱을 고유하게 식별하는 애플리케이션 ID 입니다.
응답을 앱으로 다시 전송하는 데 사용할 수 있는 리디렉션 URI 또는 패키지 식별자 입니다.
몇 가지 다른 시나리오별 값입니다. 자세한 내용은 애플리케이션을 등록하는 방법을 알아봅니다.
앱을 등록한 후 엔드포인트에 요청을 전송하여 Azure AD B2C와 통신합니다.
https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/v2.0/authorize
https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/v2.0/token
사용자 지정 도메인을 사용하는 경우, 엔드포인트에서 {tenant}.b2clogin.com
을 사용자 지정 도메인, 예: contoso.com
로 바꿉니다.
거의 모든 OAuth 및 OpenID Connect 흐름에서 4개의 당사자가 교환에 참여합니다.
권한 부여 서버는 Azure AD B2C 엔드포인트입니다. 사용자 정보 및 액세스와 관련된 모든 항목을 안전하게 처리합니다. 또한 흐름의 당사자 간의 트러스트 관계도 처리합니다. 사용자의 ID 확인, 리소스에 대한 액세스 권한 부여 및 해지 및 토큰 발급을 담당합니다. ID 공급자라고도 합니다.
리소스 소유자는 일반적으로 최종 사용자입니다. 데이터를 소유한 당사자이며 제3자가 해당 데이터 또는 리소스에 액세스할 수 있도록 할 수 있습니다.
OAuth 클라이언트는 앱입니다. 애플리케이션 ID로 식별됩니다. 일반적으로 최종 사용자가 상호 작용하는 파티입니다. 또한 권한 부여 서버에서 토큰을 요청합니다. 리소스 소유자는 리소스에 액세스할 수 있는 권한을 클라이언트에 부여해야 합니다.
리소스 서버는 리소스 또는 데이터가 상주하는 위치입니다. 인증 서버를 신뢰하여 OAuth 클라이언트를 안전하게 인증하고 권한을 부여합니다. 또한 전달자 액세스 토큰을 사용하여 리소스에 대한 액세스 권한을 부여할 수 있도록 합니다.
정책 및 사용자 흐름
Azure AD B2C는 정책을 도입하여 표준 OAuth 2.0 및 OpenID Connect 프로토콜을 확장합니다. 이를 통해 Azure AD B2C는 간단한 인증 및 권한 부여보다 훨씬 더 많은 작업을 수행할 수 있습니다.
가장 일반적인 ID 작업을 설정하는 데 도움이 되도록 Azure AD B2C 포털에는 사용자 흐름이라는 미리 정의된 구성 가능한 정책이 포함되어 있습니다. 사용자 흐름은 등록, 로그인 및 프로필 편집을 비롯한 소비자 ID 환경을 완벽하게 설명합니다. 사용자 흐름은 관리 UI에서 정의할 수 있습니다. HTTP 인증 요청에서 특수 쿼리 매개 변수를 사용하여 실행할 수 있습니다.
정책 및 사용자 흐름은 OAuth 2.0 및 OpenID Connect의 표준 기능이 아니므로 시간을 내어 이해해야 합니다. 자세한 내용은 Azure AD B2C 사용자 흐름 참조 가이드를 참조하세요.
토큰
OAuth 2.0 및 OpenID Connect의 Azure AD B2C 구현은 JWT(JSON 웹 토큰)로 표현되는 전달자 토큰을 포함하여 전달자 토큰을 광범위하게 사용합니다. 전달자 토큰은 보호된 리소스에 대한 "전달자" 액세스 권한을 부여하는 간단한 보안 토큰입니다.
토큰 소지자는 토큰을 제시할 수 있는 모든 파티입니다. Azure AD B2C는 먼저 당사자를 인증해야 전달자 토큰을 받을 수 있습니다. 그러나 전송 및 스토리지에서 토큰을 보호하기 위해 필요한 단계를 수행하지 않으면 의도하지 않은 당사자가 가로채서 사용할 수 있습니다.
일부 보안 토큰에는 권한이 없는 당사자가 이를 사용하지 못하도록 하는 기본 제공 메커니즘이 있지만 전달자 토큰에는 이 메커니즘이 없습니다. HTTPS(전송 계층 보안)와 같은 보안 채널에서 전송해야 합니다.
전달자 토큰이 보안 채널 외부로 전송되는 경우 악의적인 당사자는 중간자 공격을 사용하여 토큰을 획득하고 이를 사용하여 보호된 리소스에 대한 무단 액세스를 얻을 수 있습니다. 전달자 토큰이 나중에 사용할 수 있도록 저장되거나 캐시될 때 동일한 보안 원칙이 적용됩니다. 항상 앱이 전달자 토큰을 안전한 방식으로 전송하고 저장하는지 확인합니다.
추가 전달자 토큰 보안 고려 사항은 RFC 6750 섹션 5를 참조하세요.
Azure AD B2C에서 사용되는 다양한 유형의 토큰에 대한 자세한 내용은 Azure AD B2C 토큰 참조에서 확인할 수 있습니다.
프로토콜
몇 가지 예제 요청을 검토할 준비가 되면 다음 자습서 중 하나로 시작할 수 있습니다. 각각은 특정 인증 시나리오에 해당합니다. 적합한 흐름을 결정하는 데 도움이 필요한 경우 Azure AD B2C를 사용하여 빌드할 수 있는 앱 유형을 확인하세요.