2012-01-10 23 views
6

私の混乱を解消するためのSAML実装の質問が2つあります。SAMLを実装するには、ホストにShibboleth SPがインストールされている必要がありますか?

Java WebアプリケーションでSSOを実装する必要があります。そうするためには

  1. 、私はShibbolethをSPが私のホストlike soにインストールされている必要がありますか、または私はOpenSAMLを経由してSP機能を提供することができますか?

  2. 私は、shibbolethがOpenSAMLと同じように動作していると仮定していますが、Webサーバレベルでは、OpenSAMLはソフトウェア側でそれを行います。その仮定は正しいのでしょうか?

EDIT:だから、Shibbolethを(スコット・カンターに応じて)... OpenSAMLで構築され 私の仮定はまだかかわらず、保持していますか?

    OpenSAMLを使用するために必要とされるであろう何
  1. ?ちょうどIdPのURLとidPの登録?

  2. SPディレクトリを指定する必要がありますか? ActiveDirectory/LDAP?

EDIT:答えをおかげで、誰かが真上 の質問にお答えし、それらについて詳しく説明することができます...

答えて

3

OpenSAMLを使用するには何が必要ですか?ちょうどIdPのURLとidPの登録?

あなたにはJavaとWebコンテナが必要です。あなたにはopensamlライブラリが含まれています。

AuthnRequestを送信したり、SAMLResponseを処理したりするたびに、IdPメタデータをローカルにキャッシュするか、ルックアップする必要があります。また、IdP側でSPメタデータを登録する必要があります。

IdPとしてShibbolethを使用している場合、SPメタデータはconf/relying-party.xmlファイルで設定する必要があります。

SPディレクトリを指定する必要がありますか。 ActiveDirectory/LDAP?

IdPでログインするには、IdP側でldapまたはデータベースサーバーを設定し、conf/attribute-resolver.xmlとconf/login.configで設定する必要があります。

1

あなたは、関連するメーリングリストに、このような質問を投稿する必要がありますShibbolethプロジェクトが運営しています。

OpenSAMLは、SAMLソリューションを実装するための非常に低いレベルのツールキットです.Shibbolethは、OpenSAMLで構築されるSAMLをサポートするWebアプリケーション用のSSOパッケージです。セキュリティソリューションの構築は複雑で、専門知識が必要です。その専門知識を持っていなければ、それは悪いことです.OpenSAMLは文書化されていないので、典型的な開発者が最初から解決策を構築することができます。

Shibbolethであろうとなかろうと、完全な実装を使用することを検討してください。 Apacheとネイティブコードを使用していてJavaが必要な場合は、存在する既存のJava SPオプションの1つを試してください。彼らが不十分であっても、あなたはそれらを上に構築し、それらを複製しないでください。あなたの編集に対処するための

+1

「現存のJava SPオプション」の例を挙げることができますか? – mahatmanich

13

更新:

ここでは、あなたが使用できるいくつかの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に比べると、それらはすべて大きくて進んでいるようです。

-3

はい、サーバーまたはマシンにSPをインストールする必要があります。また、IISやApacheなどのWebサーバーによって異なります。

関連する問題