Бөлісу құралы:


Подключение внешних пользователей к бизнес-приложениям с помощью Microsoft Entra B2B

Разработчики приложений могут использовать Microsoft Entra B2B для подключения и совместной работы с внешними пользователями в бизнес-приложениях (LOB). Как и кнопка "Общий доступ " во многих приложениях Office 365, разработчики приложений могут создать интерфейс приглашения с одним щелчком мыши в бизнес-приложениях, интегрированных с идентификатором Microsoft Entra.

Она предлагает следующие преимущества:

  • Подключение пользователей и доступ к бизнес-приложениям. У пользователей есть доступ с помощью нескольких шагов
  • Внешние пользователи приносят свое удостоверение и выполняют единый вход (единый вход)
  • Подготовка внешних удостоверений к идентификатору Microsoft Entra
  • Условный доступ Microsoft Entra и политики межтенантного доступа для принудительного применения политик авторизации, таких как многофакторная проверка подлинности

Поток интеграции

Чтобы интегрировать бизнес-приложения с Microsoft Entra B2B, выполните следующую схему:

Снимок экрана: интеграция бизнес-приложений.

  1. Конечный пользователь активирует приглашение в бизнес-приложении и предоставляет адрес электронной почты внешнего пользователя. Приложение проверяет, существует ли пользователь, и если они этого не сделали, переходит к созданию и отправке приглашения.|
  2. Приложение отправляет POST в API Microsoft Graph от имени пользователя. Он предоставляет URL-адрес перенаправления и сообщение электронной почты внешнего пользователя, определенное в каталоге.
  3. API Microsoft Graph подготавливает гостевого пользователя в идентификаторе Microsoft Entra.
  4. API Microsoft Graph возвращает состояние успешного сбоя вызова API. В случае успешного выполнения ответ содержит идентификатор объекта пользователя Microsoft Entra и ссылку на приглашение, отправленную приглашенной электронной почте пользователя. Вы можете отключить электронную почту Майкрософт и отправить собственный пользовательский адрес электронной почты.
  5. (Необязательно) Чтобы написать дополнительные атрибуты приглашенного пользователя или добавить приглашенного пользователя в группу. Приложение выполняет дополнительный вызов API к API Microsoft Graph.
  6. (Необязательно) API Microsoft Graph делает обновления идентификатора Microsoft Entra.
  7. (Необязательно) API Microsoft Graph возвращает состояние успешного или неудачного выполнения приложению.
  8. Приложение подготавливает пользователя к базе данных или внутреннему каталогу пользователя с помощью атрибута идентификатора объекта пользователя в качестве неизменяемого идентификатора.
  9. Приложение предоставляет пользователю состояние успешного или неудачного выполнения.

Если назначение требуется для доступа к бизнес-приложению, приглашенный гостевой пользователь назначается приложению с ролью приложения. Включите это действие в качестве другого вызова API, добавляя приглашенного гостя в группу или автоматизируйте членство в группах с помощью динамических групп Microsoft Entra. Динамические группы не требуют другого вызова API приложением. Однако членство в группах обновляется так же быстро, как добавление пользователя в группу после приглашения пользователя.

Убедитесь, что внешний пользователь находится в каталоге

Возможно, внешний пользователь был приглашен и подключен. Бизнес-приложение проверяет, находится ли пользователь в каталоге. Вызов API к API Microsoft Graph и представление совпадений с приглашенным пользователем для выбора.

Например:

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. Определите, что следует включить в запрос приглашения к API Microsoft Graph.

Используйте следующие элементы:

  • Предложите пользователю указать адрес электронной почты внешнего пользователя
  • Определите URL-адрес приглашения, который перенаправляет приглашенных пользователей, после проверки подлинности и активации приглашения B2B
    • URL-адрес может быть универсальной целевой страницей или динамически определяется бизнес-приложением на основе того, где конечный пользователь активировал приглашение.

Дополнительные флаги и атрибуты для запроса приглашения:

  • Отображаемое имя приглашенного пользователя
  • Электронная почта приглашения Майкрософт по умолчанию или отключение сообщения электронной почты по умолчанию для создания собственного

После сбора необходимых сведений приложение должно отправить запрос диспетчеру приглашений API Microsoft Graph. Убедитесь, что регистрация приложения имеет разрешения в идентификаторе Microsoft Entra.

Рассмотрим пример.

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 версии 1.0.

