【问题标题】:Multiple APIs within Azure APIM with different authentication requirementsAzure APIM 中具有不同身份验证要求的多个 API
【发布时间】:2021-08-26 08:29:40
【问题描述】:

我有一个包含两个不同 API 的 APIM,比如说 API-1 和 API-2。

我只需要 API-2 的客户端证书身份验证。

我知道我必须在 APIM 的 自定义域 中设置 协商客户端证书 才能从客户端 (documentation) 请求证书,但是这也会为 API-1 申请证书。

有没有一种方法可以只为一个 API 请求客户端证书,而无需使用不同的 APIM 服务?

【问题讨论】:

    标签: azure azure-api-management client-certificates


    【解决方案1】:

    好吧,在 apim 高级 SKU 中,您可以为网关端点使用多个自定义域,并在一个域上设置协商客户端证书,而在另一个域上忽略它,这样您就可以从 domain-1 和 api 调用 API-1 -2 来自 domain-2,但请记住,两个 API 将继续可以使用任何自定义域调用,因此这是一种低效且昂贵的解决方案。

    另一种解决方案是启用协商客户端证书,让您的客户端忽略证书请求,只要 API-1 没有验证证书的逻辑,调用就不会失败,并且会照常处理.

    【讨论】:

    • 不需要为此付出高昂的代价。只有消费和基本 SKU 没有该功能。
    • @VitaliyKurokhtin 感谢您的更正,因此显然需要更新定价页面,因为它指出标准层不支持多个客户域。
    • 第二种解决方案对我有用。证书的验证仅在 API-2 的 APIM 策略中完成,而 API-1 只是忽略它。唯一的小问题是,如果客户端是浏览器,它会要求用户提供证书并且任何都会通过,所以在我看来不是很干净。如果您有自定义客户端代码或工具来发出请求,则无需指定任何证书即可正常工作。谢谢@Mohamad!
    猜你喜欢
    • 2020-10-08
    • 2018-10-18
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2019-03-23
    • 2019-12-02
    相关资源
    最近更新 更多