Azure API 管理 - 客户端证书身份验证责任?
Azure API Management - Client Certificate Authentication Responsibilities?
使用 Azure API 管理网关时,可以实施客户端证书身份验证以保护对 API 的访问。您可以使用拇指检查等策略表达式来验证传入的请求证书。
使用客户端证书认证方式时,推荐的证书流程是什么generation/management?
- 证书责任?
- I/gateway所有者是否应该生成 .pfx 文件(自签名或由受信任的 CA),将其导入网关服务并为外部客户端提供 .cer 以在本地安装并进行身份验证?
- I/gateway 所有者是否应该生成 .pfx 文件(自签名或由受信任的 CA),将 .pfx 导入 API 管理网关服务(通常我会想象导入.cer 在 server/gateway 上,但在 Azure 中似乎不可能)并为外部客户端提供 .pfx 以在本地安装并使用?
进行身份验证
- 外部客户端是否应负责在其组织中生成其 public/private 密钥对、使用 CA 对其进行签名、在本地安装并向 me/gateway 所有者提供要导入到的 .cer 文件网关(如上所述,不确定是否可以导入 .cer,我只读了导入过程中接受的 .pfx)或为我提供拇指 store/validate 政策?
- 有没有人有任何建议是向需要访问相同 API 的相同(共享)证书颁发客户还是为每个客户生成新证书?他们都将使用证书来访问相同的 API(+ 额外的身份验证方法,证书只是一个额外的步骤)。
我已经准备好描述上述所有要点的在线教程,以及在哪些地方实施了特定于客户端或单个证书API,所以有点困惑,推荐的方法是什么?
- 最简单的方法是拥有一个颁发的 CA 证书,您只需要将其 public 密钥上传到 APIM,因为 APIM 只需这样做即可验证传入的证书。然后您将负责生成客户端证书并将它们分发给客户端。在 APIM 中,您可以设置一个需要证书的策略,检查其颁发者并验证,这应该足以确保证书有效并由您颁发。
- 依靠自签名证书会很麻烦,因为您必须以某种方式让 APIM 知道每个新证书,拥有共同的颁发 CA 可以免除您的后顾之忧。
- 允许远程客户端生成证书也是如此 - 他们必须让您知道证书,并且您需要以某种方式在 APIM 中列出它。
- 您可以自由决定如何分发证书,但需要考虑以下几点:
- 可能证书将是您区分客户的主要方式。如果这很重要,您可能希望不同的客户端拥有不同的证书。
- 如果您想拒绝访问特定客户端,您将“吊销”该证书,您需要确保其他合法客户端不会受到影响。
使用 Azure API 管理网关时,可以实施客户端证书身份验证以保护对 API 的访问。您可以使用拇指检查等策略表达式来验证传入的请求证书。
使用客户端证书认证方式时,推荐的证书流程是什么generation/management?
- 证书责任?
- I/gateway所有者是否应该生成 .pfx 文件(自签名或由受信任的 CA),将其导入网关服务并为外部客户端提供 .cer 以在本地安装并进行身份验证?
- I/gateway 所有者是否应该生成 .pfx 文件(自签名或由受信任的 CA),将 .pfx 导入 API 管理网关服务(通常我会想象导入.cer 在 server/gateway 上,但在 Azure 中似乎不可能)并为外部客户端提供 .pfx 以在本地安装并使用? 进行身份验证
- 外部客户端是否应负责在其组织中生成其 public/private 密钥对、使用 CA 对其进行签名、在本地安装并向 me/gateway 所有者提供要导入到的 .cer 文件网关(如上所述,不确定是否可以导入 .cer,我只读了导入过程中接受的 .pfx)或为我提供拇指 store/validate 政策?
- 有没有人有任何建议是向需要访问相同 API 的相同(共享)证书颁发客户还是为每个客户生成新证书?他们都将使用证书来访问相同的 API(+ 额外的身份验证方法,证书只是一个额外的步骤)。
我已经准备好描述上述所有要点的在线教程,以及在哪些地方实施了特定于客户端或单个证书API,所以有点困惑,推荐的方法是什么?
- 最简单的方法是拥有一个颁发的 CA 证书,您只需要将其 public 密钥上传到 APIM,因为 APIM 只需这样做即可验证传入的证书。然后您将负责生成客户端证书并将它们分发给客户端。在 APIM 中,您可以设置一个需要证书的策略,检查其颁发者并验证,这应该足以确保证书有效并由您颁发。
- 依靠自签名证书会很麻烦,因为您必须以某种方式让 APIM 知道每个新证书,拥有共同的颁发 CA 可以免除您的后顾之忧。
- 允许远程客户端生成证书也是如此 - 他们必须让您知道证书,并且您需要以某种方式在 APIM 中列出它。
- 您可以自由决定如何分发证书,但需要考虑以下几点:
- 可能证书将是您区分客户的主要方式。如果这很重要,您可能希望不同的客户端拥有不同的证书。
- 如果您想拒绝访问特定客户端,您将“吊销”该证书,您需要确保其他合法客户端不会受到影响。