Azure API管理-客户端证书认证责任?



当使用Azure API管理网关时,可以实现客户端认证身份验证以安全访问API。您可以使用策略表达式(如拇指检查等)验证传入请求证书。

当使用客户端证书认证方法时,证书生成/管理的推荐流程是什么?

  1. Cert责任?
  • 我/网关所有者是否应该生成.pfx文件(自签名或由受信任的CA),将其导入网关服务,并向外部客户端提供.cer以在本地安装和验证?
  • 我/网关所有者是否应该生成。pfx文件(无论是自签名还是由受信任的CA),将。pfx导入API管理网关服务(通常我会想象在服务器/网关上导入。cer,但在Azure中似乎不可能)并向外部客户端提供。pfx以在本地安装和认证?
  • 外部客户端是否应该负责在他们的组织中生成他们的公钥/私钥对,与CA签署,在本地安装并向我/网关所有者提供。cer文件以导入到网关(如上所述,不确定是否可以导入。cer,我只读导入过程中接受的。pfx)或为我提供拇指以在策略中存储/验证?
  1. 是否有人有任何建议是否向需要访问相同API的客户端颁发相同(共享)证书或为每个客户端生成新的证书?他们都将使用证书访问相同的API(+额外的认证方法,证书只是一个额外的步骤)。

我已经准备好了描述上述所有项目的在线教程,以及客户端特定的或每个api的单个证书已经实现的地方,所以有点困惑,哪种是推荐的方法?

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

最新更新