授权规则是以 VBScript 或 JScript 编写的脚本,可以将其包括在角色定义和任务定义中。授权规则将确定是否允许角色或任务。
通过使用授权规则,可使授权决策基于脚本可测试的所有条件。这些条件包括特权和权限、一天中的时间段、可支付费用限制、帐户余额或其他条件。
授权管理器不是为编写或调试授权规则而设计的。可以在文本编辑器(如记事本)、集成开发环境(如 Visual Studio .NET)或您选择的其他应用程序中编写脚本。授权规则通常由专业开发人员编写。
有关创建授权规则和使用授权管理器应用程序编程接口 (API) 的详细信息,请参阅
控制业务规则和授权规则的使用
控制每个客户端上的使用
从 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 的详细信息,请参阅
JScript 示例
下面是始终授予权限的 JScript 授权规则。
AzBizRuleContext.BusinessRuleResult = true;
有关 JScript 的详细信息,请参阅