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