授权规则是以 VBScript 或 JScript 编写的脚本,可以将其包括在角色定义和任务定义中。授权规则将确定是否允许角色或任务。

通过使用授权规则,可使授权决策基于脚本可测试的所有条件。这些条件包括特权和权限、一天中的时间段、可支付费用限制、帐户余额或其他条件。

授权管理器不是为编写或调试授权规则而设计的。可以在文本编辑器(如记事本)、集成开发环境(如 Visual Studio .NET)或您选择的其他应用程序中编写脚本。授权规则通常由专业开发人员编写。

有关创建授权规则和使用授权管理器应用程序编程接口 (API) 的详细信息,请参阅授权管理器模型 (https://go.microsoft.com/fwlink/?linkid=64027)(可能为英文网页)。有关其他推荐的链接,请参阅用于授权管理器的资源

控制业务规则和授权规则的使用

控制每个客户端上的使用

从 Windows Server 2008 开始,业务规则和授权规则的使用由注册表设置来控制。默认情况下禁用规则。早期版本的 Windows 不支持此功能。

一般情况下,如果环境中正在使用授权规则和业务规则,则将使用安装程序或由操作系统运行的脚本来启用这些规则。

重要

对每个客户端上的每个授权管理器应用程序分别控制此设置。

以下是对应用程序启用或禁用业务规则和应用程序规则的脚本示例:

'

' Enabling or disabling BizRules for an application

' This script uses Authorization Manager Administrative interfaces to enable or disable

' BizRules for a specified Authorization Manager application in a specified Authorization Manager policy store

On Error Resume Next

Set objArgs = WScript.Arguments

If objArgs.count <> 3 then

wscript.echo "Usage: SetBizRule ""AzManStoreURL"" ""AzApplicaitonName"" True/False"

wscript.echo "Example: SetBizRule ""msxml://d:\inetpub\wwwroot\AzStore.xml"" ""MyApp"" True"

wscript.echo "Run with 'cscript' command in cmd.exe to avoid msg boxes"

Else

' VBScript source code

Dim AzStoreObj

Dim AzManStoreURL : AzManStoreURL = objArgs(0)

Dim AzManAppName : AzManAppName = objArgs(1)

Dim BizRulesEnabled : BizRulesEnabled = objArgs(2)

' create azman object

Set AzStoreObj = CreateObject("AzRoles.AzAuthorizationStore")

If Err.Number > 0 Then

WScript.Echo "Can not create AzRoles.AzAuthorizationStore. Check Authorization Manager installation"

WScript.Quit

End If

' initialize store for Administration

' assumes store exists - if store is being created (e.g. an installing applicaion)

' use the value 3 instead of 2 in the call to IAzAuthorizationStore::initialize

Err.Clear

AzStoreObj.Initialize 2, AzManStoreURL

If Err.Number <> 0 Then

WScript.Echo "AzRoles.AzAuthorizationStore failed to initialize. Check store URL"

WScript.Quit

End If

' open applicaion

set AzApp = AzStoreObj.OpenApplication(AzManAppName)

If Err.Number <> 0 Then

WScript.Echo "AzRoles.AzAuthorizationStore failed to open application: " + AzManAppName + ". Check application Name."

WScript.Quit

End If

' set BizRulesEnabled property

WSCript.Echo "App BizRule Before:" & AzApp.BizRulesEnabled

AzApp.BizRulesEnabled = BizRulesEnabled

WSCript.Echo "App BizRule After:" & AzApp.BizRulesEnabled

If Err.Number = 0 Then

WScript.Echo "BizRulesEnabled is updated successfully."

Else

WScript.Echo "BizRulesEnabled is NOT updated successfully."

End If

End if

控制整个授权存储的使用

通过在授权存储属性页的“限制”选项卡上配置授权规则限制,可以执行以下操作:

  • 对存储禁用授权规则和业务规则。

  • 设置超时值以限制允许脚本运行的最大时间长度。

  • 允许脚本在无超时的情况下运行。

有关详细信息,请参阅了解授权管理器存储限制

VBScript 示例

下面是始终授予权限的 VBScript 授权规则:

AzBizRuleContext.BusinessRuleResult = True

有关 VBScript 的详细信息,请参阅 VBScript (https://go.microsoft.com/fwlink/?linkid=65964)(可能为英文网页)。

JScript 示例

下面是始终授予权限的 JScript 授权规则。

AzBizRuleContext.BusinessRuleResult = true;

有关 JScript 的详细信息,请参阅 JScript (https://go.microsoft.com/fwlink/?linkid=65963)(可能为英文网页)。


目录