다음을 통해 공유


지역 기반 방식으로 글로벌 ID 솔루션 빌드

이 문서에서는 지역 기반 디자인 방식에 대한 시나리오를 설명합니다. 디자인을 시작하기 전에 유입 경로 및 지역 기반 디자인 방식의 기능성능을 검토하는 것이 좋습니다.

디자인은 다음을 설명합니다.

  • 로컬 계정 등록 및 로그인
  • 페더레이션된 계정 등록 및 로그인
  • 교차 테넌트 API 기반 인증으로 지원되는 등록된 지역 외부에서 로그인하는 사용자의 로컬 계정을 인증합니다.
  • 테넌트 간 API 기반 조회에서 지원되는 등록된 지역 외부에서 로그인하는 사용자를 위한 페더레이션된 계정 인증
  • 여러 다른 지역에서 등록 방지
  • 각 지역의 애플리케이션에는 연결할 엔드포인트 집합이 있음

로컬 계정 인증

다음 사용 사례는 글로벌 Azure AD B2C 환경에서 일반적입니다. 로컬 계정 사용 사례에는 사용자가 이동하는 계정도 포함됩니다. 각각은 각 사용 사례에 대한 다이어그램 및 워크플로 단계를 제공합니다.

로컬 사용자 등록

이 사용 사례는 자국/지역의 사용자가 Azure AD B2C 로컬 계정으로 등록을 수행하는 방법을 보여 줍니다.

Screenshot shows the local user sign-up flow.

  1. EMEA(유럽, 중동 및 아프리카) 사용자가 myapp.fr에서 등록을 시도합니다. 사용자가 로컬 호스트 이름으로 전송되지 않는 경우 트래픽 관리자는 리디렉션을 적용합니다.

  2. 사용자는 EMEA 테넌트에 도착합니다.

  3. 사용자가 등록을 시도합니다. 등록 프로세스는 사용자가 지역 Azure AD B2C 테넌트에 존재하는지 확인하기 위해 전역 조회 테이블을 확인합니다.

  4. 전역 조회 테이블에서 사용자를 찾을 수 없습니다. 사용자 계정은 Azure AD B2C에 기록되고 사용자가 가입한 지역을 추적하기 위해 전역 조회 테이블에 레코드가 만들어집니다.

  5. 지역 테넌트는 앱에 다시 토큰을 발급합니다.

기존 로컬 사용자가 등록 시도

이 사용 사례는 자신의 국가/지역 또는 다른 지역에서 동일한 메일을 재등록하는 사용자가 어떻게 차단되는지 보여 줍니다.

Screenshot shows the existing local user sign up attempt flow.

  1. EMEA 사용자가 myapp.fr에서 등록을 시도합니다. 사용자가 로컬 호스트 이름으로 전송되지 않는 경우 트래픽 관리자는 리디렉션을 적용합니다.

  2. 사용자는 EMEA 테넌트에 도착합니다.

  3. 사용자가 등록을 시도합니다. 등록 프로세스는 사용자가 지역 Azure AD B2C 테넌트에 존재하는지 확인하기 위해 전역 조회 테이블을 확인합니다.

  4. 사용자의 메일은 전역 조회 테이블에서 찾을 수 있으며, 이는 사용자가 이전 특정 시점에 이 메일을 솔루션에 등록했음을 나타냅니다.

  5. 사용자에게 계정이 존재함을 나타내는 오류가 표시됩니다.

로컬 사용자 로그인

이 사용 사례는 자국/지역의 사용자가 Azure AD B2C 로컬 계정으로 로그인을 수행하는 방법을 보여 줍니다.

Screenshot shows the local user sign in flow.

  1. EMEA 사용자가 myapp.fr에서 로그인을 시도합니다. 사용자가 로컬 호스트 이름으로 전송되지 않는 경우 트래픽 관리자는 리디렉션을 적용합니다.

  2. 사용자는 EMEA 테넌트에 도착합니다.

  3. 사용자는 지역 테넌트에서 자신의 자격 증명을 입력합니다.

  4. 지역 테넌트는 앱에 다시 토큰을 발급합니다.

  5. 사용자가 앱에 로그인되어 있습니다.

이동 중인 사용자 로그인

