유입 경로 기반 접근 방식으로 전역 ID 솔루션 빌드

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

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

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

로컬 계정 로그인 사용 사례

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

로컬 사용자 등록

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

Screenshot shows the Local user sign-up flow.

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

  2. 사용자가 전역 유입 경로 Azure AD B2C 테넌트에서 도달합니다. 이 테넌트는 OpenId 페더레이션을 사용하여 정의된 조건에 따라 지역 Azure AD B2C 테넌트로 리디렉션하도록 구성됩니다. 애플리케이션 clientId를 기준으로 하는 조회일 수 있습니다.

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

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

  5. 지역 테넌트는 유입 경로 테넌트에 다시 토큰을 발급합니다.

  6. 유입 경로 테넌트는 애플리케이션에 토큰을 발급합니다.

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

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

Screenshot shows the existing account sign-up flow.

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

  2. 사용자가 전역 유입 경로 Azure AD B2C 테넌트에서 도달합니다. 이 테넌트는 OpenId 페더레이션을 사용하여 일부 조건에 따라 지역 Azure AD B2C 테넌트로 리디렉션하도록 구성됩니다. 애플리케이션 clientId를 기준으로 하는 조회일 수 있습니다.

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

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

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

로컬 사용자 로그인

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

Screenshot shows the local user sign-in flow.

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

  2. 사용자가 전역 유입 경로 Azure AD B2C 테넌트에서 도달합니다. 이 테넌트는 OpenId 페더레이션을 사용하여 일부 조건에 따라 지역 Azure AD B2C 테넌트로 리디렉션하도록 구성됩니다. 애플리케이션 clientId를 기준으로 하는 조회일 수 있습니다.

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

  4. 지역 테넌트는 유입 경로 테넌트에 다시 토큰을 발급합니다.

  5. 유입 경로 테넌트는 애플리케이션에 토큰을 발급합니다.

이동 중인 사용자 로그인

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

Screenshot shows the traveling user sign-in flow.

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

  2. 사용자가 전역 유입 경로 Azure AD B2C 테넌트에서 도달합니다. 이 테넌트는 OpenId 페더레이션을 사용하여 일부 조건에 따라 지역 Azure AD B2C 테넌트로 리디렉션하도록 구성됩니다. 애플리케이션 clientId를 기준으로 하는 조회일 수 있습니다.

  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. 지역 테넌트는 유입 경로 테넌트에 다시 토큰을 발급합니다.

  8. 유입 경로 테넌트는 애플리케이션에 토큰을 발급합니다.

로컬 사용자 암호 찾기

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

Screenshot shows the local user forgot password flow.

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

  2. 사용자가 전역 유입 경로 Azure AD B2C 테넌트에서 도달합니다. 이 테넌트는 OpenId 페더레이션을 사용하여 일부 조건에 따라 지역 Azure AD B2C 테넌트로 리디렉션하도록 구성됩니다. 애플리케이션 clientId를 기준으로 하는 조회일 수 있습니다.

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

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

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

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

  7. 지역 테넌트는 유입 경로 테넌트에 다시 토큰을 발급합니다.

  8. 유입 경로 테넌트는 애플리케이션에 토큰을 발급합니다.

이동 중인 사용자 암호 찾기

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

Screenshot shows the traveling user forgot password flow.

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

  2. 사용자가 전역 유입 경로 Azure AD B2C 테넌트에서 도달합니다. 이 테넌트는 OpenId 페더레이션을 사용하여 일부 조건에 따라 지역 Azure AD B2C 테넌트로 리디렉션하도록 구성됩니다. 애플리케이션 clientId를 기준으로 하는 조회일 수 있습니다.

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

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

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

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

  7. 지역 테넌트는 유입 경로 테넌트에 다시 토큰을 발급합니다.

  8. 유입 경로 테넌트는 애플리케이션에 토큰을 발급합니다.

로컬 사용자 암호 변경

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

Screenshot shows the local user password change flow.

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

  2. 사용자가 전역 유입 경로 Azure AD B2C 테넌트에서 도달합니다. 이 테넌트는 OpenId 페더레이션을 사용하여 일부 조건에 따라 지역 Azure AD B2C 테넌트로 리디렉션하도록 구성됩니다. 애플리케이션 clientId를 기준으로 하는 조회일 수 있습니다.

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

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

  5. 지역 테넌트는 유입 경로 테넌트에 다시 토큰을 발급합니다.

  6. 유입 경로 테넌트는 애플리케이션에 토큰을 발급합니다.

이동 중인 사용자 암호 변경

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

