gpt4 book ai didi

adfs2.0 - 声明未传递给 ADFS 2.0 中的依赖方

转载 作者:行者123 更新时间:2023-12-04 15:03:30 28 4
gpt4 key购买 nike

好的,所以我对整个 claim 感知应用程序的世界都很陌生。我能够使用 Azure ACS 快速启动并运行,但在尝试使用 ADFS 2.0 作为身份提供者时,情况有点不同(我实际上想将它用作联合提供者,但目前我我只是试图让一个示例使用它作为身份提供者运行)。

我一直在看the guides here并已尝试按照 AD FS 2.0 联盟和此处列出的 WIF 应用程序分步指南指南进行操作。它会引导您设置 ADFS 2.0 以及一个小的声明感知示例应用程序,您可以使用它来查看发送的声明。

所以我可以启动并运行它,通过指南中定义的声明(只是 Windows 帐户名)。问题是当我尝试添加更多内容时。我可以转到 ADFS GUI 中的信赖方应用程序并使用传递或过滤传入声明规则模板添加颁发转换规则。但是,当我运行我的应用程序时,除非添加的声明类型是 Name,否则它不会将声明传递给我的应用程序。

我想要传递的信息之一是登录应用程序的用户的电子邮件地址。所以我添加了一个规则来传递电子邮件地址,然后更新示例应用程序的 web.config 以取消对 claimTypeRequired 部分下的这一行的注释:

<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" optional="false" />

请注意,我将其设置为非可选。我还更新了应用程序的联合元数据以添加以下内容:
<auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" Optional="false" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706" />

然后我进入 ADFS GUI,进入 Relying Party Trusts 并在我的示例应用程序中选择了从联合元数据更新。因此,它现在将电子邮件列为已接受的声明之一。

然后,我进入了声明提供者信任,并将电子邮件声明规则添加到 Active Directory 提供者信任的接受转换规则中(唯一列出的)。

但是,当我运行该应用程序时,它并没有通过电子邮件声明(或我尝试的任何其他声明)。有人可以告诉我我在这里缺少什么吗?

我还应该注意,我运行了一个测试,将我的应用程序更改为只接受电子邮件声明规则,它不仅没有通过电子邮件,而且仍然通过 Windows 帐户名称和名称声明,尽管事实上我什至没有将它们列为我的应用程序已接受的声明。

如果有人能指出我在这里严重错误的地方,将不胜感激。

按照之前的博客文章启用日志记录后,以下是日志中的相关条目:
TraceRecord
事件 ID 1000,“详细信息中包含的调用主体的输入声明”:
Input claims log entry

所以你可以看到,我要求的信息显然缺失了。我将日志输出设置为详细,但实际上没有任何其他兴趣。您将看到 NETWORK SERVICE 用户的跟踪记录(具有相同的声明集),但没有什么引人注目的。所有日志条目都是信息性的,没有任何错误。

最佳答案

如果您使用 ADFS 作为身份提供者并希望它发出电子邮件声明,那么您必须使用 将 LDAP 属性作为声明发送 自定义声明规则 它访问 AD 作为属性存储并发出电子邮件声明。 Pass through 用于传入的声明,假设用户已经在某处进行了身份验证。如果是 Windows 身份验证 Windows 帐户名 是从 Kerberos token 发出的,这就是为什么您必须通过它,而其他人则必须发出。

关于adfs2.0 - 声明未传递给 ADFS 2.0 中的依赖方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6871462/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com