【问题标题】:Can client credentials grant access token be mapped to a user?客户端凭据授予访问令牌是否可以映射到用户?
【发布时间】:2015-04-16 18:52:04
【问题描述】:

我想在 oauth2 中使用 Client Credentials Grant 来保护 API。

但是,我希望访问令牌映射到单个用户(由我在共享密钥/秘密的带外信任/设置阶段选择)。

这是一个问题吗?我知道使用客户端凭据授予的访问令牌不应该在用户的上下文中......以这种方式绑定它是不好的做法吗?

【问题讨论】:

    标签: authentication oauth oauth-2.0


    【解决方案1】:

    这本身不是问题,至少在安全方面是这样,尽管您可能会称其为不好的做法。如果您确保以这样一种方式分配客户端凭据,以保证它被绑定到该客户端被授权的一个用户,那么就没有问题。请注意,实现这一点的带外过程正是授权代码授予您带内的内容。

    您还必须确保在用户更改所需权限或删除用户帐户时撤销客户端凭据,就像常规授权服务器对其刷新令牌所做的那样。

    【讨论】:

    • 嗨 Hans - 谢谢你 - 我选择带外执行此操作的原因是因为我们正在单独控制我们想要使用 API 的人。此外,发生的 API 调用将是“系统到系统”的 cron 作业,而不需要任何用户交互。将这笔赠款用于这种方法我错了吗?我将 client_credentials 绑定到特定用户的唯一原因是每个客户都有 1 个管理员来控制他们机构的数据...
    • 如果您可以向授权服务器验证管理员身份,那么您可以发出带有代码授权的刷新令牌,这将为您提供所需的内容;刷新令牌可用于获取新的访问令牌,如客户端凭据,但不同之处在于您已在带内建立令牌和管理员之间的关系
    • 在使用client_credentials进行自动化测试来模拟用户的用例中呢?授权码不是一个选项,密码已被弃用,所以 client_credentials 似乎很适合我,可能缩短了令牌生命周期和用户白名单
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 2020-03-17
    • 2021-09-01
    • 2017-03-11
    • 1970-01-01
    相关资源
    最近更新 更多