SAMLを実装するには、ホストにShibboleth SPをインストールする必要がありますか?

StackOverflow https://stackoverflow.com/questions/8807477

質問

混乱を解消するために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ディレクトリを提供する必要がありますか?

編集: 答えをありがとう。しかし、誰かが上記の質問に直接答えて、それらについて詳しく説明することができます...

役に立ちましたか?

解決

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

JavaとWebコンテナが必要であり、あなたの戦争にOpenSamlライブラリを含めます。

IDPメタデータをローカルにキャッシュするか、authnrequestを送信したり、SamlResponseを処理したりするたびに調べる必要があります。また、IDP側にSPメタデータを登録する必要があります。

IDPとしてShibbolethを使用している場合、SPメタデータはconf/lying-party.xmlファイルにセットアップする必要があります。

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

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

他のヒント

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

使用できるSAML 2オプションをいくつか紹介します。

Shibboleth spはaです 製品 それはあなたのために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サポートがあり、アサーションを生成および解析するために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が提供する変数をピックアップできます。 (Shibboleth2.xmlの「AJP_」に変数プレフィックスを設定する必要があります。)

Shibboleth SPパッケージは、遭遇すると予想される標準SAML SSOシナリオのすべてをすでに処理していますが、JavaアプリケーションにOpenSamlを直接持っている人の1人も実装しようとすることは、それを機能させることと安全にすることからの危険に満ちています。また、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パッケージを使用できる場合、成功の可能性が高くなると思います。私は他のオールジャバSAML 2 SSOソリューションと話すことはできませんが、それらはすべて、シンプルなシブベレス2 spと比較して大きくて過度に企業的に見えます。

このような質問を、Shibboleth Projectが実行する関連メーリングリストに投稿する必要があります。

OpenSamlはSAMLソリューションを実装するための非常に低レベルのツールキットです。Shibbolethは、SAMLをサポートするWebアプリケーション向けのSSOパッケージであり、これはopenSamlで構築されています。セキュリティソリューションの構築は複雑であり、専門知識が必要です。あなたがその専門知識を持っていない場合、あなたはそれについて悪い仕事をし、OpenSamlは典型的な開発者がゼロから解決策を構築できるように文書化されていません。

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top