同様の質問に目を通し、SAML 2.0 に関するいくつかの記事を既に読みましたが、それでも SAML Auth Request を理解できません。
私の会社が IdP (ID プロバイダー) である場合に、いくつかの SAML ベースの SSO ソリューションを実装しました。私たちは常に、SAML レスポンスを介して Web サイトからサードパーティにユーザーを送信してきました。
- ユーザーは当社のウェブサイトにログインします。
- ユーザーは、当社の Web サイトの特別なリンクをクリックします。
- SAML レスポンス XML を用意しています。
- 秘密鍵で電子署名します。
- 「RelayState」パラメーターとともに、HTML フォームの非表示フィールドとしてユーザーのブラウザーに送り返します。
- このフォームを SP (サービス プロバイダー) の URL に自動 POST します。
それでおしまい。
SAML 2.0 の記事 (たとえば、SAML 2.0 に関するウィキペディアの概要記事) では、 "SAML Auth Request"というステップが抜けていることが示唆されています。SP は、最初に「SAML Auth Request」を IdP (私たち) に送信して SSO を開始する必要があるようです。次に、SAML Response で応答することになっています。
SP は SSO を開始する時期をどのように決定しますか? SP は、私たちがユーザーを自分のやり方で送ることさえ知りません。ユーザーは現在、当社の Web サイトにログインしており、そのリンクをクリックするタイミングはユーザー次第であり、SP Web サイトで「魔法のように」認証されます。
ありがとうございました!
PS SAML 2.0 が「確立された業界標準」であることは理解していますが、それを使用すればするほど、やり過ぎだと感じます。その複雑さのために、互換性のないさまざまな実装がたくさんあります (私の経験から)。新しいパートナーと SSO を行うたびに、それは苦痛です。大企業は「すぐに使える」SAML ソリューションを販売して莫大な利益を上げていますが、適切な構成とトラブルシューティングの方法を誰も知らないため、すべてをセットアップするために高価な請負業者に支払うことを余儀なくされています。企業は、これらの複雑すぎる SAML ソリューションをサポートするために、低賃金の従業員を雇用できることを望んでいます。サード パーティと SSO をセットアップするとき、私はよく、それが何であるかを知らない人々とやり取りします。彼らは、ボタンをクリックして電話で不可解なエラー メッセージを読むように訓練されているだけです。これはすべて、過剰に設計された SAML によるものです。しかし、明るい面もあります。私は SAML を十分に理解しており、少なくともそれを機能させることができるので、かなりの報酬を得ることができます。:)