Next Topic

Previous Topic

Book Contents

VSA API Web 服务安全

常规

默认情况下,使用任何有效的 VSA 用户证书通过世界上的任意 IP 地址均可访问 API Web 服务。在此默认配置下,有效的用户名/密码组合被视为源自任意计算机的验证。

在任意配置中,VSA 提供的 hash.dll 必须用于加密密码,以进行提交。hash.dll 的实施详细信息包含在提供的样本源代码中。

成功的验证请求发出 SessionID 后,此 SessionID 必须在调用每个服务的情况下提交,并仅在从发出它的 IP 地址中收到时才有效。发出的 SessionID 在一段不活动期间后将过期。

通过准备和部署 AccesRules.xml 文件可增强安全。此文件由 VSA API Web 服务使用,以基于从中收到请求的 IP 地址来定义访问规则。IP 筛选是业务到业务系统中普遍使用的一种机制,用于确保仅接受来自合作伙伴服务器的请求。

AccesRules.xml 文件分为三个部分:

  • 默认访问规则
  • IP 范围
  • 用户映射

注:127.0.0.1 (localhost) 始终具有对任何帐户的访问权限,而不管配置如何。

XML 结构

<AccessRules>
	<DefaultAccessRules>
		<GrantAnyIPToUndefinedUsers/>
		<GrantAllIPRangesToUndefinedUsers/>
		<DenyAccessToUndefinedUsers/>
	</DefaultAccessRules>
	<IPRanges>
		<IPRange RangeID="" FromIPAddress="" ToIPAddress="" RangeDescription=""/>
		<IPRange RangeID="" FromIPAddress="" ToIPAddress="" RangeDescription=""/>
	</IPRanges>
	<UserMapping>
		<User UserName="" RangeID="" GrantAllRanges="" GrantAnyIP="" DenyAccess=""/>
		<User UserName="" RangeID="" GrantAllRanges="" GrantAnyIP="" DenyAccess=""/>
	</UserMapping>
</AccessRules>

默认访问规则

此部分中的元素用于针对未专门在 UserMapping 部分中声明的帐户定义访问规则。

<GrantAnyIPToUndefinedUsers/> true/false

true:不在 UserMapping 中的任何用户可通过任意 IP 地址获得访问权限。

<GrantAllIPRangesToUndefinedUsers/> true/false

true:不在 UserMapping 中的任何用户通过 IPRanges 中包含的任意 IP 地址获得访问权限。

<DenyAccessToUndefinedUsers/> true/false

true:不在 UserMapping 中的任何用户无访问权限。

IPRanges

此部分用于按用来分配用户访问权限的 IP 定义具体的计算机,或计算机范围。

RangeID="integer"

可变参数,用户分配的整数,用户在 UserMapping 中指明范围。

FromIPAddress="string"

起始 IP 地址,自身包括在内。四组数字中的前三组必须与 ToIPAddress 匹配。

ToIPAddress=" string"

结束 IP 地址,自身包括在内。四组数字中的前三组必须与 FromIPAddress 匹配。

RangeDescription=" string"

对 IP 范围的描述。例如:“生产服务器”。

用户映射

UserName="string"

VSA 管理员名称。VSA API Web 服务与 VSA 使用相同的证书和密码加密。因此,如果在 VSA 中更改密码,请确保在 VSA API Web 服务客户端实施中也更改密码。

RangeID="integer"

用于指向在 IPRanges 部分中定义的 IP 范围。用户可以使用多个 UserMapping 元素来表达其可以从中进行访问的所有 IP 范围。该属性在使用了以下授予/拒绝属性之一时不适用。

GrantAllRanges="true/false"

true:用户有权访问在 IPRanges 部分中定义的任何范围。

GrantAnyIP=" true/false"

true:用户可从任意 IP 地址进行访问。

DenyAccess=" true/false"

true:用户无任何访问权限。

样本访问配置 XML

<AccessRules>
	<DefaultAccessRules>
		<GrantAnyIPToUndefinedUsers>false</GrantAnyIPToUndefinedUsers>
		<GrantAllIPRangesToUndefinedUsers>false</GrantAllIPRangesToUndefinedUsers>
		<DenyAccessToUndefinedUsers>true</DenyAccessToUndefinedUsers>
	</DefaultAccessRules>
	<IPRanges>
		<IPRange RangeID="1" FromIPAddress="192.168.214.01" ToIPAddress="192.168.214.10" RangeDescription="Partner X Production Web Farm"/>
		<IPRange RangeID="2" FromIPAddress="192.168.15.102" ToIPAddress="192.168.15.102" RangeDescription="Senior Developer Machine"/>
		<IPRange RangeID="3" FromIPAddress="192.168.15.105" ToIPAddress="192.168.15.109" RangeDescription="Sales Demo Machines"/>
		<IPRange RangeID="4" FromIPAddress="192.168.210.35" ToIPAddress="192.168.210.35" RangeDescription="Interal QA Machine"/>
	</IPRanges>
	<UserMapping>
		<User UserName="B2BMasterAdmin" RangeID="1" GrantAllRanges="false" GrantAnyIP="false" DenyAccess="false"/>
		<User UserName="DevTestAccount" RangeID="2" GrantAllRanges="false" GrantAnyIP="false" DenyAccess="false"/>
		<User UserName="SalesTestAccount" RangeID="3" GrantAllRanges="false" GrantAnyIP="false" DenyAccess="false"/>
		<User UserName="SalesTestAccount2" RangeID="3" GrantAllRanges="false" GrantAnyIP="false" DenyAccess="false"/>
		<User UserName="QAMasterAdmin" RangeID="4" GrantAllRanges="false" GrantAnyIP="false" DenyAccess="false"/>
		<User UserName="SalesTravellingTestAccount" RangeID="" GrantAllRanges="false" GrantAnyIP="true" DenyAccess="false"/>
		<User UserName="Bob" RangeID="" GrantAllRanges="true" GrantAnyIP="false" DenyAccess="false"/>
		<User UserName="Sally" RangeID="" GrantAllRanges="false" GrantAnyIP="false" DenyAccess="true"/>
	</UserMapping>
</AccessRules>

主题 : 发送反馈。 从内容表格的第一个主题下载此联机图书的 PDF 版本。