SAML SSOを実装する方法
-
03-07-2019 - |
質問
SAML SSOは通常どのように実装されますか?
GoogleでSAMLを使用することについてこれ(廃止)を読みましたアプリ、および SAML のウィキペディアエントリ。
ウィキペディアのエントリでは、SAMLRequestとSAMLResponseの詳細を含むフォームでの応答について説明しています。これは、ユーザーがシングルサインオンを続行するためにフォームを物理的に送信する必要があるということですか?
Googleエントリではリダイレクトの使用について説明していますが、これは私にはあまり思えません。ただし、ユーザーが送信する必要がある応答用のフォームの使用についても説明しています(ただし、JavaScriptを使用してフォームを自動的に送信することについては説明しています)。
これはこれを行う標準的な方法ですか?フォームの送信にリダイレクトとJavaScriptを使用していますか
WindowsドメインとJ2EE Webアプリケーション間でSSOを実装する方法に関する他の優れたリソースを誰もが知っていますか。 Webアプリケーションは別のネットワーク/ドメイン上にあります。クライアントが CA Siteminder (SAMLを使用)を使用したい。
解決
これが機能する方法は、ユーザーを認証した後、SAML IDプロバイダー(IdP)がSAML応答を含むブラウザーにフォームをレンダリングすることです-フォームの「アクション」(つまりターゲット)はサービスプロバイダー(SP)です。 HTMLには、フォームを送信するJavaScript onLoadイベントがあるため、最終的な効果は、ユーザーがIdPからSP、SAMLレスポンスを自動的に取得することです。
フォームを送信するためにユーザーがクリックする必要があるのは、JavaScriptが無効になっている場合のみです。この場合、SAML実装は通常、<noscript>
タグを押すボタンを持つメッセージを提供します。
詳細については、数年前に書いたこの記事を参照してください。 -ただし、「Lightbulb」は現在廃止されています-PHP SAMLについては、 simpleSAMLphp を参照してください。
クライアントがCA SiteMinderを使用したいのは残念です-オープンソース OpenAM (以前はOpenSSOと呼ばれていました) )これは非常に簡単です。
他のヒント
この記事で説明していますとてもいいです。さまざまなプラットフォームの例もあります。
Siteminderが証明書利用者である場合、カスタムエージェントを作成してSAMLアーティファクトを取得し、SMセッションを作成する必要があります。それ以外の場合は、この機能が既に組み込まれている製品を購入する必要があります。
この画像リンクを見ると、SAML SSOをよりよく理解できます。また、いくつかのリンクを提供したいと思います。これらのリンクは企業の製品であり、SAMLの仕組みの非常に直感的な例があります。- https:// www .codeultimate.com / products / saml