자습서: Azure Active Directory B2C에서 사용자 흐름 및 사용자 지정 정책 만들기

시작하기 전에 이 페이지 위쪽의 정책 유형 선택 선택기를 사용하여 설정하려는 정책 유형을 선택합니다. Azure Active Directory B2C는 사용자가 애플리케이션과 상호 작용하는 방법을 정의하는 두 가지 방법, 즉 미리 정의된 사용자 흐름 또는 완전히 구성 가능한 사용자 지정 정책을 통해 제공합니다. 이 문서에서 필요한 단계는 각 방법마다 다릅니다.

애플리케이션에는 사용자가 가입하거나, 로그인하거나, 자신의 프로필을 관리하도록 설정하는 사용자 흐름이 있을 수 있습니다. Azure AD B2C(Azure Active Directory B2C) 테넌트에서 서로 다른 유형의 여러 사용자 흐름을 만들고, 필요에 따라 애플리케이션에서 이를 사용할 수 있습니다. 애플리케이션에 사용자 흐름을 다시 사용할 수 있습니다.

사용자 흐름을 사용하면 사용자가 로그인, 등록, 프로필 편집 또는 암호 재설정과 같은 작업을 수행할 때 애플리케이션과 상호 작용하는 방식을 결정할 수 있습니다. 이 문서에서는 다음 방법을 설명합니다.

사용자 지정 정책은 Azure AD B2C(Azure Active Directory B2C) 테넌트의 동작을 정의하는 구성 파일입니다. 이 문서에서는 다음 방법을 설명합니다.

  • 가입 및 로그인 사용자 흐름 만들기
  • 셀프 서비스 암호 재설정 사용
  • 프로필 편집 사용자 흐름 만들기

Important

사용자 흐름 버전을 참조하는 방법이 변경되었습니다. 이전에는 V1(프로덕션 준비) 버전과 V1.1 및 V2(미리 보기) 버전을 제공했습니다. 이제 사용자 흐름을 최신 기능이 포함된 권장 사용자 흐름 및 표준(레거시) 사용자 흐름 등 두 가지 버전으로 통합했습니다. 모든 레거시 미리 보기 사용자 흐름(V1.1 및 V2)은 더 이상 사용되지 않습니다. 자세한 내용은 Azure AD B2C의 사용자 흐름 버전을 참조하세요. 이러한 변경 사항은 Azure 퍼블릭 클라우드에만 적용됩니다. 다른 환경에서는 레거시 사용자 흐름 버전 관리를 계속 사용합니다.

필수 조건

가입 및 로그인 사용자 흐름 만들기

등록 및 로그인 사용자 흐름은 단일 구성으로 두 환경을 모두 처리합니다. 애플리케이션 사용자는 컨텍스트에 따라 올바른 경로로 안내됩니다. 등록 및 로그인 사용자 흐름을 만들려면 다음을 수행합니다.

  1. Azure Portal에 로그인합니다.

  2. 여러 테넌트에 액세스할 수 있는 경우 상단 메뉴의 설정 아이콘을 선택하여 디렉터리 + 구독 메뉴에서 Azure AD B2C 테넌트로 전환합니다.

  3. Azure Portal에서 Azure AD B2C를 검색하고 선택합니다.

  4. 정책 아래에서 사용자 흐름을 선택한 다음, 새 사용자 흐름을 선택합니다.

    Screenshot of the User flows page from the Azure portal with New user flow button highlighted.

  5. 사용자 흐름 만들기 탭에서 가입 및 로그인 사용자 흐름을 선택합니다.

    Screenshot of the Select a user flow page from the Azure portal with the Sign-up and sign-in flow highlighted.

  6. 버전 선택 아래에서 추천을 선택한 다음, 만들기를 선택합니다. (사용자 흐름 버전에 대해 자세히 알아보세요.)

    Create user flow page in Azure portal with properties highlighted

  7. 사용자 흐름에 대한 이름을 입력합니다. 예를 들어 signupsignin1과 같습니다.

  8. ID 공급자에서 메일 등록을 선택합니다.

  9. 사용자 특성 및 토큰 클레임에 대해 수집한 후 등록 동안 사용자로부터 전송하려는 클레임 및 특성을 선택합니다. 예를 들어 자세히 보기를 선택하고 국가/지역, 표시 이름우편 번호의 특성 및 클레임을 선택합니다. 확인을 선택합니다.

    Screenshot of the attributes and claims selection page from the Azure portal with three claims selected and highlighted.

  10. 만들기를 선택하여 사용자 흐름을 추가합니다. B2C_1이라는 접두사는 이전에 입력한 이름 앞에 자동으로 붙습니다. 예를 들어 B2C_1_signupsignin1으로 업데이트합니다.

