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