web-dev-qa-db-ja.com

JavaおよびSAML 2.0を使用したWeb SSO

IDプロバイダーが発行したSAML 2.0トークンを使用して認証を行うWebアプリケーションを記述したいと思います。この question によると、PHP world using simpleSAMLphp に実行可能な解決策があることを理解しています。

Java=世界に同等のメソッドがありますか?一般的なservletコンテナーまたはアプリケーションサーバー用のすぐに使えるソリューションやチュートリアルはありますか?

21
spa

OpenSAMLプロジェクト を試すことができます。 SAMLトークンを作成および検証するためのJavaライブラリを提供します。

22
LiorH

あなたは2つの製品を見ることができます:

どちらもかなり印象的な機能リストがあり、SSOエージェントの幅広いリストを提供します。

エージェントアプローチの主な利点は、認証プロセスがエージェントとSSOインフラストラクチャによって処理されるため、アプリケーションで認証プロセスを気にする必要がないことです。

独自のSAML2サービスプロバイダーを開発する場合は、OpenSAMLを使用する方法があります。欠点は、このライブラリが十分に文書化されていないことです。それにもかかわらず、Web上のOpenSAMLに関するチュートリアルを簡単に見つけることができます。
アプリケーションコードがSAMLに関連付けられないように、たとえばサーブレットフィルタとして実装できます。

7
sk_

最近、アプリケーションにSAML認証を実装したので、OASIS SAML2の技術概要ドキュメントで最も役立つ情報を見つけました。非常に読みやすく、渡されるXMLメッセージの実際の例が含まれています。

セクション5.1では、アプリケーション(サービスプロバイダーまたはSP)がリモートIDプロバイダー(Idp)に認証を要求する相互作用について説明します。

http://wiki.oasis-open.org/security/Saml2TechOverview

5
Uriah Carpenter

これはしばらくアクセスされていないため、最新の回答を提供します。

Springプロジェクトを既に実施している場合は、Spring Security SAMLで成功しました。 SAML拡張機能を使用するために、Spring Securityを使用してアプリを保護する必要はありませんが、多少簡単になります。

http://projects.spring.io/spring-security-saml/

4
Ian Stansbury
1
Maurice Perry