0

CompanyA 正在与 CompanyB 集成,其中 CompanyA 的用户将购买 CompanyB 的设备。

公司 A 希望通过调用在其应用程序上显示用户的设备(公司 B)详细信息

CompanyB 在每个用户登录时的 API。

CompanyA 用户在 CompanyA IAM 上进行了身份验证。

当用户第一次尝试添加设备时,CompanyA 必须调用注册设备。

帮助我确定仅可用于查询特定登录用户设备的流程。

我需要在 CompanyB 的 IAM 上创建重复的用户帐户吗?

如果我使用客户端凭据流进行 API 到 API 调用,CompanyB 提供的访问令牌仅提供 API 调用的访问权限,但它并没有说明代表正确的用户只调用了调用。

假设 CompanyA 使用 IdentityServer 或任何其他提供程序作为 IAM,CompanyB 使用 Azure AD B2C。

还有其他方法吗?

请看下图,

公司 A 和公司 B 交互

4

2 回答 2

2

您应该能够通过在其 Azure AD 中将 Company B API 设为多租户来执行此操作。当然还有其他选择,这只是我想到的第一个。

多租户模式概述

您必须征得管理员同意才能在 Azure AD 租户中获取 API 的服务主体。公司 B API 可以为您提供一个端点来执行此操作,使用适当的参数将您重定向到授权端点。如何发送登录请求

执行此操作后,您应该能够从租户中的公司 A API 请求 API 权限(在 Azure AD 中配置)。 配置客户端应用程序以访问 Web API

完成这些操作后,您的 API 应该能够使用 On-Behalf-Of 授权流来获取 Company B API 的访问令牌。 在 ASP.NET Core 2.0 API 中使用 Azure AD 代表流

公司 B API 必须配置为接受来自其他发行者的访问令牌,而不是他们的 Azure AD。在一般多租户场景中,颁发者验证通常被关闭。如果 B 公司希望对此进行控制,目前他们必须明确列出有效的发行人。颁发者值如下所示:https://sts.windows.net/31537af4-6d77-4bb9-a681-d2394888ea26/,GUID 是您的 Azure AD 租户 ID。

B 公司 API 可以从访问令牌中提取租户 id 和用户对象 id,并根据它们授权用户使用资源。

于 2018-05-29T12:00:02.323 回答
0

我在看 AWS 方面,看起来他们有一些可以满足要求的东西

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

想知道 Azure 中是否存在类似的东西。

于 2018-05-29T13:43:26.430 回答