OpenID Connect是否支持资源所有者密码凭据授予?

时间:2014-06-04 20:33:17

标签: oauth-2.0 openid thinktecture-ident-server openid-connect

我之前一直在使用OAuth资源所有者凭据流进行授权。

但是,我现在想考虑使用openid connect进行身份验证和授权,并且想知道openid connect是否支持资源所有者凭据流。

3 个答案:

答案 0 :(得分:22)

是的,OpenID Connect支持所有OAuth 2.0授权类型,包括资源所有者密码凭据授予和客户端凭据授权。

众所周知,授权代码授予和隐式授权是典型的三脚流程,包括客户端,授权服务器和用户之间的交互。资源所有者密码凭据授予和客户端凭据授权是双腿的,这意味着客户端使用预授权的范围,因此不需要与用户进行交互,从而无需在典型流程中执行其中一个支路。

以下是参考:Configuring an OpenID Connect Provider to enable 2-legged OAuth requests

答案 1 :(得分:10)

答案是肯定的。它在规范中并不明确,但OpenID Connect支持所有OAuth 2.0流程,因为它是OAuth 2.0的扩展。

该规范讨论了涉及浏览器重定向的流程,因为它们更常见,更安全且更不易碎,因为资源所有者凭据仅支持用户名和密码,并且仅在OAuth 2规范中用于向后兼容。

在真正的SSO系统中,您希望抽象出在OP / IDP上验证用户身份的方法。涉及浏览器是一种方法。在资源所有者密码凭证流中,客户端“看到”资源所有者的用户名/密码与其他流不同,这违背了联合SSO协议(如OpenID Connect)的主要目的,其中身份验证机制和凭据应独立于客户端/应用程序。因此,您不会在OpenID Connect中看到太多ROPC的使用,可能在企业内部用例中也有例外。

但你的里程可能会有所不同。支持特定的OP / AS软件和客户端库。

答案 2 :(得分:4)

是。我有时也回答同样的问题。根据OpenId Connect规范,建议对OpenId Connect请求使用==authorization code授权类型。但没有提到不能使用其他授权类型。因此,您可以将任何其他授权类型用于OpenId Connect身份验证请求。来自openid连接组的一些邮件已在此进行了讨论。请从here找到。如果您的OAuth2授权服务器支持它,我猜它可以使用它。据我所知,大多数授权服务器都支持它,例如here