이 사용 사례는 사용자가 여러 지역을 이동하고 등록과 관련하여 지역 테넌트에 저장된 사용자 프로필과 자격 증명을 유지하는 방법을 보여 줍니다.

Screenshot shows the traveling user sign-in flow.

  1. NOAM(북아메리카) 사용자가 프랑스에서 휴가를 보내고 있기 때문에 myapp.fr에 로그인을 시도합니다. 사용자가 로컬 호스트 이름으로 전송되지 않는 경우 트래픽 관리자는 리디렉션을 적용합니다.

  2. 사용자는 EMEA 테넌트에 도착합니다.

  3. 사용자는 지역 테넌트에서 자신의 자격 증명을 입력합니다.

  4. EMEA Azure AD B2C 디렉터리에서 사용자의 메일을 찾을 수 없기 때문에 지역 테넌트는 전역 조회 테이블을 조회합니다.

  5. 사용자의 메일은 NOAM Azure AD B2C 테넌트에 가입되어 있는 위치에 있습니다.

  6. EMEA Azure AD B2C 테넌트는 자격 증명을 확인하기 위해 NOAM Azure AD B2C 테넌트에 대해 Microsoft Entra ROPC 흐름을 수행합니다.

    참고 항목

    이 호출은 또한 사용자가 Graph API 호출을 수행할 수 있도록 토큰을 가져옵니다. EMEA Azure AD B2C 테넌트는 NOAM Azure AD B2C 테넌트에 대한 Graph API 호출을 수행하여 사용자 프로필을 가져옵니다. 이 호출은 마지막 단계에서 얻은 Graph API에 대한 액세스 토큰으로 인증됩니다.

  7. 지역 테넌트는 토큰 백 앱을 발급합니다.

로컬 사용자 암호 찾기

이 사용 사례는 사용자가 자국/지역 내에 있을 때 암호를 초기화하는 방법을 보여 줍니다.

Screenshot shows the local user forgot password flow.

  1. EMEA 사용자가 myapp.fr에서 로그인을 시도합니다. 사용자가 로컬 호스트 이름으로 전송되지 않는 경우 트래픽 관리자는 리디렉션을 적용합니다.

  2. 사용자가 EMEA Azure AD B2C 테넌트에 도착하여 암호 찾기를 선택합니다. 사용자는 메일을 입력하고 확인합니다.

  3. 사용자가 있는 지역 테넌트를 확인하기 위해 메일 조회가 수행됩니다.

  4. 사용자가 새 암호를 제공합니다.

  5. 새 암호는 EMEA Azure AD B2C 테넌트에 기록됩니다.

  6. 지역 테넌트는 앱에 다시 토큰을 발급합니다.

이동 중인 사용자 암호 찾기

이 사용 사례는 사용자가 계정을 등록한 지역을 벗어나 이동 중일 때 암호를 초기화하는 방법을 보여 줍니다.

Screenshot shows the traveling user forgot password flow.

  1. NOAM의 사용자가 프랑스에서 휴가를 보내기 때문에 myapp.fr에서 로그인을 시도합니다. 사용자가 로컬 호스트 이름으로 전송되지 않는 경우 트래픽 관리자는 리디렉션을 적용합니다.

  2. 사용자가 EMEA Azure AD B2C 테넌트에 도착하여 암호 찾기를 선택합니다. 사용자는 메일을 입력하고 확인합니다.

  3. 사용자가 있는 지역 테넌트를 확인하기 위해 메일 조회가 수행됩니다.

  4. 메일이 NOAM Azure AD B2C 테넌트에 존재하는 것으로 확인되었습니다. 사용자가 새 암호를 제공합니다.

  5. 새 암호는 Graph API 호출을 통해 NOAM Azure AD B2C 테넌트에 기록됩니다.

  6. 지역 테넌트는 앱에 다시 토큰을 발급합니다.

로컬 사용자 암호 변경

이 사용 사례는 사용자가 계정을 등록한 지역에 로그인한 후 암호를 변경하는 방법을 보여 줍니다.

