《SAML简介:安全地共享数字身份信息》读后感
原文:http://dev2dev.bea.com.cn/techdoc/20060919883.html
关于多站点的SSO(如Passport),以前一直想不明白用户怎么能放心将自己的passport帐号和密码告诉第三方站点.
现在明白了,验证用户帐号和密码是在源站点进行的,而第三方站点属于目的站点,它只能接受用户帐号,然后发送请求给源站点以验证用户身份是否合法(即是否已登录).
用户在源站点登录后,用户浏览器将存储一个cookie,即浏览器证书,那是一个hash字符串.在用户登录目的站点时,目的站点发送一个请求给源站点,此请求中包含浏览器凭证,目的站点发送此请求的目的就是为了验证浏览器凭证是否有效.
总的说来,浏览器凭证是源站点和目的站点之间的纽带,也是双方博弈的筹码:对于源站点来说,它必须保证用户帐号安全,它不能直接把用户帐号和密码暴露给目的站点,于是,源站点就只有提供一个短期之内可以证明用户身份的凭证给目的站点;对于目的站点,为了包含站点安全,它也不能把关于站点的所有操作都暴露给用户,它必须对用户进行身份验证,于是它就不得不把浏览器凭证发送给源站点以识别用户身份.
关于多站点的SSO(如Passport),以前一直想不明白用户怎么能放心将自己的passport帐号和密码告诉第三方站点.
现在明白了,验证用户帐号和密码是在源站点进行的,而第三方站点属于目的站点,它只能接受用户帐号,然后发送请求给源站点以验证用户身份是否合法(即是否已登录).
用户在源站点登录后,用户浏览器将存储一个cookie,即浏览器证书,那是一个hash字符串.在用户登录目的站点时,目的站点发送一个请求给源站点,此请求中包含浏览器凭证,目的站点发送此请求的目的就是为了验证浏览器凭证是否有效.
总的说来,浏览器凭证是源站点和目的站点之间的纽带,也是双方博弈的筹码:对于源站点来说,它必须保证用户帐号安全,它不能直接把用户帐号和密码暴露给目的站点,于是,源站点就只有提供一个短期之内可以证明用户身份的凭证给目的站点;对于目的站点,为了包含站点安全,它也不能把关于站点的所有操作都暴露给用户,它必须对用户进行身份验证,于是它就不得不把浏览器凭证发送给源站点以识别用户身份.