【发布时间】:2017-09-22 02:41:04
【问题描述】:
我对 OAuth2 密码授予类型-概念感到困惑
在here 中,令牌的实现类似于使用 EndPoint/Claims
在this site 或this blog 中,令牌由JSON 对象实现,包含所有客户端凭据详细信息
任何人都可以帮助更好地清除这个概念吗?
【问题讨论】:
标签: security oauth-2.0 access-token
我对 OAuth2 密码授予类型-概念感到困惑
在here 中,令牌的实现类似于使用 EndPoint/Claims
在this site 或this blog 中,令牌由JSON 对象实现,包含所有客户端凭据详细信息
任何人都可以帮助更好地清除这个概念吗?
【问题讨论】:
标签: security oauth-2.0 access-token
如果您指的是访问令牌,那么它可以是任何一种类型(没有特殊含义的字符串或 JSON、XML 或其他格式)。 OAuth2 specification 是这样说的:
访问令牌是一个字符串,表示颁发给 客户。该字符串通常对客户端是不透明的。代币 表示访问权限的特定范围和持续时间,由 资源所有者,并由资源服务器和授权强制执行 服务器。
令牌可以表示用于检索授权的标识符 信息或可以在一个自包含的授权信息 可验证的方式(即,由一些数据和一个 签名)。
所以这取决于 OAuth2 的实现。
如果您指的是ID token(来自 OpenID Connect),那么它必须是 JWT(签名 JSON)格式。
【讨论】:
根据客户端系统将如何代表最终用户获取访问令牌,有四个 Oauth2 流来获取访问令牌(不是 ID 令牌)。通过 OAuth2 密码授予流程,客户端应用程序显示登录页面,获取密码并使用来自授权服务器的 REST API 调用对用户进行身份验证。认证成功后,授权服务器将令牌返回给客户端应用程序。例如移动应用程序,但它不如其他 Oauth2 流安全,只能与受信任的客户端应用程序一起使用。我有一篇关于这方面的文章,你可以查看它以获取更多详细信息,链接在这里https://www.linkedin.com/pulse/microservices-security-openid-connect-manish-singh
【讨论】: