私のプロジェクトでOpenId Connect for SSOを実装しようとしています。しかし、私は、リソースサーバ側でOpenId JWTトークンを検証してステートレスにしたい場合に少し苦労しています。ユーザーがログアウトしようとすると、認可サーバーはユーザーのログアウトを知ります(したがって、OpenId Connectセッション管理の仕様)。しかし、認可サーバーはユーザーのトークンがもう有効ではないことをResource Serverにどのように伝えるべきですか?ログアウト後にユーザーがOpenIdトークンを使用してリソースサーバーにアクセスしてアクセスする場合です。それは不思議で、私はインターネット上で解決策を見つけることができませんでした。セントラルログアウトでステートレスセキュリティを整理する手助けをしてください。OpenIdステートレスSSOのログアウト接続
答えて
エンドポイントToken Introspectionを使用して、渡されたアクセストークンが有効かどうかを判断できます。リソースサーバーは、OPのイントロスペクションエンドポイントを呼び出して、リソースにアクセスする前にトークンを検証できます。効果的にトークンを検証するために、リソースサーバが必要です。
- はOPで登録されたクライアントうと、それに渡されるスコープと
- を検証するためにSPAアプリ(暗黙の流れアプリ)と同様の/同じスコープを持っていますイントロスペクションエンドポイントにアクセスすることができます。
詳細については、上記のリンクされた仕様の詳細を参照してください。
P.S.先に書いたanswerには、他の関連する参考文献がいくつかあります。
ありがとう、それは私の "プランB"です。しかし、トークンイントロスペクションエンドポイントで自分のトークンをチェックし始めると、発行されたトークンに関する情報を1つの中央場所に保存する必要があります。システムはステートフルになりますが、ステートレスではありません。このシステムをスケーラブルにするために、私はエスケープしたいユーザーセッションを共有する必要があります。さらに、Relaying Party(RP)からResource Server(RS)への各要求に対して、RSはトラフィックに大幅な影響を与える別の要求をOPに送信する必要があります。あなたの考えはシステムをステートフルにすることですが、私はJWTバリデーションや別のアプローチを使ってステートレスにしたいと考えています。 – Alex
紳士、どんなアイデア? SSOをステートレスにすることは可能ですか? – Alex
私はここであなたの要件を誤解しているかもしれません。しかし、あなたのシナリオでは、ステートレストークンとしてJWTアクセストークンを使用することはできませんか?このリンク - http://nordicapis.com/how-to-control-user-identity-within-microservices/には、ステートレストークン交換に関する情報があります。それが助けてくれることを願う – Karthik
- 1. ステートレス&ステートフル接続の結合
- 2. OpenId接続のOauth2
- 3. OpenIDの接続ディスカバリー
- 4. Google SSOログアウトBluemix
- 5. SSOパラメータへのWsFederation(openId)
- 6. OpenId GoogleとlinkedInの接続
- 7. OpenIdへの接続connect
- 8. ログアウトfacebook接続セッション
- 9. MVC 5 openidはオンプレミスのADFS 4.0ログアウト問題に接続します
- 10. OpenAM OpenID接続トークン確認
- 11. Kentor SAML SSOログアウトの問題
- 12. ログアウトbluemixのSSOサービスから
- 13. OpenIDプロバイダとOpenID WebRing SSOプロバイダの違いは何ですか?
- 14. Openid接続エンドポイント間の通信
- 15. GスイートPersonnal WebアプリケーションのOpenId接続
- 16. OpenId 'PAPE相当のFacebookブック接続
- 17. アーキテクチャの仕組みマイクロサービスとOpenID接続?
- 18. OpenIDを使用したASP.NET MVCマルチサイトSSO
- 19. OpenIDをReact-Reduxアプリケーションに接続する
- 20. OpenIDプロバイダーに接続できません
- 21. OpenID組み込みリソースで接続
- 22. ステートレスEJB間の永続コンテキスト
- 23. json Webキーをopenidから取得しましたopenidからメタデータエンドポイントに接続
- 24. OpenID Connectを使用したSSOの実装とトークンの使用
- 25. OpenID Connect SSOとIPベースのURLの統合
- 26. OneloginをSSOのアプリケーションデータベースに接続します
- 27. WSO2 Identity Serverを使用したOpenIDベースのSSO
- 28. ずにOpenIDの接続を実装oidc-クライアント-jsから
- 29. OWINのSecurityTokenSignatureKeyNotFoundException Googleに接続するOpenID Connectミドルウェア
- 30. OpenID接続とSpringセキュリティの実装方法
私は2つの関連するトピックを見つけました:http://stackoverflow.com/questions/27355808/openid-connect-with-stateless-jwt-tokensおよびhttp://stackoverflow.com/questions/32533285/openid-connection- session-management-can-id-token-be-be-revokedですが、私の質問には答えられません。 – Alex
id_tokenまたはアクセストークンは短期間である必要があります。すでに見つかった答えは次のとおりです。http://stackoverflow.com/a/32536038/676335 短命のaccess_tokenを使用すると、更新するためにrefresh_tokenを使用してプロジェクトを呼び出す必要があります。認証サーバーはログアウトしたユーザーに新しいaccess_tokenを与えることを拒否することができます。 – fiddur
ありがとうございます。残念なことに、それは暗黙のフローです(依存パーティーはAngularJSアプリケーションです)。したがって、OpenId Connect仕様に準拠します。このフローでは、リフレッシュトークンは安全でないため、使用しないでください。そのため、この問題をカバーする答えはありません。何か案は? – Alex