다음을 통해 공유


Microsoft Entra B2B를 사용하여 사업 부문 애플리케이션에 외부 사용자 온보딩

애플리케이션 개발자는 Microsoft Entra B2B를 사용하여 LOB(사업 부문) 애플리케이션에 외부 사용자를 온보딩하고 공동 작업할 수 있습니다. 여러 Office 365 애플리케이션의 공유 버튼과 마찬가지로, 애플리케이션 개발자는 Microsoft Entra ID와 통합된 LOB 애플리케이션 내에서 원클릭 초대 환경을 만들 수 있습니다.

이점은 다음과 같습니다.

  • LOB 애플리케이션에 대한 사용자 온보딩 및 액세스. 사용자는 몇 단계를 통해 액세스 가능
  • 외부 사용자가 자신의 ID를 가져와 SSO(Single Sign-On) 수행
  • Microsoft Entra ID에 외부 ID 프로비전
  • Microsoft Entra 조건부 액세스 및 테넌트 간 액세스 정책으로 다단계 인증 등 권한 부여 정책 적용

통합 흐름

LOB 애플리케이션을 Microsoft Entra B2B와 통합하려면 다음 패턴을 따릅니다.

LOB(기간 업무) 애플리케이션 통합 관련 스크린샷.

  1. 최종 사용자는 LOB(기간 업무) 애플리케이션 내에서 초대를 트리거하여 외부 사용자의 이메일 주소를 제공합니다. 애플리케이션에서 사용자가 이미 있는지 확인하고 없는 경우 초대를 만들고 보냄|
  2. 애플리케이션은 사용자를 대신하여 Microsoft Graph API에 게시물을 보냅니다. 외부 사용자가 디렉터리에 있는지 확인에서 정의한 리디렉션 URL 및 외부 사용자의 이메일을 제공합니다.
  3. Microsoft Graph API는 Microsoft Entra ID에서 게스트 사용자를 프로비전합니다.
  4. Microsoft Graph API는 API 호출의 성공 또는 실패 상태를 반환합니다. 성공하면 응답에는 Microsoft Entra 사용자 개체 ID와 초대한 사용자의 이메일로 보낸 초대 링크가 포함됩니다. Microsoft 이메일을 표시하지 않고 사용자 지정 이메일을 보낼 수도 있습니다.
  5. (선택 사항) 초대하는 사용자에게 더 많은 특성을 쓰거나 초대하는 사용자를 그룹에 추가하려는 경우. 애플리케이션에서 Microsoft Graph API에 대해 추가 API 호출을 합니다.
  6. (선택 사항) Microsoft Graph API에서 Microsoft Entra ID를 업데이트합니다.
  7. (선택 사항) Microsoft Graph API가 성공 또는 실패 상태를 애플리케이션에 반환합니다.
  8. 애플리케이션은 사용자 개체 ID 특성을 변경이 불가능한 ID로 사용하여 사용자를 자체 데이터베이스 또는 백 엔드 사용자 디렉터리에 프로비전합니다.
  9. 애플리케이션에서 최종 사용자에게 성공 또는 실패 상태를 표시합니다.

LOB 애플리케이션에 액세스하려면 할당을 받아야 하는 경우, 초대받은 게스트 사용자도 적절한 애플리케이션 역할을 가지고 애플리케이션에 할당되어야 합니다. 이 작업을 초대받은 게스트를 그룹에 추가하는 또 다른 API 호출로 사용하거나, Microsoft Entra 동적 멤버 자격 그룹으로 멤버 자격을 자동화합니다. 동적 멤버 자격 그룹에는 애플리케이션의 다른 API 호출이 필요하지 않지만, 사용자 초대를 통해 그룹에 사용자를 추가하는 것만큼 빠르게 업데이트됩니다.

외부 사용자가 디렉터리에 있는지 확인

외부 사용자가 이미 초대를 받아 온보딩되었을 수 있습니다. LOB 애플리케이션에서 사용자가 디렉터리에 있는지 확인합니다. Microsoft Graph API에 대한 API 호출을 수행하고 초대하는 사용자에게 일치 항목을 표시하여 선택할 수 있도록 합니다.

예시:

Application Permission: User.read.all

GET https://graph.microsoft.com/v1.0/users?$filter=othermails/any(id:id eq 'userEmail@contoso.com')  

