我以前一直使用OAuth资源所有者凭证流进行授权。
但是,我现在想考虑使用openid connect来进行身份验证和授权,并且想知道openid connect是否支持资源所有者凭据流。
是,OpenID Connect支持所有OAuth 2.0授权类型,包括资源所有者密码凭证授权和客户端凭证授权。
我们知道,授权代码授予和隐式授予是典型的3腿流,包括客户端、授权服务器和用户之间的交互。而资源所有者密码凭据授予和客户端凭据授予是两条腿,这意味着客户端使用预先授权的范围,因此不需要与用户交互,从而消除了在典型流中执行其中一条腿的需要。
这里是一个参考:配置一个OpenID连接提供程序以启用两条腿的OAuth请求
答案是肯定的。在规范中没有明确说明,但OpenID Connect支持所有OAuth 2.0流,因为它是OAuth 2.0的扩展。
规范讨论了涉及浏览器重定向的流程,因为它们更常见,更安全,更不脆弱,因为资源所有者凭证只支持用户名和密码,并且仅在OAuth 2规范中用于向后兼容。
在真正的SSO系统中,您希望从OP/IDP上对用户进行身份验证的方法中抽象出来。使用浏览器是实现这一目标的一种方式。在资源所有者密码凭证流中,客户端"看到"资源所有者的用户名/密码,这与其他流不同,这违背了OpenID Connect等联合SSO协议的主要目的,在OpenID Connect中,身份验证机制和凭证应该独立于客户端/应用程序。出于这个原因,你不会在OpenID Connect中看到太多ROPC的使用,在企业内部用例中可能会有例外。
但是你的里程可能会有所不同。
是。有时我也会为同样的问题找到答案。根据OpenId Connect规范,OpenId Connect请求建议使用authorization code
和implicit
授予类型。但没有提到其他授予类型不能使用。因此,您可以为OpenId Connect身份验证请求使用任何其他授权类型。有一些来自openid connect组的邮件,已经就此进行了讨论。请从这里找。如果您的OAuth2授权服务器支持它,我想使用它是可以的。据我所知,大多数授权服务器都支持它,例如这里的