사용자 흐름 테스트

  1. 사용자 흐름 페이지에서 방금 만든 사용자 흐름을 선택하여 개요 페이지를 엽니다.

  2. 사용자 흐름 개요 페이지 상단에서 사용자 흐름 실행을 선택합니다. 페이지 오른쪽에 창이 열립니다.

  3. 애플리케이션의 경우 webapp1이라는 웹 애플리케이션과 같은 테스트하려는 웹 애플리케이션을 선택합니다. 회신 URL에는 https://jwt.ms가 표시되어야 합니다.

  4. 사용자 흐름 실행을 선택한 후 지금 등록을 선택합니다.

    A screenshot of the Run user flow page from the Azure portal portal with Run user flow button, Application text box and Reply URL text box highlighted.

  5. 유효한 이메일 주소를 입력하고, 확인 코드 보내기를 선택하고, 받은 확인 코드를 입력한 다음, 코드 확인을 선택합니다.

  6. 새 암호를 입력하고 암호를 확인합니다.

  7. 국가 및 지역을 선택하고, 표시하려는 이름을 입력하고, 우편 번호를 입력한 다음, 만들기를 선택합니다. 토큰이 https://jwt.ms로 반환되며 브라우저의 사용자에게 표시되어야 합니다.

  8. 이제 사용자 흐름을 다시 실행할 수 있으며 방금 만든 계정으로 로그인할 수 있습니다. 반환된 토큰에는 선택한 이름, 국가/지역, 이름 및 우편 번호에 대한 클레임이 포함되어 있습니다.

참고 항목

"사용자 흐름 실행" 환경은 현재 인증 코드 흐름을 사용하는 SPA 회신 URL 유형과 호환되지 않습니다. 이러한 종류의 앱에서 "사용자 흐름 실행" 환경을 사용하려면 "웹" 유형의 회신 URL을 등록하고 암시적 흐름을 사용하도록 설정합니다.

셀프 서비스 암호 재설정 사용

등록 또는 로그인 사용자 흐름에 대해 셀프 서비스 암호 재설정을 사용하도록 설정하려면 다음을 수행합니다.

  1. 사용자 흐름 페이지에서 방금 만든 등록 또는 로그인 사용자 흐름을 선택합니다.
  2. 왼쪽 메뉴의 설정에서 속성을 선택합니다.
  3. 암호 구성에서 셀프 서비스 암호 재설정을 선택합니다.
  4. 저장을 선택합니다.

사용자 흐름 테스트

  1. 사용자 흐름 페이지에서 방금 만든 사용자 흐름을 선택하여 개요 페이지를 연 다음, 사용자 흐름 실행을 선택합니다.
  2. 애플리케이션의 경우 webapp1이라는 웹 애플리케이션과 같은 테스트하려는 웹 애플리케이션을 선택합니다. 회신 URL에는 https://jwt.ms가 표시되어야 합니다.
  3. 사용자 흐름 실행을 선택합니다.
  4. 등록 또는 로그인 페이지에서 암호를 잊으셨나요?를 선택합니다.
  5. 이전에 만든 계정의 이메일 주소를 확인한 다음, 계속을 선택합니다.
  6. 이제 사용자의 암호를 변경할 수 있습니다. 암호를 변경하고, 계속을 선택합니다. 토큰이 https://jwt.ms로 반환되며 브라우저에 표시되어야 합니다.

프로필 편집 사용자 흐름 만들기

