Предложить OAuth-поток (тип предоставления) или подход для нижеуказанного требования - PullRequest
0 голосов
/ 29 мая 2018

CompanyA интегрируется с CompanyB, где пользователи CompanyA будут покупать устройства CompanyB.

CompanyA хочет показать сведения об устройстве пользователя (CompanyB) в своем приложении, вызывая

API CompanyB для каждого пользователя.login.

CompanyA пользователь аутентифицирован в IAM CompanyA.

CompanyA должна вызвать устройство регистрации вызовов, когда пользователь пытается добавить устройство в первый раз.

Помогите мне определить потоккоторый я могу использовать только для запроса определенного устройства пользователя, вошедшего в систему.

Нужно ли создавать дубликат учетной записи пользователя в IAM CompanyB?

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

Предположим, что CompanyA использует IdentityServer или любого другого поставщика, поскольку IAM и CompanyB используют Azure AD B2C.

Любой другой подход?

Пожалуйста, см. Диаграмму ниже,

CompanyA and CompanyB interaction

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Я смотрел на сторону AWS и, похоже, у них есть что-то, что могло бы соответствовать требованиям

https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html

Интересно, существует ли что-то подобное в Azure.

0 голосов
/ 29 мая 2018

Вы сможете сделать это, сделав мультитенант API B компании в их Azure AD.Конечно, есть и другие варианты, это только первое, что пришло мне в голову.

Обзор мультитенантного паттерна

Вам нужно будет дать согласие администраторана нем, чтобы получить субъект службы API в вашем клиенте Azure AD.API компании B может дать вам конечную точку для этого, перенаправив вас с соответствующими параметрами на конечную точку авторизации. Как отправить запрос на вход в систему

После этого вы сможете запрашивать разрешения на API от API компании в вашем клиенте (настроено в Azure AD). Настройка клиентского приложения для доступа к веб-API

После выполнения этих действий ваш API должен иметь возможность использовать поток грантов «От имени» для получения токена доступа для API компании B. Использование потока Azure AD On-Behalf-Of в ASP.NET Core 2.0 API

API компании B должен быть настроен на прием токенов доступа от другого эмитента, чем их Azure AD, конечно.В общих сценариях с несколькими арендаторами проверка издателя обычно отключена.Если Компания B желает иметь контроль над этим, в настоящее время они должны будут явно перечислить действительных эмитентов.Значения эмитента выглядят следующим образом: https://sts.windows.net/31537af4-6d77-4bb9-a681-d2394888ea26/, GUID - это идентификатор клиента Azure AD.

API компании B может извлекать идентификатор клиента и идентификатор объекта пользователя из токена доступа и авторизовать пользователя на основе ресурсов.на них.

...