web-dev-qa-db-ja.com

SAML SSOを実装する方法

SAML SSOは通常どのように実装されますか?

Google AppsでSAMLを使用することについて this (廃止)、および [〜#〜] saml [〜#〜] のウィキペディアエントリを読みました。

ウィキペディアのエントリでは、SAMLRequestとSAMLResponseの詳細を含むフォームでの応答について説明しています。これは、ユーザーがシングルサインオンを続行するためにフォームを物理的に送信する必要があるということですか?

グーグルのエントリーでは、リダイレクトの使用について説明していますが、これは私にはあまり思えません。ただし、ユーザーが送信する必要がある応答用のフォームの使用についても説明しています(ただし、JavaScriptを使用してフォームを自動的に送信することについては説明しています)。

これは標準的な方法ですか?フォームの送信にリダイレクトとJavaScriptを使用していますか?

WindowsドメインとJ2EE Webアプリケーション間でSSOを実装する方法について、他の優れたリソースを知っている人はいますか。 Webアプリケーションは、別のネットワーク/ドメイン上にあります。クライアントが CA Siteminder (SAMLを使用)を使用したい。

38
A_M

これが機能する方法は、ユーザーを認証した後、SAML IDプロバイダー(IdP)がSAML応答を含むブラウザーにフォームをレンダリングすることです-フォームの「アクション」(つまり、ターゲット)はサービスプロバイダー(SP)です。 HTMLには、フォームを送信するJavaScript onLoadイベントがあるため、最終的な効果は、ユーザーがIdPからSP、SAMLレスポンスを自動的に取得することです。

フォームを送信するためにユーザーがクリックする必要があるのは、JavaScriptが無効になっている場合のみです。この場合、SAML実装は通常、<noscript> 鬼ごっこ。

詳細については 数年前に書いたこの記事 を参照してください-ただし、 'Lightbulb'は現在廃止されています-PHP SAMLを参照してください simpleSAMLphp

クライアントがCA SiteMinderを使用したいのは残念です-オープンソース OpenAM (以前のOpenSSO)は、これを非常に簡単に実行します。

29
metadaddy

この記事 は非常にうまく説明しています。さまざまなプラットフォームの例もあります。

6
Farhan

Siteminderが証明書利用者である場合、SAMLアーティファクトを取得してSMセッションを作成するカスタムエージェントを作成する必要があります。それ以外の場合は、この機能が既に構築されている製品を購入する必要があります。

0
McGovernTheory