애플리케이션에서 프로필을 편집할 수 있도록 하려면 프로필 편집 사용자 흐름을 사용합니다.

  1. Azure AD B2C 테넌트 개요 페이지의 메뉴에서 사용자 흐름을 선택한 다음, 새 사용자 흐름을 선택합니다.
  2. 사용자 흐름 만들기 탭에서 프로필 편집 사용자 흐름을 선택합니다.
  3. 버전 선택 아래에서 추천을 선택한 다음, 만들기를 선택합니다.
  4. 사용자 흐름에 대한 이름을 입력합니다. 예를 들어 profileediting1과 같습니다.
  5. ID 공급자의 경우 로컬 계정에서 이메일 등록을 선택합니다.
  6. 사용자 특성으로 고객이 프로필에서 편집할 수 있도록 하려는 특성을 선택합니다. 예를 들어 자세히 보기를 선택한 다음, 표시 이름작업 제목에 대한 특성과 클레임을 모두 선택합니다. 확인을 선택합니다.
  7. 만들기를 선택하여 사용자 흐름을 추가합니다. B2C_1_이라는 접두사가 이름 앞에 자동으로 붙습니다.

사용자 흐름 테스트

  1. 만든 사용자 흐름을 선택하여 해당 개요 페이지를 엽니다.
  2. 사용자 흐름 개요 페이지 상단에서 사용자 흐름 실행을 선택합니다. 페이지 오른쪽에 창이 열립니다.
  3. 애플리케이션의 경우 webapp1이라는 웹 애플리케이션과 같은 테스트하려는 웹 애플리케이션을 선택합니다. 회신 URL에는 https://jwt.ms가 표시되어야 합니다.
  4. 사용자 흐름 실행을 선택하고 이전에 만든 계정으로 로그인합니다.
  5. 이제 사용자의 표시 이름 및 직함을 변경할 수 있습니다. 계속을 선택합니다. 토큰이 https://jwt.ms로 반환되며 브라우저에 표시되어야 합니다.

이 문서에서는 테넌트를 수동으로 설정하는 방법을 설명합니다. 이 문서에서 프로세스 전체를 자동화할 수 있습니다. 자동화하면 등록 및 로그인, 암호 재설정, 프로필 편집 과정을 제공하는 Azure AD B2C SocialAndLocalAccountsWithMFA 스타터 팩을 배포합니다. 아래 연습을 자동화하려면 IEF 설치 앱을 방문하여 지침을 따르세요.

Identity Experience Framework 애플리케이션에 대한 서명 및 암호화 키 추가

  1. Azure Portal에 로그인합니다.
  2. 여러 테넌트에 액세스할 수 있는 경우 상단 메뉴의 설정 아이콘을 선택하여 디렉터리 + 구독 메뉴에서 Azure AD B2C 테넌트로 전환합니다.
  3. Azure Portal에서 Azure AD B2C를 검색하고 선택합니다.
  4. 개요 페이지의 정책에서 Identity Experience Framework를 선택합니다.

서명 키 만들기

  1. 정책 키, 추가를 차례로 선택합니다.
  2. 옵션으로는 Generate을 선택합니다.
  3. 이름TokenSigningKeyContainer를 입력합니다. B2C_1A_ 접두사가 자동으로 추가될 수 있습니다.
  4. 키 유형으로는 RSA를 선택합니다.
  5. 사용으로는 서명을 선택합니다.
  6. 만들기를 실행합니다.

암호화 키 만들기

  1. 정책 키, 추가를 차례로 선택합니다.
  2. 옵션으로는 Generate을 선택합니다.
  3. 이름TokenEncryptionKeyContainer를 입력합니다. B2C_1A_ 접두사가 자동으로 추가될 수 있습니다.
  4. 키 유형으로는 RSA를 선택합니다.
  5. 키 사용에는 암호화를 선택합니다.
  6. 만들기를 실행합니다.

Identity Experience Framework 애플리케이션 등록

Azure AD B2C를 사용하려면 로컬 계정으로 사용자를 가입하고 로그인하는 데 사용하는 두 개의 애플리케이션(웹 API인 IdentityExperienceFramework 및 IdentityExperienceFramework 앱에 위임된 권한이 있는 네이티브 앱인 ProxyIdentityExperienceFramework)을 등록해야 합니다. 사용자는 이메일 주소 또는 사용자 이름 및 암호를 사용하여 테넌트에 등록된 애플리케이션에 액세스하여 "로컬 계정"을 만들 수 있습니다. 로컬 계정은 Azure AD B2C 테넌트에만 존재합니다.