Screenshot shows the flow for traveling user password change.

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

  2. 사용자가 전역 유입 경로 Azure AD B2C 테넌트에서 도달합니다. 이 테넌트는 OpenId 페더레이션을 사용하여 일부 조건에 따라 지역 Azure AD B2C 테넌트로 리디렉션하도록 구성됩니다. 애플리케이션 clientId를 기준으로 하는 조회일 수 있습니다.

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

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

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

  6. 지역 테넌트는 유입 경로 테넌트에 다시 토큰을 발급합니다.

  7. 유입 경로 테넌트는 애플리케이션에 토큰을 발급합니다.

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

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

로컬 페더레이션된 ID 등록

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

Screenshot shows the flow for federated ID sign-up.

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

  2. 사용자가 전역 유입 경로 Azure AD B2C 테넌트에서 도달합니다. 이 테넌트는 OpenId 페더레이션을 사용하여 일부 조건에 따라 지역 Azure AD B2C 테넌트로 리디렉션하도록 구성됩니다. 애플리케이션 clientId를 기준으로 하는 조회일 수 있습니다.

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

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

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

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

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

  6. 지역 테넌트는 유입 경로 테넌트에 다시 토큰을 발급합니다.

  7. 유입 경로 테넌트는 애플리케이션에 토큰을 발급합니다.

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

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

Screenshot shows the flow for local federated user sign-in.

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

  2. 사용자가 전역 유입 경로 Azure AD B2C 테넌트에서 도달합니다. 이 테넌트는 OpenId 페더레이션을 사용하여 일부 조건에 따라 지역 Azure AD B2C 테넌트로 리디렉션하도록 구성됩니다. 애플리케이션 clientId를 기준으로 하는 조회일 수 있습니다.

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

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

  5. 지역 테넌트는 유입 경로 테넌트에 다시 토큰을 발급합니다.

  6. 유입 경로 테넌트는 애플리케이션에 토큰을 발급합니다.

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

이 사용 사례는 사용자가 등록한 지역에서 멀리 떨어져 있으면서 페더레이션된 IdP를 사용하여 계정에 로그인하는 방법을 보여 줍니다.

Screenshot shows the flow for traveling federated user sign-in.

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

  2. 사용자가 전역 유입 경로 Azure AD B2C 테넌트에서 도달합니다. 이 테넌트는 OpenId 페더레이션을 사용하여 일부 조건에 따라 지역 Azure AD B2C 테넌트로 리디렉션하도록 구성됩니다. 애플리케이션 clientId를 기준으로 하는 조회일 수 있습니다.

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

    참고 항목

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

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

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

  6. 지역 테넌트는 유입 경로 테넌트에 다시 토큰을 발급합니다.

  7. 유입 경로 테넌트는 애플리케이션에 토큰을 발급합니다.

일치 조건으로 계정 연결

이 사용 사례는 일치하는 조건이 충족될 경우 사용자가 계정 연결을 수행할 수 있는 방법을 보여 줍니다. 일치하는 기준은 일반적으로 사용자 메일 주소입니다. 새 ID 공급자의 로그인 일치 조건이 Azure AD B2C의 기존 계정의 경우와 동일한 값을 갖는 경우 계정 연결 프로세스가 시작될 수 있습니다.

Screenshot shows the flow to merge a federated account.

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

  2. 사용자가 전역 유입 경로 Azure AD B2C 테넌트에서 도달합니다. 이 테넌트는 OpenId 페더레이션을 사용하여 일부 조건에 따라 지역 Azure AD B2C 테넌트로 리디렉션하도록 구성됩니다. 애플리케이션 clientId를 기준으로 하는 조회일 수 있습니다.

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

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

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

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

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

  8. 지역 테넌트는 유입 경로 테넌트에 다시 토큰을 발급합니다.

  9. 유입 경로 테넌트는 애플리케이션에 토큰을 발급합니다.

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

이 사용 사례는 일치하는 조건이 충족될 경우 비로컬 사용자가 계정 연결을 수행할 수 있는 방법을 보여 줍니다. 일치하는 기준은 일반적으로 사용자 메일 주소입니다. 새 ID 공급자의 로그인 일치 조건이 Azure AD B2C의 기존 계정의 경우와 동일한 값을 갖는 경우 계정 연결 프로세스가 시작될 수 있습니다.

Screenshot shows the flow to merge traveling federated user.

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

  2. 사용자가 전역 유입 경로 Azure AD B2C 테넌트에서 도달합니다. 이 테넌트는 OpenId 페더레이션을 사용하여 일부 조건에 따라 지역 Azure AD B2C 테넌트로 리디렉션하도록 구성됩니다. 애플리케이션 clientId를 기준으로 하는 조회일 수 있습니다.

  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. 지역 테넌트는 유입 경로 테넌트에 다시 토큰을 발급합니다.

  9. 유입 경로 테넌트는 애플리케이션에 토큰을 발급합니다.

다음 단계