Screenshot shows the local user change password flow.

  1. EMEA 사용자가 myapp.fr에 로그인한 후 암호 변경을 선택합니다.

  2. EMEA Azure AD B2C 테넌트에 도착한 사용자는 SSO(Single-Sign On) 쿠키 집합을 통해 해당 암호를 즉시 변경할 수 있습니다.

  3. EMEA Azure AD B2C 테넌트의 사용자 계정에 새 암호가 기록됩니다.

  4. 지역 테넌트는 앱에 다시 토큰을 발급합니다.

이동 중인 사용자 암호 변경

이 사용 사례는 사용자가 계정을 등록한 지역이 아닌 곳에서 로그인한 후 암호를 변경할 수 있는 방법을 보여 줍니다.

Screenshot shows the traveling user change password flow.

  1. NOAM의 사용자는 myapp.fr에 로그인한 후 암호 변경을 선택하려고 시도합니다.

  2. EMEA Azure AD B2C 테넌트에 도착한 사용자는 SSO 쿠키 집합을 통해 해당 암호를 즉시 변경할 수 있습니다.

  3. 전역 조회 테이블을 확인한 결과 사용자 이메일이 NOAM 테넌트에 있는 것으로 확인되었습니다.

  4. 새 암호는 MS Graph API 호출에 의해 NOAM Azure AD B2C 테넌트의 사용자 계정에 기록됩니다.

  5. 지역 테넌트는 앱에 다시 토큰을 발급합니다.

페더레이션된 ID 공급자 인증

다음 사용 사례에서는 페더레이션된 ID를 사용하여 Azure AD B2C 클라이언트로 등록하거나 로그인하는 예를 보여 줍니다.

로컬 페더레이션된 ID 등록

이 사용 사례는 해당 지역의 사용자가 페더레이션된 ID를 사용하여 서비스에 가입하는 방법을 보여 줍니다.

Screenshot shows the sign up flow.

  1. EMEA 사용자가 myapp.fr에서 등록을 시도합니다. 사용자가 로컬 호스트 이름으로 전송되지 않는 경우 트래픽 관리자는 리디렉션을 적용합니다.

  2. 사용자는 EMEA 테넌트에 도착합니다.

  3. 사용자는 페더레이션된 ID 공급자로 로그인하도록 선택합니다.

  4. 전역 조회 테이블에 대한 조회를 수행합니다.

    • 계정 연결이 범위에 있는 경우: 페더레이션된 IdP 식별자 또는 페더레이션된 IdP에서 돌아온 메일이 조회 테이블에 존재하지 않는 경우 진행합니다.

    • 계정 연결이 범위에 없는 경우: 페더레이션된 IdP에서 돌아온 페더레이션된 IdP 식별자가 조회 테이블에 존재하지 않는 경우 진행합니다.

  5. EMEA Azure AD B2C 테넌트에 사용자 계정을 씁니다.

  6. 지역 테넌트는 앱에 다시 토큰을 발급합니다.

로컬 페더레이션 사용자 로그인

이 사용 사례는 해당 지역의 사용자가 페더레이션된 ID를 사용하여 서비스에 로그인하는 방법을 보여 줍니다.

Screenshot shows the sign in flow.

  1. EMEA 사용자가 myapp.fr에서 로그인을 시도합니다. 사용자가 로컬 호스트 이름으로 전송되지 않는 경우 트래픽 관리자는 리디렉션을 적용합니다.

  2. 사용자는 EMEA 테넌트에 도착합니다.

  3. 사용자는 페더레이션된 ID 공급자로 로그인하도록 선택합니다.

  4. 전역 조회 테이블을 조회하고 사용자의 페더레이션된 ID가 EMEA에 등록되어 있는지 확인합니다.

  5. 지역 테넌트는 앱에 다시 토큰을 발급합니다.

이동 중인 페더레이션 사용자 로그인

이 시나리오는 가입한 지역에서 멀리 떨어진 사용자가 페더레이션된 IdP를 사용하여 서비스에 로그인하는 방법을 보여 줍니다.