Azure AD B2C 테넌트에 이러한 두 애플리케이션을 한 번만 등록하면 됩니다.

IdentityExperienceFramework 애플리케이션 등록

Azure AD B2C 테넌트에 애플리케이션을 등록하려면 앱 등록 환경을 사용하면 됩니다.

  1. 앱 등록을 선택한 다음, 새 등록을 선택합니다.
  2. 이름IdentityExperienceFramework를 입력합니다.
  3. 지원되는 계정 유형에서 이 조직 디렉터리의 계정만을 선택합니다.
  4. 리디렉션 URI에서 을 선택한 후 https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com을 입력합니다. 여기서 your-tenant-name은 Azure AD B2C 테넌트 도메인 이름입니다.
  5. 사용 권한 아래에서 openid 및 offline_access 권한에 대한 관리자 동의 허용 확인란을 선택합니다.
  6. 등록을 선택합니다.
  7. 이후 단계에서 사용할 수 있게 애플리케이션(클라이언트) ID를 기록합니다.

다음으로, 범위를 추가하여 API를 노출합니다.

  1. 왼쪽 메뉴의 관리에서 API 노출을 선택합니다.
  2. 범위 추가를 선택한 다음, 저장 후 계속을 선택하여 기본 애플리케이션 ID URI를 적용합니다.
  3. Azure AD B2C 테넌트에서 사용자 지정 정책을 실행하도록 허용하는 범위를 만들도록 다음 값을 입력합니다.
    • 범위 이름: user_impersonation
    • 관리자 동의 표시 이름: Access IdentityExperienceFramework
    • 관리자 동의 설명: Allow the application to access IdentityExperienceFramework on behalf of the signed-in user.
  4. 범위 추가를 선택합니다.

ProxyIdentityExperienceFramework 애플리케이션 등록

  1. 앱 등록을 선택한 다음, 새 등록을 선택합니다.
  2. 이름ProxyIdentityExperienceFramework를 입력합니다.
  3. 지원되는 계정 유형에서 이 조직 디렉터리의 계정만을 선택합니다.
  4. 리디렉션 URI 아래에서 드롭다운을 사용하여 퍼블릭 클라이언트/네이티브(모바일 및 데스크톱)를 선택합니다.
  5. 리디렉션 URImyapp://auth를 입력합니다.
  6. 사용 권한 아래에서 openid 및 offline_access 권한에 대한 관리자 동의 허용 확인란을 선택합니다.
  7. 등록을 선택합니다.
  8. 이후 단계에서 사용할 수 있게 애플리케이션(클라이언트) ID를 기록합니다.

다음으로, 애플리케이션을 퍼블릭 클라이언트로 처리하도록 지정합니다.

  1. 왼쪽 메뉴의 관리 아래에서 인증을 선택합니다.
  2. 고급 설정퍼블릭 클라이언트 흐름 허용 섹션에서 다음 모바일 및 데스크톱 흐름 사용로 설정합니다.
  3. 저장을 선택합니다.
  4. 애플리케이션 매니페스트에 "allowPublicClient": true가 설정되었는지 확인합니다.
    1. 왼쪽 메뉴의 관리 아래에서 매니페스트를 선택하여 애플리케이션 매니페스트를 엽니다.
    2. allowPublicClient 키를 찾아 해당 값이 true로 설정되어 있는지 확인합니다.

이제 앞서 IdentityExperienceFramework 등록 시 제공한 API 범위에 권한을 부여합니다.

  1. 왼쪽 메뉴의 관리에서 API 권한을 선택합니다.
  2. 구성된 사용 권한 아래에서 권한 추가를 선택합니다.
  3. 내 조직에서 사용하는 API 탭을 선택한 다음, IdentityExperienceFramework 애플리케이션을 선택합니다.
  4. 권한에서 이전에 정의한 user_impersonation 범위를 선택합니다.
  5. 권한 추가를 선택합니다. 안내에 따라 몇 분 정도 기다린 후 다음 단계를 진행하세요.
  6. <테넌트 이름>에 대한 관리자 동의 부여를 선택합니다.
  7. 를 선택합니다.
  8. 새로 고침을 선택한 다음, 범위의 상태 아래에 "...에 대해 허용됨"이 표시되는지 확인합니다.

