고객 ID 보호를 위해 Azure AD B2C 구성
2025년 5월 1일
이 기술 및 교육 문서는 보안 분석가, IT 관리자 및 시스템 엔지니어가 Azure AD B2C(Business-to-Consumer)를 구성하고 사용하여 고객 ID를 보호하고 관리하도록 안내하는 것을 목표로 합니다. 고객 경험이 가장 중요한 디지털 세계에서는 안전하고 직관적이며 사용자 정의 가능한 등록 및 로그인 프로세스를 제공하는 것이 중요합니다. Azure AD B2C는 고객이 소셜 ID(예: Google, Facebook) 또는 로컬 계정을 사용하여 애플리케이션 및 API에 가입하고 로그인할 수 있게 해주는 CIAM(고객 ID 및 액세스 관리) 솔루션입니다[1].
소개
고객 신원은 현대 디지털 경험의 기초입니다. 웹 및 모바일 애플리케이션에는 수백만 고객의 등록, 로그인 및 프로필을 관리하고 보안, 확장성 및 개인 정보 보호 규정 준수를 보장하는 강력한 시스템이 필요합니다. 내부 CIAM 시스템을 개발하고 유지 관리하는 일은 복잡하고 비용이 많이 들며 보안 오류가 발생하기 쉽습니다. Azure AD B2C와 같은 솔루션은 고객 ID 관리의 모든 측면을 처리하는 PaaS(Platform-as-a-Service)를 제공하여 이러한 복잡성을 제거합니다[2].
Azure AD B2C는 Azure Active Directory의 기능을 확장하여 소비자 대상 애플리케이션의 특정 요구 사항을 충족합니다. 이를 통해 조직은 로그인 및 등록 페이지부터 수집되는 속성에 이르기까지 고객 ID 경험을 완전히 사용자 정의할 수 있습니다. 또한 다중 요소 인증(MFA), 조건부 액세스, 신원 보호 등의 고급 보안 기능과 통합되어 무차별 대입 공격 및 자격 증명 손상과 같은 일반적인 위협으로부터 고객 계정을 보호합니다[3].
이 실무 가이드에서는 전제 조건, B2C 개념, B2C 테넌트 생성 및 구성 방법, 애플리케이션 등록, 사용자 정의 가능한 사용자 흐름 구성(등록, 로그인, 프로필 편집, 비밀번호 재설정), 애플리케이션 통합 방법, 인증 테스트 및 유효성 검사 방법을 다룹니다. 독자가 이러한 기능을 구현, 테스트 및 검증할 수 있도록 단계별 지침, 실제 예제 및 간결한 설명이 제공됩니다. 또한 고객의 신원을 효율적이고 자율적이며 전문적이고 안정적으로 보호하고 관리할 수 있도록 보안 팁, 규정 준수 확인 및 모범 사례에 대해 논의합니다.
고객 ID를 보호하는 데 Azure AD B2C가 중요한 이유는 무엇인가요?
- 향상된 고객 경험: 소셜 로그인 옵션과 완전한 사용자 인터페이스 사용자 정의를 제공하여 유연하고 일관된 사용자 경험을 제공합니다.
- 강력한 보안: MFA, 조건부 액세스, ID 보호 등 엔터프라이즈급 보안 기능을 통합하여 고객 계정을 공격으로부터 보호합니다.
- 확장성 및 안정성: 수백만 명의 사용자와 수십억 건의 인증을 처리하도록 설계되어 고가용성과 성능을 보장합니다.
- 규정 준수: 고객 데이터의 저장 및 처리에 대한 제어를 통해 GDPR 및 LGPD와 같은 데이터 개인 정보 보호 규정을 충족하는 데 도움이 됩니다.
- 비용 절감: 복잡한 내부 ID 인프라를 구축하고 유지 관리할 필요가 없습니다.
- 유연성: 광범위한 인증 프로토콜(OpenID Connect, OAuth 2.0, SAML)을 지원하고 거의 모든 애플리케이션과 통합될 수 있습니다.
전제조건
Azure AD B2C를 구성하려면 다음 항목이 필요합니다.
- 활성 Azure 구독: 리소스를 생성하고 관리하기 위한 Azure 구독입니다.
- 관리 액세스: Azure 구독에서 '전역 관리자' 또는 '사용자 관리자' 역할을 가진 계정입니다.
- Azure AD B2C 테넌트: 회사 Azure AD 테넌트와 별도의 디렉터리인 새로운 Azure AD B2C 테넌트입니다.
단계별: Azure AD B2C 구성
B2C 테넌트를 생성하고, 애플리케이션을 등록하고, 사용자 흐름을 구성해 보겠습니다.
1. Azure AD B2C 테넌트 생성
B2C 테넌트는 고객의 ID를 저장하는 별도의 디렉터리입니다.
- 브라우저를 열고 Azure Portal
https://portal.azure.com으로 이동합니다. - 해당 권한이 있는 계정으로 로그인필요해요.
- 상단 검색 필드에 'Azure Active Directory B2C'를 입력하고 결과에서 선택합니다.
-
'+ 새 Azure AD B2C 테넌트 만들기'를 클릭합니다.
-
B2C 테넌트 생성:
- 테넌트 유형: 'Azure AD B2C 테넌트'.
- 조직 이름: 조직의 이름을 지정합니다(예:
MyCompanyB2C). - 초기 도메인 이름: 고유한 도메인 이름을 선택합니다(예:
mycompanyab2c.onmicrosoft.com). - 국가/지역: 국가/지역을 선택하세요.
- 구독: Azure 구독을 선택합니다.
- 리소스 그룹: 새 리소스 그룹(예:
rg-b2c)을 생성하거나 기존 리소스 그룹을 선택합니다.
-
'검토 + 생성'을 클릭한 다음 만들기를 클릭하세요.
- 설명: B2C 테넌트를 생성하는 데 몇 분 정도 걸릴 수 있습니다. 일단 생성되면 이 새 B2C 디렉터리로 전환하여 관리해야 합니다.
2. Azure AD B2C에 애플리케이션 등록
인증을 위해 Azure AD B2C를 사용할 각 애플리케이션을 등록해야 합니다.
- Azure Portal에서 Azure AD B2C 테넌트에 있는지 확인합니다(오른쪽 상단에 있는 디렉터리 선택기 사용).
- 왼쪽 탐색 창의
관리에서 애플리케이션 등록을 선택합니다. -
'+ 신규등록'을 클릭하세요.
-
애플리케이션 등록:
- 이름: 애플리케이션의 이름을 지정합니다(예:
WebApp-MinhaEmpresa). - 지원되는 계정 유형: '모든 조직 디렉터리 또는 ID 공급자 디렉터리의 계정(사용자 흐름으로 사용자 인증)'을 선택합니다.
- 리디렉션 URI(선택 사항): '웹'을 선택하고 로그인 후 인증 토큰이 전송될 URL을 입력합니다(예: 로컬 개발의 경우 'https://localhost:5001/signin-oidc' 또는 애플리케이션의 프로덕션 URL).
- 권한:
openid 및 오프라인_액세스 권한에 대한 관리자 동의 부여를 선택하세요.
- 이름: 애플리케이션의 이름을 지정합니다(예:
-
등록을 클릭하세요.
-
등록 후 애플리케이션 ID(클라이언트) 및 디렉터리 ID(테넌트)를 기록해 둡니다. 애플리케이션을 구성하려면 이 정보가 필요합니다.
3. 사용자 흐름 만들기
사용자 흐름은 등록, 로그인, 프로필 편집 및 비밀번호 재설정을 위해 사전 정의되고 사용자 정의 가능한 ID 환경입니다.
- Azure AD B2C 테넌트의 왼쪽 탐색 창에 있는 '정책' 아래에서 사용자 흐름을 선택합니다.
-
'+새 사용자 흐름'을 클릭하세요.
-
사용자 흐름 만들기:
- 사용자 흐름 유형: '등록 및 로그인'을 선택합니다.
- 버전:
권장. - 이름: 이름을 지정합니다(예:
B2C_1_signup_signin). - ID 공급자: '로컬 계정 이메일'을 선택합니다(소셜 공급자를 통합하려는 경우 'Google', 'Facebook'과 같은 기타 항목).
- 사용자 속성 및 토큰 클레임: 등록 중에 수집하려는 속성(예: '이메일 주소', '이름', '성')과 토큰에 포함될 클레임을 선택합니다.
- 다단계 인증(MFA): '비활성화됨'(이 예에서는 추가 보안을 위해 활성화할 수 있음)
- 조건부 액세스: '비활성화됨'(이 예에서는)
-
만들기를 클릭합니다.
-
'비밀번호 재설정'(예: 'B2C_1_password_reset') 및 '프로필 편집'(예: 'B2C_1_profile_edit')과 같은 다른 사용자 흐름을 생성하려면 프로세스를 반복합니다.
- 설명: 사용자 흐름은 고객 ID 경험의 중추입니다. 이는 인증 프로세스 중에 사용자가 보게 될 화면 및 상호 작용의 순서를 정의합니다. 이러한 흐름의 모양과 동작을 사용자 정의할 수 있습니다.
4. 사용자 흐름의 사용자 인터페이스(UI) 사용자 정의
애플리케이션의 브랜딩에 맞게 로그인 및 등록 페이지의 모양을 사용자 정의할 수 있습니다.
- Azure AD B2C 테넌트의 왼쪽 탐색 창에서 사용자 흐름을 선택합니다.
- 생성한 사용자 흐름(예:
B2C_1_signup_signin)을 클릭합니다. - 왼쪽 탐색 창에서 페이지 레이아웃을 선택합니다.
-
사용자 정의 CSS 또는 HTML을 사용하여 브랜드에 맞게 각 페이지(예:
통합 로그인 페이지,로컬 계정 가입 페이지)의 레이아웃을 사용자 정의할 수 있습니다.- 설명: 고급 사용자 지정의 경우 Azure Blob Storage에서 자체 HTML/CSS/JavaScript 파일을 호스팅하고 참조할 수 있습니다.여기 있어요.
5. Azure AD B2C를 애플리케이션과 통합
통합에는 인증을 위해 Azure AD B2C를 사용하도록 애플리케이션을 구성하는 작업이 포함됩니다. 프로세스는 애플리케이션의 플랫폼과 프레임워크에 따라 다릅니다. 우리는 웹 애플리케이션에 대한 개념적 예를 사용할 것입니다.
- OpenID Connect를 사용하도록 애플리케이션 구성: 애플리케이션은 OpenID Connect 클라이언트를 사용하여 Azure AD B2C와 통신해야 합니다.
-
구성 매개변수: B2C 테넌트 및 등록된 애플리케이션에서 다음 매개변수가 필요합니다.
- 클라이언트 ID(애플리케이션 ID): 등록된 애플리케이션의 ID(예:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). - B2C 테넌트 ID(테넌트 ID): B2C 테넌트의 이름(예:
mycompanyab2c.onmicrosoft.com). - 사용자 흐름 이름(정책 이름): 로그인에 사용하려는 사용자 흐름의 이름(예:
B2C_1_signup_signin). - 리디렉션 URI: 애플리케이션 등록 시 구성한 URL(예:
https://localhost:5001/signin-oidc)입니다. -
OpenID Connect 메타데이터 끝점: 이 끝점은 B2C 구성 정보를 제공합니다. 형식은 일반적으로
https://<tenant_name_b2c>.b2clogin.com/<tenant_name_b2c>.onmicrosoft.com/<userflow_name>/v2.0/.well-known/openid-configuration입니다. -
구성 예(ASP.NET Core 웹 애플리케이션의 의사 코드): ``csharp // Startup.cs 또는 Program.cs services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme) .AddMicrosoftIdentityWebApp(옵션 => { Configuration.Bind("AzureAdB2C", 옵션); options.Instance = "https://minhaempresab2c.b2clogin.com"; options.Domain = "mycompanyab2c.onmicrosoft.com"; options.ClientId = "
"; options.SignUpSignInPolicyId = "B2C_1_signup_signin"; options.CallbackPath = "/signin-oidc"; options.SignedOutCallbackPath = "/signout-oidc"; options.ClientSecret = " "; // SPA가 아닌 웹앱에만 해당 }); ```` -
설명:
Microsoft.Identity.Web라이브러리는 Azure AD B2C와 .NET 애플리케이션의 통합을 단순화합니다. 다른 플랫폼의 경우 동등한 SDK 및 라이브러리가 있습니다.
- 클라이언트 ID(애플리케이션 ID): 등록된 애플리케이션의 ID(예:
검증 및 테스트
인증 프로세스와 사용자 경험을 테스트하는 것이 중요합니다.
1. 등록 및 로그인 사용자 흐름 테스트
- 시나리오: Azure AD B2C를 사용하도록 구성된 웹 애플리케이션에 액세스합니다. 새로운 사용자를 등록한 후 새로 생성된 계정으로 로그인해 보세요.
- 예상 작업: Azure AD B2C 등록/로그인 페이지로 리디렉션되어 계정을 만들고 로그인할 수 있으며 애플리케이션으로 다시 리디렉션됩니다.
- 확인:
- Azure Portal의 B2C 테넌트에서 '관리' 아래의 사용자로 이동합니다. 새 사용자가 목록에 나타나야 합니다.
- Azure AD B2C 감사 로그를 확인하여 등록 및 로그인 이벤트를 확인하세요.
2. 비밀번호 재설정 테스트
- 시나리오: 비밀번호 재설정 사용자 흐름을 사용하여 사용자의 비밀번호를 재설정해 보세요.
- 예상 조치: 사용자는 비밀번호를 재설정하고 새 비밀번호로 로그인할 수 있어야 합니다.
- 확인:
- Azure AD B2C 감사 로그를 확인하여 비밀번호 재설정 이벤트를 확인하세요.
3. Azure AD B2C에서 감사 로그 확인
- Azure Portal의 B2C 테넌트에서 Azure Active Directory > 모니터링 > 감사 로그로 이동합니다.
- '카테고리' = '핵심 디렉터리' 및 '활동' = '로그인' 또는 '가입'을 기준으로 로그를 필터링합니다.
- 이벤트 내용을 확인하여 인증 성공 여부를 확인하세요.
보안 팁 및 모범 사례
- MFA 활성화: 특히 중요한 데이터에 대한 권한이나 액세스 권한이 있는 계정의 경우 로그인 사용자 흐름에 대해 항상 다단계 인증(MFA)을 활성화합니다. MFA는 자격 증명 손상 공격에 대한 가장 효과적인 방어 중 하나입니다.
- 조건부 액세스 사용: Azure AD B2C를 조건부 액세스와 통합하여 알 수 없는 위치 또는 비준수 장치에서 로그인할 때 MFA를 요구하는 등 위험 기반 보안 정책을 시행합니다[3].
- 신원 보호:Azure AD B2C ID 보호 기능을 사용하여 자격 증명 유출이나 비정상적인 로그인과 같은 ID 위험을 감지하고 해결합니다.
- 보안 UI 사용자 정의: 로그인/등록 페이지를 사용자 정의할 때 사용자 정의 HTML/CSS/JavaScript로 인해 보안 취약점(예: XSS)이 발생하지 않는지 확인하세요. CORS가 올바르게 구성된 보안 Blob Storage를 사용하세요.
- 사용자 속성 제한: 애플리케이션 및 비즈니스에 꼭 필요한 사용자 속성만 수집합니다. 이는 데이터 노출 위험을 최소화하고 규정 준수에 도움이 됩니다.
- 로그 모니터링: Azure AD B2C 감사 로그 및 로그인 로그를 지속적으로 모니터링하여 의심스러운 활동이나 공격 시도를 검색합니다.
- 클라이언트 암호 순환: 애플리케이션이 클라이언트 암호를 사용하는 경우 정기적으로 순환하고 안전하게 저장해야 합니다(예: Azure Key Vault).
- 소셜 공급자와의 통합: Google 또는 Facebook과 같은 소셜 ID 공급자를 통합할 때 이를 올바르게 구성하고 각 공급자의 보안 지침을 따르십시오.
일반적인 문제 해결
- B2C 테넌트 생성 중 오류:
- Azure 구독에 필요한 권한이 있는지 확인하세요.
- 초기 도메인 이름이 고유하고 사용 중이 아닌지 확인하세요.
- 로그인/등록 후 리디렉션 오류:
- Azure AD B2C의 애플리케이션 등록에 구성된 '리디렉션 URI'가 애플리케이션의 반환 URL과 정확히 일치하는지 확인하세요.
- 프로토콜(HTTP/HTTPS)과 포트가 올바른지 확인하세요.
- 사용자 흐름이 작동하지 않거나 오류가 표시됩니다:
- 사용자 흐름이 올바르게 생성되었는지, ID 공급자 및 사용자 속성이 선택되었는지 확인합니다.
- Azure Portal에서 직접 사용자 흐름을 테스트하여(사용자 흐름 페이지에서 '사용자 흐름 실행' 클릭) 문제를 격리합니다.
- 오류 메시지에 대한 감사 로그를 확인하세요.
- UI 사용자 정의가 적용되지 않습니다:
- 사용자 지정 CSS/HTML 파일의 URL이 정확하고 공개적으로 액세스할 수 있는지 확인하세요(Blob Storage에 호스팅된 경우).
- 'b2clogin.com' 도메인에서의 액세스를 허용하려면 Blob Storage에 CORS가 올바르게 구성되어 있는지 확인하세요.
- 최신 변경 사항이 로드되도록 브라우저 캐시를 삭제하세요.
- 애플리케이션 통합 문제:
- '고객 ID', 'B2C 테넌트 ID' 및 '사용자 흐름 이름'이 애플리케이션에 올바르게 구성되어 있는지 확인하세요.
- 애플리케이션의 인증 라이브러리가 최신인지 확인하세요.
- 인증 오류 메시지는 애플리케이션 로그를 확인하세요.
결론
Azure AD B2C는 고객의 ID를 관리하고 보호하기 위한 강력하고 유연한 솔루션으로 향상된 사용자 환경과 강력한 보안을 제공합니다. ID 관리의 복잡성을 Microsoft에 위임함으로써 조직은 핵심 비즈니스에 집중하여 고객 데이터를 안전하게 보호하고 규정을 준수할 수 있습니다. 사용자 흐름의 신중한 구현, 보안 모범 사례와의 통합 및 지속적인 모니터링은 Azure AD B2C의 이점을 극대화하는 데 중요합니다. 이 실용적인 가이드를 통해 보안 전문가와 IT 관리자는 Azure AD B2C를 구성, 검증 및 관리하여 고객의 ID를 보호하고 애플리케이션의 전반적인 보안 태세를 강화할 수 있습니다.
참고자료:
[1] 마이크로소프트 런. Azure Active Directory B2C 설명서. 사용 가능: https://learn.microsoft.com/pt-br/azure/active-directory-b2c/ [2] 마이크로소프트 런. Azure AD B2C 모범 사례. 사용 가능: https://learn.microsoft.com/pt-br/azure/active-directory-b2c/best-practices [3] 마이크로소프트 런. Azure AD B2C의 ID 보호 및 조건부 액세스. 사용 가능: https://learn.microsoft.com/pt-br/azure/active-directory-b2c/conditional-access-identity-protection-overview [4] 마이크로소프트 런. Azure Active Directory B2C에 웹 애플리케이션을 등록하세요. 사용 가능: https://learn.microsoft.com/pt-br/azure/active-directory-b2c/tutorial-register-applications [5] 마이크로소프트 런. 사용자 흐름 및 사용자 지정 정책 만들기 - Azure Active Directory B2C. 사용 가능: https://learn.microsoft.com/pt-br/azure/active-directory-b2c/tutorial-create-user-flows [6] 마이크로소프트 런. Azure AD B2C를 사용하여 샘플 웹 애플리케이션에서 인증을 구성합니다. 사용 가능: https://learn.microsoft.com/pt-br/azure/active-directory-b2c/configure-authentication-sample-web-app [7] 마이크로소프트 런. Azure AD B2C에서 ID 보호를 통해 위험을 조사합니다. 사용 가능: https://learn.microsoft.com/pt-br/azure/active-directory-b2c/identity-protection-investigate-risk