Azure api 管理身份验证 link 到 Web api

Azure api management authentication link to web api

我们目前的API使用seesionID进行身份验证。我们计划使用 Azure API 管理来管理我们的网站 api。但是 Azure web api 管理有自己的身份验证。我们怎么 link 那两个在一起。我们的客户可以使用相同的登录信息。

关于 Azure 中的身份验证和身份的对话 API 管理可能会变得棘手,因为可能存在三个不同的身份,然后存在 运行 时间请求与管理请求的不同上下文。所以,为了确保我回答的是正确的问题,让我尝试定义一些术语。

三个身份:

  • API提供者:这是创建了API管理实例的Azure用户。
  • API 消费者:这是一个正在编写一些客户端软件来消费 API.
  • 的开发人员
  • 最终用户:API消费者编写的应用程序的用户,将是实际向[运行时间请求发起API.

我假设您是 API 提供者。我不确定您的客户是 API 消费者还是最终用户。

Azure API 管理为API 消费者 提供身份服务。消费者可以手动创建一个 username/password 帐户,也可以使用一些社交身份提供商来创建一个帐户。然后,他们可以获得 订阅密钥 ,这将允许 Azure API 管理将请求关联到 API 消费者。

我想您是在询问是否可以将我猜您用来识别最终用户的 sessionID 连接到用于识别 API 消费者的订阅密钥。如果这是正确的,那么答案是否定的(除了下面描述的场景),因为我们需要在任何策略 运行 确保我们 运行 正确之前识别 API 消费者密钥政策。

可以更改我们的Api消费者订阅密钥。因此,如果您只有少量 customers/End 用户,您可以为每个最终用户创建一个 Api 消费者帐户。但是,如果 sessionID 是常量值,您只能将 sessionID 映射到 API 消费者订阅密钥。我假设基于名称,该值在每次登录时都会发生变化。

尽管 Azure API 管理 提供 API 消费者 的身份服务,但它 不为最终用户提供完整的身份管理.我们将其留给 Azure AD、Thinktecture Identity Server 和 Auth0 等外部合作伙伴。我假设您现有的系统已经在使用某种身份提供者来生成 sessionId。使用 Azure API 管理可以做的是 使用 API 管理网关 中的策略验证该 sessionId。为此,我们需要更多地了解 sessionId 的格式。

抱歉这么长 post 但这是一个令人困惑的话题,我想尽可能清楚。