我第一次尝试实现启用 SAML 的 SOAP 服务,我对安全令牌服务 (STS) 在 SAML 实现中的作用有一些概念性的问题。
用户 ---> Web 应用程序 ---SOAP/SAML--> 消息应用程序
基本上这个场景是用户使用他的用户名和密码登录到 Web 应用程序,Web 应用程序依次使用外部服务对用户进行身份验证和授权,在成功的身份验证/授权后,Web 应用程序创建一个 Sender Vouches SAML 断言,用户为主题,使用其私钥对断言进行签名,使用 WS-S 将断言封装在一个肥皂信封中,并对消息传递应用程序进行 SOAP 调用。一旦消息传递应用程序收到请求,它会使用 Web 应用程序的公钥验证签名,从 SAML 断言中提取身份验证和属性语句,并基于它们在端点上执行身份验证策略。
正如您在上述场景中看到的那样,没有涉及外部 STS,但是我读过的关于 SAML 的大多数文献都表明绝对需要 STS。我的问题是我在上述情况下做错了什么,因为我看不出我绝对需要 STS 的任何理由。当然,拥有 STS 会很好,但至少在我看来,没有它并不会阻止我为我的用例实施 SAML。