Screenshot shows the sign in for traveling user flow.

  1. NOAM의 사용자가 myapp.fr에서 로그인을 시도합니다. 사용자가 로컬 호스트 이름으로 전송되지 않는 경우 트래픽 관리자는 리디렉션을 적용합니다.

  2. 사용자는 EMEA 테넌트에 도착합니다.

  3. 사용자는 페더레이션된 ID 공급자로 로그인하도록 선택합니다.

    참고 항목

    모든 Azure AD B2C 지역 테넌트에서 소셜 IdP의 앱 등록에서 동일한 앱 ID를 사용합니다. 이렇게 하면 소셜 IdP에서 돌아오는 ID가 항상 동일합니다.

  4. 전역 조회 테이블을 조회하고 사용자의 페더레이션된 ID가 NOAM에 등록되어 있는지 확인합니다.

  5. MS Graph API를 사용하여 NOAM Azure AD B2C 테넌트에서 계정 데이터를 읽습니다.

  6. 지역 테넌트는 앱에 다시 토큰을 발급합니다.

일치 조건으로 계정 연결

이 시나리오는 일치 기준(일반적으로 이메일 주소)이 충족될 때 사용자가 계정 연결을 수행할 수 있는 방법을 보여 줍니다.

Screenshot shows the merge/link accounts flow.

  1. EMEA 사용자가 myapp.fr에서 로그인을 시도합니다. 사용자가 로컬 호스트 이름으로 전송되지 않는 경우 트래픽 관리자는 리디렉션을 적용합니다.

  2. 사용자는 EMEA 테넌트에 도착합니다.

  3. 사용자는 페더레이션된 ID 공급자/소셜 IdP로 로그인하도록 선택합니다.

  4. 통합 IdP에서 반환된 ID에 대한 전역 조회 테이블에서 조회가 수행됩니다.

  5. ID는 없지만 페더레이션된 IdP의 이메일이 EMEA Azure AD B2C에 있는 경우 계정 연결 시나리오입니다.

  6. 디렉터리에서 사용자를 읽고 계정에서 사용하도록 설정된 인증 방법을 확인합니다. 사용자가 이 계정의 기존 인증 방법으로 로그인할 수 있는 화면을 제공합니다.

  7. 사용자가 Azure AD B2C에서 계정을 소유하고 있음을 증명하면 기존 계정에 새 소셜 ID를 추가하고 전역 조회 테이블의 계정에 소셜 ID를 추가합니다.

  8. 지역 테넌트는 앱에 다시 토큰을 발급합니다.

일치하는 조건을 통한 이동 중인 사용자 계정 연결

이 시나리오는 사용자가 지역 밖에 있을 때 계정 연결을 수행할 수 있는 방법을 보여 줍니다.

Screenshot shows the traveling user merge/link accounts flow.

  1. NOAM의 사용자가 myapp.fr에서 로그인을 시도합니다. 사용자가 로컬 호스트 이름으로 전송되지 않는 경우 트래픽 관리자는 리디렉션을 적용합니다.

  2. 사용자는 EMEA 테넌트에 도착합니다.

  3. 사용자는 페더레이션된 ID 공급자/소셜 IdP로 로그인하도록 선택합니다.

  4. 통합 IdP에서 반환된 ID에 대한 전역 조회 테이블에서 조회가 수행됩니다.

  5. ID가 없고 페더레이션된 IdP의 이메일이 다른 지역에 있는 경우 이동 중인 사용자 계정 연결 시나리오입니다.

  6. 사용자가 현재 수집한 클레임을 어설션하는 id_token_hint 링크를 만듭니다. 페더레이션을 사용하여 NOAM Azure AD B2C 테넌트로의 과정을 부트스트랩합니다. 사용자는 NOAM Azure AD B2C 테넌트를 통해 계정을 소유하고 있음을 증명합니다.

    참고 항목

    이 방법은 홈 테넌트에서 기존 계정 연결 논리를 재사용하고 외부 API 호출을 줄여 ID 컬렉션을 조작하는 데 사용됩니다. id_token_hint를 활용하는 사용자 지정 정책 샘플은 여기에서 찾을 수 있습니다.

  7. 사용자가 Azure AD B2C에서 계정을 소유하고 있음을 증명하면 NOAM Azure AD B2C 테넌트에 대한 Graph API 호출을 수행하여 기존 계정에 새 소셜 ID를 추가합니다. 전역 조회 테이블의 계정에 소셜 ID를 추가합니다.

  8. 지역 테넌트는 앱에 다시 토큰을 발급합니다.

다음 단계