更新:
ここでは、あなたが使用できるいくつかのSAML 2つのオプションがあります。
のShibboleth SPはあなたのためにSAML 2.0を実装し製品ですが、OpenSAMLはあなたがSAML 2.0ソリューションを実装する可能性があるとちょうどライブラリです。ライブラリ自体は低レベルであり、SSOソリューションに近いものでもありません。 OpenSAMLはSAML 2.0のソリューションではありません。
OpenSAMLまたは SAML 2.0ソリューションを使用するには、下記のようにメタデータを交換する必要があります。 OpenSAMLでは、独自のMetaData用のXMLファイルも手作業で生成する必要があります。以下に述べるように、これは多くの作業になります。 SAML 2.0製品は、そのXMLメタデータファイルを生成し、SAML 2.0アサーションの暗号化と署名に使用する必要なRSA鍵を生成します。 OpenSAMLでは、アサーションの生成と解析のためのXMLファイルとAPIの一部を読み込むためのAPIサポートが用意されていますが、SSOの相互作用を実際に構築するJavaコードを記述します。
SPはではありません。には必ずActiveDirectory/LDAPが必要ですが、Webアプリケーションにユーザーを追跡するいくつかの種類のディレクトリが必要です。あなたのWebアプリケーションに、ユーザーのIdPの概念と関連付けるために使用できる識別情報を持つユーザーの概念が既にある場合は、SAML 2.0アサーションの属性値に基づいてWebアプリケーションにマッピングすることができます。 (Webアプリケーションは、ユーザーが誰であるか気にしない場合は、単に「有効」であること、ユーザーに基づいてアプリケーションへのアクセスを許可することができます。)
-
は、JavaのWebでShibboleth2 SSOの統合しますアプリケーションはそれほど難しくありません。 OpenSAMLを使用してSSOを実装することもできますが、ApacheサーバーとShibbolethを統合するよりも多くの労力がかかります。
Shibbolethを使用するには、Shibboleth SPデーモンがインストールされているShibbolethモジュールを有効にしたApache2ととが必要です。通常、それらは同じボックスにまとめられます。 Tomcatを使用してJava Webアプリケーションをホストしている場合は、mod_proxy_ajpを使用してApache2 HTTPサーバーとTomcatの間で通信することをお勧めします。そうすれば、Shibollethが提供する変数をサーブレットのRequest属性として取得できます。
Shibboleth SPパッケージは、遭遇する可能性のある標準的なSAML SSOシナリオをすべて処理していますが、それらのいずれかを実装しようとしていますOpenSAMLをJavaアプリケーションに直接組み込むことは、それを動作させることから、また安全にすることから、危険にさらされています。 OpenSAMLを使用している場合は、Webアプリケーションのサイズも増やします。 Shibboleth SPはJavaで書かれていないので、OpenSAMLを使用する例はありませんが、Java WebアプリケーションであるShibboleth IdPコードを見れば、洞察力を得ることができます。
いずれの場合でも、Shibboleth SPパッケージで簡単に作成されたSPメタデータをIDプロバイダと交換し、IDプロバイダのメタデータをSPで取得する必要があります(Shibboleth SPパッケージ単にMetadataProviderを設定してください)。
オンラインでのShibbolethのドキュメントは、使い慣れていれば多くのことに役立ちます。
OpenSAMLライブラリでSAML 2 SSOソリューションを実装するのではなく、Shibboleth SPパッケージを使用することができれば、成功する可能性は非常に高いと思います。私は他のすべてのJava SAML 2 SSOソリューションと話すことはできませんが、シンプルなShibboleth 2 SPに比べると、それらはすべて大きくて進んでいるようです。
「現存のJava SPオプション」の例を挙げることができますか? – mahatmanich