Разработчики приложений могут подключить внешних пользователей с помощью пакетов самостоятельной регистрации или управления правами Microsoft Entra. Создайте кнопку "Приглашение" в бизнес-приложении, которое активирует настраиваемое сообщение электронной почты с URL-адресом самостоятельной регистрации или URL-адресом пакета доступа. Приглашенный пользователь подключен и обращается к приложению.

(Необязательно) Запись других атрибутов в идентификатор Microsoft Entra

Внимание

Предоставление приложению разрешения на обновление пользователей в каталоге — это действие с высоким уровнем привилегий. Если вы предоставите приложению эти разрешения с высоким уровнем привилегий, защитите и отслеживайте бизнес-приложение.

Вашей организации или бизнес-приложению может потребоваться информация, хранящуюся для дальнейшего использования, например выдачу утверждений в токенах или политиках детализации авторизации. При приглашении или создании внешних пользователей в идентификаторе Microsoft Entra приложение может вызвать другой вызов API для их обновления. Приложение должно иметь дополнительные разрешения API и дополнительный вызов API Microsoft Graph.

Чтобы обновить пользователя, используйте идентификатор объекта созданного гостевого пользователя из вызова API приглашения, значение идентификатора в ответе API из проверки существования или приглашения. Вы можете написать любой стандартный атрибут или настраиваемые атрибуты расширения.

Например:

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 версии 1.0.

(Необязательно) Назначение приглашенного пользователя группе

Примечание.

Если назначение пользователя не требуется для доступа к приложению, можно пропустить этот шаг.

Если назначение пользователя требуется в идентификаторе Microsoft Entra для доступа к приложению или назначения ролей, пользователь назначается приложению. В противном случае пользователь не может получить доступ независимо от проверки подлинности. Чтобы добавить приглашенного внешнего пользователя в группу, выполните другой вызов API. Группа назначается приложению и сопоставляется с ролью приложения.

Пример разрешений: назначение роли центра обновления группы или настраиваемой роли корпоративному приложению. Область назначения роли группам, которые обновляются этим приложением. Или назначьте group.readwrite.all разрешение в API Microsoft Graph.

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 версии 1.0.

Кроме того, можно использовать динамические группы Microsoft Entra, которые автоматически назначают пользователей на основе их атрибутов. Однако если доступ пользователя учитывает время, этот подход не рекомендуется, так как динамические группы могут занять до 24 часов для заполнения.

Если вы используете динамические группы, не добавляйте пользователей в группу с другим вызовом API. Создайте динамическую группу, которая добавляет пользователя в качестве члена группы на основе атрибутов, таких как userType, email или настраиваемый атрибут. Дополнительные сведения см. в статье "Создание или изменение динамической группы" и получение состояния.

Подготовка приглашенного пользователя в приложение

После подготовки приглашенного внешнего пользователя в идентификаторе Microsoft Entra API Microsoft Graph возвращает ответ с информацией о пользователе, например идентификаторе объекта и электронной почте. Бизнес-приложение подготавливает пользователя к каталогу или базе данных. Подготовка зависит от типа приложения и внутреннего каталога, используемого приложением.

При подготовке внешнего пользователя в идентификаторе Microsoft Entra и приложении бизнес-приложение уведомляет инициирующего пользователя об успешном выполнении процесса. Приглашенный пользователь получает единый вход с удостоверением без подключения приглашенной организации и выдачи дополнительных учетных данных. Идентификатор Microsoft Entra применяет политики авторизации с условным доступом, многофакторной проверкой подлинности Microsoft Entra и защитой идентификации на основе рисков.

Другие вопросы

Убедитесь, что обработка ошибок выполняется в бизнес-приложении. Приложение проверяет каждый вызов API. При неудачных попытках или сообщениях об ошибках полезны.

Чтобы бизнес-приложения обновляли приглашенных внешних пользователей, предоставьте настраиваемую роль, которая позволяет приложению обновлять пользователей и назначать область динамической административной единице. Например, создайте динамическую административную единицу с пользователями, где usertype = guest. Когда внешние пользователи подключены к идентификатору Microsoft Entra, они добавляются в административную единицу. Бизнес-приложение должно попытаться обновить пользователя, и при возникновении задержек может потребоваться несколько попыток. Несмотря на задержки, этот подход позволяет бизнес-приложению обновлять внешних пользователей без предоставления ему разрешения на обновление любого пользователя в каталоге.