初めて SAML 対応の SOAP サービスを実装しようとしていますが、SAML 実装における Secure Token Service (STS) の役割に関して概念的な質問があります。
ユーザー ---> Web アプリケーション ---SOAP/SAML --> メッセージング アプリケーション
基本的なシナリオは、ユーザーが自分のユーザー名とパスワードを使用して Web アプリケーションにログインし、Web アプリケーションが外部サービスを使用してユーザーを認証および承認し、認証/承認が成功すると、Web アプリケーションがユーザーとして Sender Vouches SAML アサーションを作成することです。サブジェクトは、秘密鍵でアサーションに署名し、WS-S を使用してアサーションを SOAP エンベロープにパッケージ化し、メッセージング アプリケーションへの SOAP 呼び出しを行います。メッセージング アプリケーションが要求を受信すると、Web アプリケーションの公開鍵を使用して署名を検証し、SAML アサーションから認証ステートメントと属性ステートメントを取り出し、それらに基づいてエンド ポイントで認証ポリシーを適用します。
上記のシナリオでわかるように、外部 STS は関与していませんでしたが、SAML について読んだ文献のほとんどは、STS が絶対に必要であることを示唆しています。私が持っている質問は、STS が絶対に必要な理由が見当たらないので、上記のシナリオで何か間違ったことをしているということです。確かに STS があればいいのですが、少なくとも私の意見では、STS がなくても自分のユース ケースに SAML を実装することをやめることはできません。