다음을 통해 공유


Microsoft Entra B2B를 사용하여 LOB(기간 업무) 애플리케이션에 외부 사용자 온보딩

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

이점은 다음과 같습니다.

  • LOB 애플리케이션에 대한 사용자 온보딩 및 액세스. 사용자는 몇 가지 단계를 통해 액세스할 수 있습니다.
  • 외부 사용자가 자신의 ID를 가져오고 SSO(Single Sign-On)를 수행합니다.
  • Microsoft Entra 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 애플리케이션에서 디렉터리의 사용자를 업데이트할 수 있는 권한을 부여하지 않고도 외부 사용자를 업데이트할 수 있습니다.