sts的出现是为了解决server对client的信任问题。
sts引进了一个被信任的第三方来解决安全访问的问题。这个被信任的第三方就是STS服务器。我把这种通过引入第三方的方式称作“叫来一个神”。支付宝在交易时就是这样一个角色。
sts服务器是同时被client和server所信任的第三方。当client发出请求时,首先会被重定向到sts服务器,sts服务器校验过client的saml token之后,发放给client一个安全标记(security token),比如saml token。(安全标记里是关于client的声明,有sts服务器的签名。一旦有了签名,server端就认为client端是可信任的。)client端得到security token后,就生成一个request,并且把security token包含进去,发送给server。server收到之后校验一下有sts的签名并且没被篡改过,就可以访问服务了。
整个过程如下图示:
sts发放的security token,一般是saml token,这里简单说下关于saml token。saml token是用xml语言写的安全标记,用来交换安全信息。saml token之所以重要是因为一它可以跨平台交互,二它可以使处于不同安全domain的server和client交换安全信息。