【问题标题】:How to set up Azure API Management for mult-tenant API如何为多租户 API 设置 Azure API 管理
【发布时间】:2017-03-09 20:10:41
【问题描述】:

我有一个多租户应用程序,它公开了一些 API 供我们的客户使用。我想使用 Azure API 管理公开它。主要是为我们的客户提供开发门户,我觉得这非常有用,并且可能会使用其他一些功能。

如果我理解正确,我们的客户将设置自己的订阅密钥进行身份验证,API 管理代理将对其进行验证。

问题:如何将用户/订阅链接和识别到我的应用程序的租户,以确保只返回来自该租户的数据。

我可以看到探索的一个方向是使用委托注册,我想这将有助于我将订阅链接到租户。但是问题仍然是如何在我的后端 API 中获取用户 ID?

非常感谢任何有关文档或示例的指导

【问题讨论】:

    标签: azure-api-management


    【解决方案1】:

    您可以在 APIM 中创建单独的组来代表您的租户,然后使用委托连接将用户放入这些组中。使用表达式中的 APIM 策略,您可以引用 context.User.Groups 以列出进行调用的用户所属的组并将该信息转发到后端。

    或者,您可以使用 Note 字段来存储租户名称并将其作为 context.User.Note 访问。或者,如果您愿意将映射存储在您身边,只需使用 id context.User.Id。

    以上所有内容都可以使用 set-header 策略作为标头传递,例如:

    <set-header name="userId">
        <value>@(context.User.Id)</value>
    </set-user>
    

    所有场景都需要您设置委托,以便为每个创建的新用户自动填写此信息。

    【讨论】:

    • 谢谢,使用上下文。用户听起来像是我应该探索的方向。随着我收集更多数据,我稍后会将其标记为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多