高级自定义 > 业务逻辑自定义 > 自定义安全标签 > 为自定义安全标签指定已授权的参与者
  
为自定义安全标签指定已授权的参与者
自定义安全标签可以有多个标签值。对于自定义安全标签,可以为所有非空安全标签值 (而非针对单个安全标签值) 配置已授权的参与者。对于标准和自定义安全标签,可通过多种方法指定授权参与者:
未指定
如果既未指定 UFID 也未指定 EvaluatorClass,则标签值不限制对应用了标签值的对象的访问权限,且该标签值成为一个信息标记。
仅 UFID
如果使用 UFID 指定已授权的参与者,则 UFID 值将指示参与者是否拥有对已应用标签值的对象的访问权限。
仅 EvaluatorClass
如果指定评估器类,则该评估器类会在评估参与者访问权限时调用其布尔型 isRestrictedBySecurityLabelValue (WTPrincipal principal, SecurityLabeled object, String label_name, String label_value) 方法,以确定参与者是否拥有对已应用标签值的对象的访问权限。
UFID 和 EvaluatorClass
如果同时指定了 UFID 和评估器类,则仅在调用 super.isRestrictedBySecurityLabelValue(principal, label_name, label_value) 方法并使用该结果时才使用 UFID (即,isRestrictedBySecurityLabelValue 方法不会在评估器类中被覆盖,或者被覆盖的方法调用 super.isRestrictedBySecurityLabelValue 并利用其结果)。
* 
虽然不能为单个自定义安全标签值配置已授权的参与者,但在配置评估器类时,为每个值授权的用户仍然可以不同。评估器类可以为应用于对象的每个值返回不同返回值。
使用 UFID 指定已授权的参与者
当仅将 UFID 用于已授权的参与者时,指定用户定义的组来标识已授权的参与者将提供最大的灵活性,因为可以使用“参与者管理”实用工具、“组织” > “组”页或第三方 LDAP 工具来管理 LDAP 目录服务中的组。如果将组用作自定义安全标签的已授权参与者,则组的成员资格可包括其他组。如果用户不是任何自定义安全标签者的已授权参与者,则系统将拒绝其访问应用了标签值的对象,除非他们使用协议中授权参与者集的成员资格获得该对象的临时访问准许。如果授予了一个安全标签的权限,则不会自动授予用户任何其他安全标签的访问权限。用户必须获得在对象中设置的所有安全标签的许可,才能够访问对象。
例如,站点可能在 Windchill 外有一个用于跟踪用户是否已完成 ITAR 培训的系统。导出控制标准安全标签值上的 ITAR 准许安全标签值将使用自定义评估器进行配置。自定义评估器会查询外部系统以确定用户是否已完成培训。对于已完成培训的用户,评估方法将返回 false (当外部系统返回 Yes 时),并针对安全标签值准许该用户。
使用自定义评估器指定已授权的参与者
使用自定义评估器类确定用户是否为自定义安全标签或标准安全标签值的已授权参与者时,将调用布尔型 isRestrictedBySecurityLabelValue (WTPrincipal principal, SecurityLabeled object, String label_name, String label_value) 方法。Windchill 使用布尔返回值确定用户是否是应用于该对象的安全标签值的已授权参与者。
例如,站点可能在 Windchill 外有一个用于跟踪用户是否已完成 ITAR 培训的系统。 导出控制标准安全标签值上的 ITAR 准许安全标签值将使用自定义评估器进行配置。自定义评估器会查询外部系统以确定用户是否已完成培训。对于已完成培训的用户,评估方法将返回 false (当外部系统返回 Yes 时),并针对安全标签值准许该用户。
使用自定义评估器和 UFID 指定已授权的参与者
使用自定义评估器类确定某个用户是否为安全标签值的已授权参与者时,调用该布尔型 isRestrictedBySecurityLabelValue(WTPrincipal principal, SecurityLabeled object, String label_name, String label_value) 方法,但此方法也可以调用 super.isRestrictedBySecurityLabelValue(principal, label_name, label_value) 方法来合并安全标签配置文件中指定的 UFID。如果调用了 super.isRestrictedBySecurityLabelValue 方法,则将由评估器以任何所需方式使用 super.isRestrictedBySecurityLabelValue 返回值。
例如,站点可能在 Windchill 外有一个用于跟踪用户是否已完成 ITAR 培训的系统。导出控制标准安全标签上的“ITAR 准许 - 美国”安全标签值将使用自定义评估器进行配置。自定义评估器会查询外部系统以确定用户是否已完成培训。如果用户已完成培训,则外部系统会针对自定义评估方法返回值 Yes。然后,调用 super.isRestrictedBySecurityLabelValue 方法,并对用户进行评估以确定其是否为美国人员组的成员。如果为 true,则会准许该用户的安全标签值,并且方法将返回 false。如果用户尚未完成培训,则外部系统会将值 "No" 返回到自定义评估方法,在未调用 super.isRestrictedBySecurityLabelValue 方法时,该方法将返回 true,并且不会准许用户的安全标签。