声明是一个对象对其自身或另一个对象所进行的陈述。 信赖方发出声明。 系统会为它们提供一个或多个值,然后将这些值打包到 Active Directory 联合身份验证服务(AD FS)服务器颁发的安全令牌中。 本文介绍了声明语法和创建。 有关声明颁发的信息,请参阅 AD FS 疑难解答。
处理声明规则的方式
声明规则通过使用声明引擎通过声明管道进行处理。 声明引擎是 AD FS 的逻辑组件,用于检查用户提供的传入声明集。 根据每个规则中的逻辑,它生成一组声明。
如何创建声明规则
声明规则是针对 AD FS 中的每个联合信任关系单独创建的。 它们不会跨多个信任共享。 您可以:
- 从 声明规则模板创建规则。
- 通过使用 声明规则语言创作规则,从头开始。
- 使用 Windows PowerShell 自定义规则。
声明规则语言的组件
声明规则语言由以下组件组成,由 " =>" 运算符分隔:
- 条件用于检查输入声明并确定是否应执行规则的颁发语句。 它表示必须计算为 true 才能运行规则正文部件的逻辑表达式。
- 一个颁发语句。
下面是一个示例:
c:[type == "Name", value == "domain user"] => issue(type = "Role", value = "employee");
此声明具有:
-
条件:
c:[type == "Name", value == "domain user"]评估 Windows 帐户名称是否为域用户的输入声明。 -
颁发:
issue(type = "Role", value = "employee")如果条件为 true,则向具有员工角色的输入声明添加新声明。
有关声明和语法的详细信息,请参阅 声明规则语言的角色。
声明规则编辑器
声明规则编辑器在完成声明并选择“ 确定”后执行语法检查。 如果语法不正确,编辑器会通知你。
事件日志
尝试使用日志对声明进行故障排除时,最佳方法是查找声明输出。 在事件日志中查找 1000 和 1001 个事件。
创建示例应用程序
还可以创建一个与声明回显的示例应用程序。 例如,可以使用示例应用程序并创建一个具有相同声明的信赖方,该声明与你尝试进行故障排除的声明相同,并查看该应用是否具有该声明的任何问题。
提供了一个很好的示例 Web 应用。 该应用回显从信赖方收到的声明。 若要使用它,请编辑 web.config 应用:
- 更改为
https://app1.contoso.com/sampapp用于托管示例应用的 URL。 - 更改指向 AD FS 服务器的所有实例
sts.contoso.com。 - 将指纹替换为指纹。
- 将值
decryptionKeyvalidationKey替换为适合你的方案的值。
此博客文章 提供了有关设置应用的出色深入说明。