Next Topic

Previous Topic

Book Contents

Segurança da API do serviço Web do VSA

Geral

A API do serviço Web do VSA é acessível, por padrão, de qualquer endereço IP no mundo usando quaisquer credenciais de usuário do VSA válidas. Nesta configuração padrão, as combinações válidas de nome de usuario / senha são consideradas para a autenticação originária de qualquer máquina.

Em qualquer configuração, a hash.dll fornecida pelo VSA precisa ser usada para criptografar a senha para envio. Os detalhes da implementação para a hash.dll estão contidos no código fonte de amostra fornecido.

Após uma solicitação de Autenticação com êxito emitir uma ID de sessão, esta ID de sessão precisa ser submetida com cada chamada de serviço, e somente é válida quando recebida do endereço IP do qual foi emitida.. A ID da sessão emitida expirar após uma período de inatividade.

A segurança pode ser aprimorada ao preparar e implementar um arquivo AccesRules.xml. Este arquivo é usado pela API do serviço Web do VSA para definir regras de acesso com base nos endereços IP dos quais as solicitações são recebidas. O filtro de IP é um mecanismo normalmente usado em sistemas de empresa para empresa para assegurar que as solicitações são somente honradas de servidores de parceiros.

O arquivo AccessRules.xml está dividido em três seções:

Nota: 127.0.0.1 (localhost) sempre tem acesso a qualquer conta, independentemente da configuração.

Estrutura 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>

Regras padrão de acesso

O elementos nesta seção definem as regras de acesso para as contas que não estão especificamente endereçadas na seção Mapeamento do usuário.

<GrantAnyIPToUndefinedUsers/> true/false

verdadeiro: Qualquer usuário que não esteja no Mapeamento do usuário obtém o acesso de qualquer endereço IP.

<GrantAllIPRangesToUndefinedUsers/> true/false

verdadeiro: Qualquer usuário que não esteja no Mapeamento do usuário obtém o acesso de qualquer endereço IP contido nas Faixas de IP.

<DenyAccessToUndefinedUsers/> true/false

verdadeiro: Qualquer usuário que não esteja no Mapeamento do usuário tem o acesso negado.

Faixas IP

Esta seção é usada para definir máquinas específicas, ou faixas de máquinas, por IP, que são usadas para atribuir o acesso do usuário.

RangeID="integer"

Um inteiro arbitrário atribuído ao usuário usado para se referir a Faixa no Mapeamento do usuário.

FromIPAddress="string"

Endereço IP incial, inclusive. As primeiras três posições do quarteto precisam coincidir com o Para o endereço IP.

ToIPAddress=" string"

Endereço IP final, inclusive. As primeiras três posições do quarteto precisam coincidir com o Do endereço IP.

RangeDescription=" string"

Descrição da Faixa de IP. Por exemplo: “Servidores de produção”.

Mapeamento de usuários

UserName="string"

O nome de administrador do VSA. A API do serviço Web do VSA usa a mesma criptografia de credenciais e senha que o VSA. Portanto, se você altera sua senha no VSA, certifique-se de alterá-la também na implementação cliente da API do serviço Web do VSA.

RangeID="integer"

Usada para a pontar para uma Faixa de IP definida na seção Faixas de IP. Um usuário pode ter múltiplos elementos de Mapeamento de usuário para expressar todas as Faixas IP da qual ele tem acesso. Não usada quando os atributos Conceder / Negar abaixo são usados.

GrantAllRanges="true/false"

verdadeiro: O usuário tem acesso de qualquer faixa definida na seção Faixas de IP.

GrantAnyIP=" true/false"

verdadeiro: O usuário tem acesso de qualquer endereço IP.

DenyAccess=" true/false"

verdadeiro: O usuário não tem acesso,

XML de amostra de configuração de acesso

<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>