【问题标题】:Azure API Management - Authentication: OAuth2 vs CertificateAzure API 管理 - 身份验证:OAuth2 与证书
【发布时间】:2023-04-01 18:30:02
【问题描述】:

我想知道你对一个实施的看法。提前感谢您的任何建议:)

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

**我的疑问:**
  • 如果是成百上千台机器,证书 管理变得过于复杂/成本高昂?
  • 我应该为每台机器使用一个证书,还是为多个机器使用一个证书?
  • 如何将证书巧妙地部署到每台机器上?

我喜欢相互认证的想法,但与 OAuth 结构相比,我担心维护起来很繁重。我计划使用 Microsoft Azure 作为云服务。
谢谢!

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 感谢您的回答。我会尽量听从你的建议,看看会发生什么。
    猜你喜欢
    • 1970-01-01
    • 2021-04-04
    • 2021-01-18
    • 2018-06-21
    • 2016-08-10
    • 2021-08-14
    • 2018-07-25
    • 2013-12-11
    • 1970-01-01
    相关资源
    最近更新 更多