Как интегрировать два WebApp-приложения, размещенные в разных клиентах Azure B2c, для единого входа в систему? - PullRequest
0 голосов
/ 03 июля 2018

Существует WebApp (App1), который зарегистрирован в клиенте Azure B2C (tenant1), и еще одно WebApp (App2), которое зарегистрировано в другом клиенте Azure B2C (tenant2) по другой подписке. Эти приложения были разработаны разными командами, но их клиенты могут использовать одни и те же клиенты. Обычно клиенты - это организации, у которых будет свой домен и сотрудники, использующие эти приложения. Как только пользователь входит в App1, на определенной странице должна быть кнопка, при нажатии которой следует перейти к определенной странице App2. Пользователь не должен входить снова с учетными данными App2. Этот пользователь указан на tenant1. У tenant2 может быть тот же пользователь, но с другим objectId вместе с другими пользователями, перечисленными в его каталоге.

Можно ли предоставить в этом сценарии возможность единой регистрации для пользователей приложений от App1 до App2?

Предполагая, что это возможно, я пытаюсь использовать пользовательскую политику Azure Identity Experience Framework в клиенте 2, чтобы разрешить пользователям из app1 входить в app2. Я использую Starter Pack в качестве основы для этого. Пока это работает, и пользователь из App1 может войти в App2. Однако есть несколько проблем

  1. В настоящее время, когда пользователь нажимает кнопку, чтобы перейти к App2 из App1, он / она перенаправляется на страницу входа для повторной аутентификации с использованием учетных данных App1. Мне нужно иметь возможность обойти страницу входа в систему. Как я могу избежать экрана логики?

  2. Если пользователь, существовавший в обоих арендаторах, таким образом, имеет разные ObjectIds, перенаправленные из App1 при нажатии кнопки для перехода в App2, он создает другого пользователя с другим ObjectId в списке Users в tenant2. Как я могу избежать этого дублирования?

  3. Я новичок в Identity Experience Framework, я обращаюсь к документации MSDN https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-setup-commonaad-custom и смотрю https://www.youtube.com/channel/UCP2Px7fpUsYBbzROwK7w3tw Видео конференции Microsoft Identity для ознакомления с ней. Пожалуйста, дайте мне знать, если есть еще ресурсы, на которые я могу сослаться.

Я гуглил, но не смог найти ничего такого в сценарии такого рода, где Приложения находятся в двух разных рекламных объявлениях B2c и нуждаются в едином входе.

1 Ответ

0 голосов
/ 07 июля 2018

Я не учел всех последствий этого, но вы можете зарегистрировать Tenant1 в качестве внешнего поставщика удостоверений для Tenant2 и, наоборот, Tenant2 как внешний провайдер идентификации для Tenant1 .

С одной стороны, когда пользователь Tenant1 переходит от App1 к App2 , тогда App2 может добавить domain_hint параметр из Tenant1 для запроса на авторизацию, отправляемого на Tenant2 . Tenant2 будет перенаправлен на Tenant1 , чтобы подписать пользователя App2 . Если у него есть активный сеанс на Tenant1 , то Пользователю App2 не нужно запрашивать логин для Tenant1 .

С другой стороны, когда пользователь Tenant2 переходит от App2 к App1 , тогда App1 может добавить domain_hint параметр Tenant2 для запроса авторизации, который отправляется на Tenant1 .

...