如何设置 Azure API 多租户管理 API
How to set up Azure API Management for mult-tenant API
我有一个多租户应用程序,它公开了一些 API 供我们的客户使用。我想使用 Azure API 管理公开它。主要是为我们的客户提供 Development Portal,我觉得这很有用,也许会用到一些其他的功能。
如果我没理解错的话,我们的客户将设置自己的订阅密钥进行身份验证,API 管理代理将对其进行验证。
问题:我如何才能 link 并识别 user/subscription 到我的应用程序的租户,以确保只返回来自该租户的数据。
我可以探索的一个方向是使用委托注册,我想这将帮助我 link 订阅租户。但问题仍然是如何在我的后端获取用户 ID API?
非常感谢对文档或示例的任何指导
您可以在 APIM 中创建单独的组来代表您的租户,然后使用委派连接将用户放入这些组中。在表达式中使用 APIM 策略,您可以引用 context.User.Groups 来列出进行调用的用户所属的组,并将该信息转发到后端。
或者,您可以使用注释字段来存储租户名称并以 context.User.Note 的形式访问它。或者,如果你愿意在你身边存储映射,只需取一个 id context.User.Id.
以上所有内容都可以使用 set-header 策略作为 header 传递,例如:
<set-header name="userId">
<value>@(context.User.Id)</value>
</set-user>
所有情况都需要您进行委派设置,以便为每个创建的新用户自动填写此信息。
我有一个多租户应用程序,它公开了一些 API 供我们的客户使用。我想使用 Azure API 管理公开它。主要是为我们的客户提供 Development Portal,我觉得这很有用,也许会用到一些其他的功能。
如果我没理解错的话,我们的客户将设置自己的订阅密钥进行身份验证,API 管理代理将对其进行验证。
问题:我如何才能 link 并识别 user/subscription 到我的应用程序的租户,以确保只返回来自该租户的数据。
我可以探索的一个方向是使用委托注册,我想这将帮助我 link 订阅租户。但问题仍然是如何在我的后端获取用户 ID API?
非常感谢对文档或示例的任何指导
您可以在 APIM 中创建单独的组来代表您的租户,然后使用委派连接将用户放入这些组中。在表达式中使用 APIM 策略,您可以引用 context.User.Groups 来列出进行调用的用户所属的组,并将该信息转发到后端。
或者,您可以使用注释字段来存储租户名称并以 context.User.Note 的形式访问它。或者,如果你愿意在你身边存储映射,只需取一个 id context.User.Id.
以上所有内容都可以使用 set-header 策略作为 header 传递,例如:
<set-header name="userId">
<value>@(context.User.Id)</value>
</set-user>
所有情况都需要您进行委派设置,以便为每个创建的新用户自动填写此信息。