사용자 지정 정책 시작 팩

사용자 지정 정책은 기술 프로필 및 사용자 경험을 정의하기 위해 Azure AD B2C 테넌트에 업로드하는 XML 파일 세트입니다. 신속한 진행을 위해 몇 가지 미리 작성된 정책이 포함된 시작 팩이 제공됩니다. 이러한 각 시작 팩에는 설명한 시나리오를 수행하는 데 필요한 최소한의 기술 프로필 및 사용자 경험이 포함되어 있습니다. Azure AD B2C 사용자 지정 정책에 대한 자세한 가이드는 사용자 지정 정책 방법 가이드 시리즈를 따릅니다.

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

시작 팩 각각에는 다음이 포함됩니다.

  • 기본 파일 - 몇 가지 수정이 필요합니다. 예: TrustFrameworkBase.xml
  • 지역화 파일 - 이 파일은 지역화 변경이 수행되는 위치입니다. 예: TrustFrameworkLocalization.xml
  • 확장 파일 - 이 파일은 대부분의 구성이 변경되었습니다. 예: TrustFrameworkExtensions.xml
  • 신뢰 당사자 파일 - 애플리케이션에서 호출하는 작업 관련 파일입니다. 예: SignUpOrSignin.xml, ProfileEdit.xml, PasswordReset.xml

이 문서에서는 SocialAndLocalAccounts 시작 팩에서 XML 사용자 지정 정책 파일을 편집합니다. XML 편집기가 필요하면 간단한 플랫폼 간 편집기인 Visual Studio Code를 사용해 보세요.

시작 팩 가져오기

GitHub에서 사용자 지정 정책 시작 팩을 가져온 다음, Azure AD B2C 테넌트 이름으로 SocialAndLocalAccounts 시작 팩의 XML 파일을 업데이트합니다.

  1. .zip 파일을 다운로드하거나 리포지토리를 복제합니다.

    git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
    
  2. SocialAndLocalAccounts 디렉터리의 모든 파일에서 yourtenant 문자열을 Azure AD B2C 테넌트의 이름으로 바꿉니다.

    예를 들어 B2C 테넌트의 이름이 contosotenant인 경우 모든 yourtenant.onmicrosoft.com 인스턴스는 contosotenant.onmicrosoft.com이 됩니다.

사용자 지정 정책에 애플리케이션 ID 추가

확장 파일 TrustFrameworkExtensions.xml에 애플리케이션 ID를 추가합니다.

  1. SocialAndLocalAccounts/TrustFrameworkExtensions.xml을 열고 <TechnicalProfile Id="login-NonInteractive"> 요소를 찾습니다.
  2. IdentityExperienceFrameworkAppId의 두 인스턴스를 이전에 만든 IdentityExperienceFramework 애플리케이션의 애플리케이션 ID로 바꿉니다.
  3. ProxyIdentityExperienceFrameworkAppId의 두 인스턴스를 이전에 만든 ProxyIdentityExperienceFramework 애플리케이션의 애플리케이션 ID로 바꿉니다.
  4. 파일을 저장합니다.

Facebook을 ID 공급자로 추가

SocialAndLocalAccounts 스타터 팩에는 Facebook 소셜 로그인이 포함되어 있습니다. Facebook은 사용자 지정 정책을 사용하는 데 필요하지 않지만 여기서는 사용자 지정 정책에서 페더레이션된 소셜 로그인을 사용하도록 설정하는 방법을 보여주기 위해 사용되었습니다. 페더레이션된 소셜 로그인을 사용하도록 설정할 필요가 없는 경우 LocalAccounts 시작 팩을 대신 사용하고 정책 업로드 섹션으로 건너뜁니다.

Facebook 애플리케이션 만들기

Facebook 애플리케이션 만들기에 설명된 단계를 사용하여 Facebook 앱 ID앱 비밀을 가져옵니다. Facebook 계정으로 가입 및 로그인 설정 문서의 필수 조건과 나머지 단계를 건너뜁니다.

