2016-03-13 22 views
6

私の現在のプロジェクトでは、Spring Security OAuth(http://projects.spring.io/spring-security-oauth/)プロジェクトを使用してリソース(Web API)を保護しています。今まではすべてがうまくいきます。Spring SecurityとOpenID Connect(OIDC)

私は現在、クライアントの開発に取り組んでいます。認証シナリオ(OAuthは承認プロトコルなので)の良いサポートを探しています。私は長い間、長いインターネット検索を行った後、「OAuth 2.0の上にある単純なアイデンティティレイヤー」なので、この要件を満たすためにOpenID Connect(http://openid.net/connect/)を使うべきだと確信しています(しかし、セキュリティトピックの場合)。

悲しいしかし真私は、Spring SecurityのOpenID Connect(「純粋な」OpenIDと混同しないでください)のサポートについて、良いリソースを見つけることができません。 https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-ServerにはOpenID Connectのリファレンス実装がありますが、包括的なドキュメントなどで、春のセキュリティに/から直接似たものが期待されています。私はここでそれについて約2歳の議論を発見したhttps://github.com/spring-projects/spring-security-oauth/issues/220しかし、現在の状態は何ですか? 「OpenID ConnectのSpring Securityサポート」を検索しても、「目に見える」結果は得られません。

Springセキュリティの助けを借りて、OpenID Connectの実装に関する情報、ドキュメント、および/または経験がありますか? OpenID Connect

答えて

3

が登場し、リクエストパラメータresponse_typeの値が(implicit flowのために)(authorization code flow用)codeまたはtokenのいずれかであることを前提とすることは現実的に大丈夫でした。ただし、承認サーバーの実装では、(code,token,id_token)、およびnoneの任意の組み合わせを処理できる必要があります。詳細は、「OpenID Connect Core 1.0, 3. Authentication」および「OAuth 2.0 Multiple Response Type Encoding Practices」に記載されています。

OpenID Connectをサポートするための最初のステップとして、Spring Security OAuthはresponse_typeのフレキシブルになる必要があります。 「Issue 619: Handling additional response_types」にリクエストがあります。ただし、一度に複数の値を受け入れることができる新しいコードには、codeまたはtokenのいずれかのみを予期する既存のコードを変更することは困難です。この執筆時点では、最後のコメントIssue 619は2015年12月12日に作成され、下のような文章で終了します。

(私が予測されるように)、これがあることが判明したとして、すべてのコメントは歓迎以上です大きなリファクタリング運動

Spring Security OAuthが商業団体のサポートを受けていない純粋に任意のプロジェクトである場合、そのような大きな変更は起こりそうにありません。

私の経験:約2年前、私はOAuth 2.0サーバーを一から書きました。それ以来、私はOpenID Connectの存在を知っていました。 OpenID Connectに関連する仕様を読んだ後、私は結局、既存の実装をダンプし、最初からサーバを書き直すという結論に達しました。

あなたが推測したように、OpenID Connectは単純ではありません。

"5.応答タイプ""Full-Scratch Implementor of OAuth and OpenID Connect Talks About Findings" でを参照してください。

春のフレームワーク上


更新(2017年11月 - 23)

認証サーバとOpenIDプロバイダ春のフレームワーク上
https://github.com/authlete/spring-oauth-server

リソースサーバ
https://github.com/authlete/spring-resource-server

spring-oauth-serverは、OAuth 2.0とOpenID Connectをサポートしています。 spring-resource-serverは、"OpenID Connect 1.0,5.3. UserInfo Endpoint"で定義されているUserInfo Endpointの実装を持っています。どちらの実装もSpring Security OAuthを使用せず、Spring BootAuthleteを使用します。

ブログ:Spring + OAuth 2.0 + OpenID Connect

関連する問題