응답에 사용자의 세부 정보가 있다면 사용자가 디렉터리에 있는 것입니다. 초대하는 사용자에게 반환된 사용자를 표시합니다. 사용자가 액세스 권한을 얻는 외부 사용자를 선택할 수 있도록 허용합니다. 애플리케이션에 대한 사용자 액세스를 부여하려면 API를 호출하거나 다른 프로세스를 트리거합니다.

초대를 만들고 보내기

외부 사용자가 디렉터리에 없는 경우 Microsoft Entra B2B를 사용하여 해당 사용자를 초대하고 Microsoft Entra 테넌트에 온보딩할 수 있습니다. Microsoft Graph API에 대한 초대 요청에 포함할 항목을 결정해야 합니다.

다음 요소를 사용할 수 있습니다.

  • 최종 사용자에게 외부 사용자 이메일 주소를 입력하라는 메시지 표시
  • 초대받은 사용자가 B2B 초대를 인증 및 사용한 후 리디렉션하는 초대 URL 결정
    • URL은 기본 방문 페이지일 수도 있고 최종 사용자가 초대를 트리거한 위치에 따라 LOB 애플리케이션에 의해 동적으로 결정될 수도 있음

초대 요청에 더 추가할 수 있는 플래그 및 특성:

  • 초대받은 사용자의 표시 이름
  • 기본 Microsoft 초대 이메일을 사용할지 기본 이메일을 무시하고 직접 만들지 여부

애플리케이션이 필요한 정보를 수집한 후, 애플리케이션은 Microsoft Graph API 초대 관리자에게 요청을 게시해야 합니다. 애플리케이션 등록에 Microsoft Entra ID의 권한이 있는지 확인합니다.

예시:

Delegated Permission: User.Invite.All

POST https://graph.microsoft.com/v1.0/invitations  
Content-type: application/json

{ 
"invitedUserDisplayName": "John Doe",  
"invitedUserEmailAddress": "john.doe@contoso.com",  
"sendInvitationMessage": true,  
"inviteRedirectUrl": "https://customapp.contoso.com"  
} 

참고 항목

초대의 JSON 본문에 대한 옵션을 보려면 Microsoft Graph v1.0의 초대 리소스 종류를 참조하세요.

애플리케이션 개발자는 Microsoft Entra 셀프 서비스 가입 또는 권한 관리 액세스 패키지를 사용하여 외부 사용자를 온보딩할 수 있습니다. LOB 애플리케이션에서 셀프 서비스 가입 URL 또는 액세스 패키지 URL이 포함된 사용자 지정 이메일을 트리거하는 초대 버튼을 만듭니다. 초대된 사용자가 온보딩하고 애플리케이션에 접근합니다.

(선택 사항) Microsoft Entra ID에 다른 특성 쓰기

중요합니다

디렉터리에서 사용자를 업데이트할 수 있는 애플리케이션 권한을 부여하는 것은 매우 권한이 높은 작업입니다. 애플리케이션에 이러한 높은 권한을 부여하는 경우, LOB 앱을 보호하고 모니터링하세요.

조직 또는 LOB 애플리케이션은 토큰의 클레임 내보내기 또는 세분화된 권한 부여 정책과 같이 향후 사용을 위해 저장된 정보를 필요로 할 수 있습니다. 외부 사용자가 Microsoft Entra ID에서 초대되거나 생성되면 애플리케이션은 다른 API 호출을 통해 해당 사용자를 업데이트할 수 있습니다. 애플리케이션에 추가 API 권한이 있어야 하며 Microsoft Graph API에 대한 추가 호출이 있어야 합니다.

사용자를 업데이트하려면 초대 API 호출에서 생성된 게스트 사용자의 개체 ID, 존재 확인 또는 초대의 API 응답에 있는 ID 값을 사용합니다. 모든 표준 속성 또는 사용자 지정 확장 성에 쓸 수 있습니다.

예시:

Application Permission: User.ReadWrite.All

PATCH https://graph.microsoft.com/v1.0/users/<user's object ID> 
Content-type: application/json

{ 
"businessPhones": [ 
        "+1 234 567 8900" 
    ], 
"givenName": "John" 
"surname": "Doe", 
"extension_cf4ff515cbf947218d468c96f9dc9021_appRole": "external" 
} 

자세한 내용은 Microsoft Graph v1.0에서 사용자 업데이트를 참조하세요.

