Azure API 管理 - 客户端证书身份验证责任?

Azure API Management - Client Certificate Authentication Responsibilities?

使用 Azure API 管理网关时,可以实施客户端证书身份验证以保护对 API 的访问。您可以使用拇指检查等策略表达式来验证传入的请求证书。

使用客户端证书认证方式时,推荐的证书流程是什么generation/management?

  1. 证书责任?
  1. 有没有人有任何建议是向需要访问相同 API 的相同(共享)证书颁发客户还是为每个客户生成新证书?他们都将使用证书来访问相同的 API(+ 额外的身份验证方法,证书只是一个额外的步骤)。

我已经准备好描述上述所有要点的在线教程,以及在哪些地方实施了特定于客户端或单个证书API,所以有点困惑,推荐的方法是什么?

  1. 最简单的方法是拥有一个颁发的 CA 证书,您只需要将其 public 密钥上传到 APIM,因为 APIM 只需这样做即可验证传入的证书。然后您将负责生成客户端证书并将它们分发给客户端。在 APIM 中,您可以设置一个需要证书的策略,检查其颁发者并验证,这应该足以确保证书有效并由您颁发。
    • 依靠自签名证书会很麻烦,因为您必须以某种方式让 APIM 知道每个新证书,拥有共同的颁发 CA 可以免除您的后顾之忧。
    • 允许远程客户端生成证书也是如此 - 他们必须让您知道证书,并且您需要以某种方式在 APIM 中列出它。
  2. 您可以自由决定如何分发证书,但需要考虑以下几点:
    • 可能证书将是您区分客户的主要方式。如果这很重要,您可能希望不同的客户端拥有不同的证书。
    • 如果您想拒绝访问特定客户端,您将“吊销”该证书,您需要确保其他合法客户端不会受到影响。