【发布时间】:2015-01-06 11:04:33
【问题描述】:
OIDC 不支持资源所有者密码凭据授予。为什么?我的一些客户端是安全设备,可以安全地维护凭据......这些凭据可用于获取 access_token。我还能使用 OpenID Connect 吗?
【问题讨论】:
OIDC 不支持资源所有者密码凭据授予。为什么?我的一些客户端是安全设备,可以安全地维护凭据......这些凭据可用于获取 access_token。我还能使用 OpenID Connect 吗?
【问题讨论】:
规范中没有明确说明,但 OpenID Connect 支持所有 OAuth 2.0 流程,因为它是 OAuth 2.0 的扩展。
规范讨论了涉及浏览器重定向的流程,因为它们更常见、更安全且不那么脆弱,因为资源所有者凭据仅支持用户名和密码,并且仅在 OAuth 2 规范中以实现向后兼容性。在真正的 SSO 系统中,您希望从 OP/IDP 验证用户的方法中抽象出来。涉及浏览器是一种方法。
但您的里程可能会有所不同。支持特定的 OP/AS 软件和客户端库。
FWIW:您应该寻求获取 id_token 而不是 access_token。
【讨论】:
OpenID Connect 执行身份验证以登录最终用户或 确定最终用户已经登录。 OpenID Connect 将服务器执行的身份验证结果返回给 以安全的方式访问客户端,以便客户端可以依赖它。
对于隐式和授权代码授权类型流,如果最终用户未登录,则无法发布 ID 令牌。在这种情况下,授权服务器可以向依赖方确认最终用户已登录在。 但是对于资源所有者授权类型流程,授权服务器无法确认最终用户是否已登录。即使最终用户未登录,您也可以发出访问令牌。
【讨论】: