【发布时间】:2025-11-21 21:15:02
【问题描述】:
这是设置身份验证的方式。 - 客户端浏览器将请求(以下 URL)发送到客户端的 ADFS 服务器, - 客户端 ADFS 然后查看嵌套中继状态并将请求转发到我们的 ADFS 服务器。 - 我们的 ADFS 查看请求并将请求发送到我们的 APP。
网址在这里。
https://clientadfs.clientdomain.com/adfs/ls/idpinitiatedsignon.aspx?RelayState=RPID%3Dhttps%3A%2F%2ouradfs.ourdomain.com%2Fadfs%2Fls%2F%26RelayState%3DRPID%3Dhttps%3A%2F%2ourapp.ourdomain.com%2Fvaruna%2Fconsole%2Fsso.aspx%3FsamISso%26lang%3Den_CA
该请求在 ADFS 服务器上生成一个没有错误的空白页面。
我让提琴手跟踪客户端。客户端使用用户的电子邮件地址来识别用户。我可以在发送到客户 ADFS 的 SAML 令牌中看到此电子邮件地址。 这个 SAML 令牌进入我们的 ADFS 服务器,我看到了来自我们的 ADFS 服务器的 SAML 响应。但是,这没有用户电子邮件地址。我认为这就是问题所在。
在我们的 ADFS 服务器上,我有这个客户的声明(在 Claims Provider Trust 上)来处理用户 ID(这是他们的电子邮件):
声明规则名称:电子邮件 传入声明类型:名称 ID 传入姓名 ID 格式:电子邮件 传出姓名 ID 格式:电子邮件 传递所有声明值。
这是声明规则语言中的声明
c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] == "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"]
=> issue(Type = "Email", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType);
在客户的 ADFS 配置中,这是他们的电子邮件/用户 ID 配置:
IssuanceTransformRules : @RuleTemplate = "LdapClaims"
@RuleName = "Pass email"
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccou
ntname", Issuer == "AD AUTHORITY"]
=> issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/20
05/05/identity/claims/nameidentifier"), query = ";mail;{0}", param = c.Value);
我不知道我做错了什么。谁能发现我的问题?或者你能建议我应该在哪里看吗?
感谢您的帮助!
- RM
【问题讨论】:
标签: adfs2.0