非 .NET 语言下信息卡依赖方的实现资源
信息卡技术并非局限于微软技术栈,它具有跨平台和跨供应商的特性。本文将介绍在 PHP、Java、Ruby 和 Perl 等开发平台中实现信息卡依赖方(Relying Party)的相关资源,涵盖具体代码示例和其他可用的依赖方项目。
信息卡交换流程
在深入代码之前,先了解一下信息卡在依赖方处请求、展示和接受的步骤:
1. 用户访问网站的登录页面。
2. 向依赖方发送 HTTP GET 请求以获取登录页面。
3. 浏览器收到带有 OBJECT 标签的 HTML 登录页面。
4. 用户点击“使用信息卡登录”按钮,触发身份选择器评估依赖方在 OBJECT 标签中指定的策略,然后筛选出符合策略的信息卡子集。
5. 身份选择器显示筛选后的信息卡子集。
6. 用户选择要使用的信息卡。
7. 身份选择器向卡发行方(身份提供者)请求安全策略。
8. 安全策略返回。
9. 用户向身份提供者进行身份验证,并请求包含所需声明的安全令牌。
10. 安全令牌返回。
11. 浏览器通过 HTTPS POST 请求将包含安全令牌的登录页面发送给依赖方。
12. 依赖方返回带有 cookie 的 HTTP 重定向到主页。
13. 浏览器向依赖方发送 HTTP GET 请求以获取主页 URL。
14. 浏览器收到 HTML 页面。
15. 用户已通过身份验证,可以访问网站。
下面是这个流程的 mermaid 流程图:
graph LR