web-dev-qa-db-ja.com

OpenID Connectは、リソース所有者のパスワード資格情報の付与をサポートしていますか?

以前、承認にOAuthリソース所有者の資格情報フローを使用していました。

しかし、認証と承認のために、これと同じペースでopenid connectを使用することを検討したいと思います。そして、リソース所有者の資格情報フローがopenidconnectでサポートされているかどうか疑問に思いました。

19
Kramer00

はい、OpenIDConnectはすべてのOAuth 2.0付与タイプ(リソース所有者パスワード資格情報付与およびクライアント資格情報付与を含む)をサポートします。

ご存知のとおり、Authorization CodeGrantとImplicitGrantは、クライアント、認証サーバー、ユーザー間のやり取りを含む、典型的な3本足のフローです。 Resource Owner Password CredentialGrantとClientCredential Grantは2レッグですが、これは、クライアントが事前承認されたスコープを使用するため、ユーザーとの対話が不要であり、通常のフローでレッグの1つを実行する必要がないことを意味します。

参照は次のとおりです。 2本足を有効にするためのOpenID接続プロバイダーの構成OAuthリクエスト

22
Owen Cao

答えはイエスです。仕様では明示的ではありませんが、OpenIDConnectはOAuth 2.0の拡張であるため、すべてのOAuth 2.0フローをサポートします。

リソース所有者の資格情報はユーザー名とパスワードのみをサポートし、下位互換性についてはOAuth 2仕様のみ)であるため、この仕様では、ブラウザーリダイレクトを含むフローについて説明しています。互換性。

真のSSOシステムでは、OP/IDPでユーザーを認証する方法から抽象化する必要があります。ブラウザを使用することはそれを行う方法です。リソース所有者のパスワード資格情報フローでは、他のフローとは異なり、クライアントはリソース所有者のユーザー名/パスワードを「認識」します。これにより、認証メカニズムと資格情報がクライアントから独立している必要があるOpenIDConnectなどのフェデレーションSSOプロトコルの主な目的が無効になります。アプリ。そのため、おそらく企業内のユースケースを除いて、OpenIDConnectでROPCがあまり使用されることはありません。

ただし、マイレージは異なる場合があります。特定のOP/ASソフトウェアおよびクライアントライブラリでのサポート。

10
Hans Z.

はい。私も時々同じ質問に対する答えを見つけていました。 OpenId Connectの仕様によると、OpenIdConnectリクエストにはauthorization codeおよびimplicit付与タイプを使用することをお勧めします。ただし、他の種類の助成金を使用できないことは言及されていません。したがって、OpenIdConnect認証要求には他の任意の付与タイプを使用できます。これについて議論されているopenid接続グループからのメールがいくつかあります。 ここ から見つけてください。 OAuth2認証サーバーがそれをサポートしている場合は、それを使用しても問題ないと思います。私が知っているように、 ここ からの例として、ほとんどの承認サーバーはそれをサポートしています

4
Asela