Facebook 키 만들기

Facebook 애플리케이션의 앱 비밀을 정책 키로 추가합니다. 이 문서의 사전 요구 사항에 따라 만든 애플리케이션의 앱 비밀을 사용할 수 있습니다.

  1. Azure Portal에 로그인합니다.
  2. 여러 테넌트에 액세스할 수 있는 경우 상단 메뉴의 설정 아이콘을 선택하여 디렉터리 + 구독 메뉴에서 Azure AD B2C 테넌트로 전환합니다.
  3. Azure Portal에서 Azure AD B2C를 검색하고 선택합니다.
  4. 개요 페이지의 정책에서 Identity Experience Framework를 선택합니다.
  5. 정책 키, 추가를 차례로 선택합니다.
  6. 옵션으로는 Manual을 선택합니다.
  7. 이름FacebookSecret를 입력합니다. B2C_1A_ 접두사가 자동으로 추가될 수 있습니다.
  8. 비밀에 Facebook 애플리케이션의 앱 비밀(developers.facebook.com)을 입력합니다. 이 값은 애플리케이션 ID가 아닌 비밀입니다.
  9. 사용으로는 서명을 선택합니다.
  10. 만들기를 실행합니다.

사용자 지정 정책 스타터 팩에서 TrustFrameworkExtensions.xml 업데이트

SocialAndLocalAccounts/TrustFrameworkExtensions.xml 파일에서 client_id의 값을 Facebook 애플리케이션 ID로 바꾼 후 변경 내용을 저장합니다.

<TechnicalProfile Id="Facebook-OAUTH">
  <Metadata>
  <!--Replace the value of client_id in this technical profile with the Facebook app ID"-->
    <Item Key="client_id">00000000000000</Item>

정책 업로드

  1. Azure Portal에서 B2C 테넌트의 Identity Experience Framework 메뉴 항목을 선택합니다.
  2. 사용자 지정 정책 업로드를 선택합니다.
  3. 이 순서로 정책 파일을 업로드합니다.
    1. TrustFrameworkBase.xml
    2. TrustFrameworkLocalization.xml
    3. TrustFrameworkExtensions.xml
    4. SignUpOrSignin.xml
    5. ProfileEdit.xml
    6. PasswordReset.xml

파일을 업로드하면 Azure에서 각 파일에 B2C_1A_ 접두사를 추가합니다.

XML 편집기에서 유효성 검사를 지원하는 경우 시작 팩의 루트 디렉터리에 있는 TrustFrameworkPolicy_0.3.0.0.xsd XML 스키마에 대해 파일의 유효성을 검사합니다. 업로드하기 전에 XML 스키마 유효성 검사가 오류를 식별합니다.

사용자 지정 정책 테스트

  1. 사용자 지정 정책에서 B2C_1A_signup_signin을 선택합니다.
  2. 사용자 지정 정책의 개요 페이지에 있는 애플리케이션 선택에서 테스트하려는 웹 애플리케이션(예: webapp1)을 선택합니다.
  3. 회신 URLhttps://jwt.ms인지 확인합니다.
  4. 지금 실행을 선택합니다.
  5. 이메일 주소를 사용하여 가입합니다.
  6. 지금 실행을 다시 선택합니다.
  7. 동일한 계정으로 로그인하여 올바르게 구성되었는지 확인합니다.
  8. 지금 실행을 다시 선택하고 Facebook을 선택하여 Facebook에 로그인하고 사용자 지정 정책을 테스트합니다.

다음 단계

이 문서에서는 다음 방법에 대해 알아보았습니다.

  • 가입 및 로그인 사용자 흐름 만들기
  • 프로필 편집 사용자 흐름 만들기
  • 암호 재설정 사용자 흐름 만들기

다음으로, Azure AD B2C를 사용하여 애플리케이션에 사용자를 로그인하고 등록하는 방법에 대해 알아봅니다. 아래 링크된 샘플 앱을 따르세요.

Azure AD B2C 아키텍처 심층 분석 시리즈에서도 자세히 알아볼 수 있습니다.