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

Azure API Management - Authentication: OAuth2 vs Certificate


我想听听您对实施的看法。预先感谢您的任何建议:)

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

**我的疑惑:**

我喜欢相互认证的想法,但与 OAuth 结构相比,恐怕维护起来太麻烦了。我打算使用 Microsoft Azure 作为云服务。
谢谢!

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

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

默认情况下,我的目标是一种解决方案,其中所有具有相同权限的客户端机器都提供相同的凭据/身份。然后,API 可以根据访问令牌中提供的客户端身份授权请求。

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

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