7

混乱を解消するために、いくつかの SAML 実装に関する質問を受けました ...

Java Web アプリに SSO を実装する必要があります。

  1. そのためには、ホストに Shibboleth SP をインストールする必要がありますか? または、OpenSAML 経由で SP 機能を提供できますか?

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

編集:したがって、shibboleth (Scott Cantor によると) は OpenSAML でビルドされています...私の仮定はまだ有効ですか?

  1. OpenSAML を使用するには何が必要ですか? IdP URL と idP への登録だけですか?

  2. ActiveDirectory/LDAP などの SP ディレクトリを提供する必要がありますか?

編集:答えてくれてありがとう、でも誰かが上記の質問に直接答えて詳しく説明してくれませんか...

4

4 に答える 4

14

編集に対処するための更新:

使用できる SAML 2 オプションを次に示します。

Shibboleth SP は SAML 2.0 を実装する製品ですが、OpenSAML はSAML 2.0 ソリューションを実装できるライブラリにすぎません。ライブラリ自体は低レベルであり、SSO ソリューションにはほど遠いものです。OpenSAML は、それ自体では SAML 2.0 ソリューションではありません。

OpenSAML または任意のSAML 2.0 ソリューションを使用するには、以下に示すようにメタデータを交換する必要があります。OpenSAML では、独自のメタデータ用の 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 アプリケーションがユーザーが誰であるかを気にしない場合は、ユーザーが「有効」であることに基づいてアプリケーションへのアクセスを単純に許可できます。)

--

Shibboleth2 SSO を Java Web アプリケーションと統合することはそれほど難しくありません。OpenSAML を使用して SSO を実装することもできますが、Apache サーバーを Shibboleth と統合するよりもはるかに手間がかかります。

Shibboleth を使用するには、Shibboleth モジュールが有効なっている Apache2があり、Shibboleth SP デーモンがインストールされている必要があります。通常、これらは同じボックスにまとめられます。Tomcat を使用して Java Web アプリケーションをホストしている場合は、mod_proxy_ajp を使用して Apache2 HTTP サーバーと Tomcat 間の通信を行うことをお勧めします。そうすれば、Shibolleth が提供する変数をサーブレットの Request 属性として取得できます。(shibboleth2.xml で、変数のプレフィックスを "AJP_" に設定する必要があります。)

Shibboleth SP パッケージは、遭遇することが予想されるすべての標準 SAML SSO シナリオを既に処理していますが、それらの 1 つでも OpenSAML を使用して Java アプリケーションに直接実装しようとすると、それを機能させることと安全にすることの両方から危険が伴います。 . OpenSAML を使用すると、Web アプリのサイズも大きくなります。Shibboleth SP は Java で記述されていないため、OpenSAML を使用した例はありませんが、Java Web アプリである Shibboleth IdP コードを見ると、ある程度の洞察を得ることができるかもしれません。

いずれの場合も、SP メタデータ (Shibboleth SP パッケージで簡単に作成) を ID プロバイダーと交換する必要があります。また、SP で ID プロバイダーのメタデータを取得する必要があります (Shibboleth SP パッケージでは、 MetadataProvider)。

Shibboleth のオンライン ドキュメントは、使用に慣れると非常に役立ちます。

OpenSAML ライブラリを使用して SAML 2 SSO ソリューションを実装するよりも、Shibboleth SP パッケージを使用できれば、成功する可能性がはるかに高くなると思います。他のすべてが Java の SAML 2 SSO ソリューションについて話すことはできませんが、単純な Shibboleth 2 SP と比較すると、それらはすべて大きく、過度に企業的であるように見えます。

于 2012-01-10T21:41:29.580 に答える
3

OpenSAML を使用するには何が必要ですか? IdP URL と idP への登録だけですか?

Java と Web コンテナーが必要で、戦争に opensaml ライブラリーを含めます。

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

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

ActiveDirectory/LDAP などの SP ディレクトリを提供する必要がありますか?

IdP にログインするには、IdP 側で LDAP またはデータベース サーバーをセットアップし、conf/attribute-resolver.xml および conf/login.config で構成する必要があります。

于 2012-02-08T20:53:26.037 に答える
2

このような質問は、Shibboleth プロジェクトが運営する関連するメーリング リストに投稿してください。

OpenSAML は、SAML ソリューションを実装するための非常に低レベルのツールキットです。Shibboleth は、たまたま OpenSAML で構築された SAML をサポートする Web アプリケーション用の SSO パッケージです。セキュリティ ソリューションの構築は複雑で、専門知識が必要です。その専門知識がなければ、うまくいかないでしょう。OpenSAML は、一般的な開発者がゼロからソリューションを構築できるように文書化されていません。

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

于 2012-01-10T21:15:26.403 に答える
-3

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

于 2014-06-01T13:50:26.443 に答える