我为 adfs 和 vcloud Director 创建了依赖方信任。在我的应用程序中,如果用户想要访问他的组织,可以单击一个按钮,然后他将被重定向到他在 vcloud Director 中选择的组织。如果用户想要注销我的应用程序,还应该从 vcloud Director 组织中注销该用户。发生的情况是,单击注销后,用户被重定向到 adfs 错误页面。我查看了 adfs 中的事件查看器,错误是
无法读取 SAML 协议消息,因为它包含无效数据。---> System.ArgumentOutOfRangeException: MSIS0001: 状态代码引用无效的顶级状态代码值“urn:oasis:names:tc:SAML:2.0:status:UnknownPrincipal”。
我尝试更改 Saml 端点 POST 并从
https://{vcloud_hostname}/cloud/org/{organization_name}/saml/SingleLogout/alias/vcd
至
https://{vcloud_hostname}/cloud/org/{organization_name}/saml/logout/alias/vcd
它不会将用户重定向到 adfs 错误页面。那么,SingleLogout 和 logout 有什么区别呢?
此外,当用户想再次登录我的应用程序并决定将自己重定向到 vcloud director 组织,并决定在我的应用程序中单击注销时,用户将被重定向到 adfs 的“成功注销”页面。但实际上,用户并没有成功退出。这是我的索赔规则:
将 LDAP 属性作为声明发送
电子邮件地址 -> 电子邮件地址
电子邮件地址 -> 姓名 ID
转换传入的声明
电子邮件地址 -> 电子邮件地址
安全哈希算法-> SHA-1
我错过了什么吗?请帮忙。