Azure API管理-身份验证:OAuth2与证书

时间:2020-10-21 18:30:56

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


我想请您考虑一下实现。预先感谢您的任何建议:)

**场景**
我有一组API。它们可以通过REST访问,并受OAuth2保护。我还列出了需要访问它们的机器。 题 在机器方面,哪种是访问它们的最佳解决方案?我应该实施客户端证书身份验证还是OAuth2是合适的解决方案?

**我的疑问:**
  • 如果有成千上万的机器,则证书 管理变得太复杂/成本太高?
  • 我应该为每台计算机使用一个证书还是为多个计算机使用一个证书?
  • 如何将证书智能地部署到每台计算机上?

我希望具有相互身份验证的想法,但是与OAuth结构相比,恐怕维护起来很繁琐。我计划将Microsoft Azure用作云服务。
谢谢!

1 个答案:

答案 0 :(得分:0)

我想说的重要因素是客户身份和特权:

  • 您可能有很多客户端计算机
  • 但是它们代表一个单一的身份,例如一个集群吗?
  • 他们都拥有相同的特权吗?

默认情况下,我将针对所有具有相同特权的客户端计算机都提供相同凭据/身份的解决方案。然后,API可以基于访问令牌中提供的客户端身份来授权请求​​。

OAuth的标准解决方案是客户端凭据流,其中每个客户端都向服务器发送密钥。

如果需要(并且由授权服务器支持),则可以通过Client Assertion Profile使用客户端证书的TLS相互形式。通常可以归结为客户端发送的私钥签名,该签名包含在授权服务器上配置的白名单中。