如何在 ADFS 2.0 中添加可以在 SharePoint 2010 中使用的其他声明
原文发布于 2011 年 4 月 2 日(星期六)
如果您决定在 ADFS 2.0 中为用户添加其他声明并在 SharePoint 2010 中成功使用这些声明,特为此向您介绍一个快捷技巧,以节省您一点时间。 有件重要的事情必须牢记,就是 SharePoint 仅支持 SAML 1.x,所以它要求声明类型是一个非常特定的值。
在 ADFS 2.0 中,您可以使用其公开的自定义规则语言轻松地添加其他声明。 若要执行该操作,您只需单击 ADFS 中的 SharePoint 信赖方,然后单击右操作窗格中的“编辑声明规则…”链接即可。 当显示规则编辑器时,单击“添加规则”,然后从下拉列表中选择“使用自定义规则发送声明”。 单击“下一步”按钮继续,然后您可以输入声明名称和使用 ADFS 规则语言的自定义声明规则 (https://technet.microsoft.com/zh-cn/library/dd807118(WS.10).aspx)(该链接可能指向英文页面)。 遗憾的是,该页面上引用的首条示例规则对 SharePoint 不起作用,因为名称的格式不受 WS 联合身份验证的支持。
幸运的是,Adam Conkle 在博客中已提供了 WS 联合身份验证的正确格式,网址为 https://social.technet.microsoft.com/wiki/contents/articles/ad-fs-2-0-the-admin-event-log-shows-error-111-with-system-argumentexception-id4216.aspx(该链接可能指向英文页面)。 SharePoint 用户要理解的一项重要内容就是他对于 SAML 1.x 命名要求的说明:
(来自他的博客,感谢 Adam)
SAML 1.1 标记 具有严格的 URI 规则,要求格式必须为 “namespace”/“name”。这可以通过多种方式进行建构,下面是一些常见的示例:
- myOrganization/myClaimType
- urn:myOrganization:claims/myClaimType
- https://myOrganization/claims/myClaimType
所以,举例来说,您可以在 ADFS 中添加一个自定义声明,它使用类似于下面的规则转至 SharePoint:
=> issue(Type = "https://www.vbtoys.com/claims/demo", Value = "BlazersPlayoffs2010");
ADFS 中的规则语言实际上非常有趣,其中包含了很多功能。 现在您知道将声明发送至 SharePoint 时需要对其类型使用何种格式。
这是一篇本地化的博客文章。请访问 How To Add Additional Claims in ADFS 2.0 that can be Consumed in SharePoint 2010 以查看原文