【问题标题】:OAuth-2.0 resource servers token validation in distributed environment分布式环境中的 OAuth-2.0 资源服务器令牌验证
【发布时间】:2014-11-11 03:16:52
【问题描述】:

我将创建一个包含许多资源服务器(以不同的编程语言实现)和一个授权服务器的 REST Web 服务。

我的问题是关于资源服务器中的令牌验证。假设资源服务器无法连接到数据库并在那里检查令牌信息。

我已阅读此主题:OAuth v2 communication between authentication and resource server

我喜欢在授权服务器中创建一个 API 的想法,该 API 将负责“解析”令牌。例如:https://oauth.example.tdl/tokeninfo?token=tokentovalidate

所以我的问题是:/tokeninfo 资源应该是“公共的”吗?我的意思是每个知道这个端点的人都可以验证令牌..

将其设为“私有”不是更好吗?我的意思是https://oauth.example.tdl/tokeninfo?access_token=valid_token&token=tokentovalidate

但是我的资源服务器必须在验证令牌之前对其自身进行授权.. 我认为请求太多..

如果您知道更多在资源服务器和授权服务器之间验证令牌的策略 - 请告诉我,因为我对 OAuth 还很陌生。

【问题讨论】:

    标签: web-services oauth-2.0 authorization


    【解决方案1】:

    令牌验证 API 是否应该公开?

    在身份验证方面,if当然应该是经过身份验证的API,而你用来调用它的访问令牌就是你要验证的访问令牌。 RFC 6750 解释了如何做到这一点。通常,令牌在 Authorization 标头中发送,或作为 Uri 查询参数发送。

    或者,为了提高安全性,您需要客户端 ID 和客户端密码来保护调用,或者通过将它们作为参数传递,或者通过使用客户端凭据授予获取客户端的访问令牌。

    注意从 API 返回的信息。您应该只返回不需要资源所有者授权的特定范围的信息。

    对于现实生活中的示例,请参阅 Google implementation 或 the implementation from The Identity Hub. 对于 Facebook 实施,请参阅 Manually Build a Login Flow 上的“确认身份”部分。

    【讨论】:

    猜你喜欢
    • 2012-08-31
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    相关资源
    最近更新 更多