(선택 사항) 초대된 사용자를 그룹에 할당

참고 항목

애플리케이션에 액세스하는 데 사용자 할당이 필요하지 않은 경우 이 단계를 건너뛸 수 있습니다.

애플리케이션 액세스 또는 역할 할당을 위해 Microsoft Entra ID에서 사용자 할당이 필요한 경우 사용자가 애플리케이션에 할당됩니다. 그렇지 않으면 인증 여부와 관계없이 사용자가 액세스할 수 없습니다. 초대된 외부 사용자를 그룹에 추가하려면 다른 API 호출을 수행합니다. 그룹이 애플리케이션에 할당되고 애플리케이션 역할에 매핑됩니다.

권한 예시: 그룹 업데이트 역할 또는 사용자 지정 역할을 엔터프라이즈 애플리케이션에 할당합니다. 이 애플리케이션이 업데이트하는 그룹에 대한 역할 할당 범위를 지정합니다. 또는 Microsoft Graph API에 group.readwrite.all 권한을 할당합니다.

POST https://graph.microsoft.com/v1.0/groups/<insert group id>/members/$ref 
Content-type: application/json

{ 
"@odata.id": "https://graph.microsoft.com/v1.0/directoryObjects/<insert user id>" 
} 

자세한 내용은 Microsoft Graph v1.0에서 멤버 추가를 참조하세요.

또는 userType, 이메일 또는 사용자 지정 특성과 같은 특정 특성을 기반으로 사용자를 자동으로 할당하는 Microsoft Entra 동적 멤버 자격 그룹을 사용할 수도 있습니다. 그러나 사용자 액세스가 시간에 민감한 경우 동적 멤버 자격 그룹을 채우는 데 최대 24시간이 걸릴 수 있으므로 이 접근 방식은 권장되지 않습니다.

동적 멤버 자격 그룹을 사용하는 경우 다른 API 호출을 통해 사용자를 그룹에 추가하지 마세요. 대신 userType, 이메일 또는 사용자 지정 특성과 같은 특성을 기반으로 사용자를 그룹 구성원으로 추가하는 그룹을 만듭니다. 자세한 내용은 동적 그룹 만들기 또는 편집 및 상태 가져오기를 참조하세요.

애플리케이션에 초대된 사용자 프로비전

초대된 외부 사용자가 Microsoft Entra ID에서 프로비전되면 Microsoft Graph API는 개체 ID 및 이메일과 같은 사용자 정보가 포함된 응답을 반환합니다. LOB 애플리케이션은 사용자를 해당 디렉터리 또는 데이터베이스에 프로비전합니다. 프로비전은 애플리케이션이 사용하는 애플리케이션 및 내부 디렉터리 유형에 따라 다릅니다.

외부 사용자가 Microsoft Entra ID 및 애플리케이션에서 프로비전된 경우, LOB 애플리케이션은 시작 사용자에게 프로세스가 성공했음을 알립니다. 초대된 사용자는 추가 자격 증명을 온보딩하고 발급하는 초대 조직 없이도 자신의 ID를 사용해 SSO를 수행합니다. Microsoft Entra ID는 조건부 액세스, Microsoft Entra 다단계 인증 및 위험 기반 ID Protection과 같은 권한 부여 정책을 적용합니다.

기타 고려 사항

LOB 애플리케이션에서 오류 처리가 수행되는지 확인합니다. 애플리케이션은 각 API 호출의 유효성을 검사합니다. 실패한 경우 추가 시도 또는 오류 메시지가 유용합니다.

LOB 애플리케이션이 초대된 외부 사용자를 업데이트하려면 애플리케이션이 사용자를 업데이트하고 동적 관리 단위로 범위를 할당할 수 있는 사용자 지정 역할을 부여합니다. 예를 들어 usertype = guest인 사용자로 동적 관리 단위를 만들 수 있습니다. 외부 사용자가 Microsoft Entra ID에 온보딩되면 관리 단위로 추가됩니다. LOB 애플리케이션이 사용자 업데이트를 시도해야 하며 지연이 있는 경우 두 번 이상 시도해야 할 수 있습니다. 지연이 발생하더라도 이 접근 방식을 사용하면 LOB 애플리케이션이 디렉터리의 모든 사용자를 업데이트할 수 있는 권한을 부여하지 않고도 외부 사용자를 업데이트할 수 있습니다.