Next Topic

Previous Topic

Book Contents

Sicurezza Web Service API VSA

Generale

Il Web Service API VSA è accessibili, di default, da qualsiasi indirizzo IP nel mondo utilizzando delle credenziali utente VSA valide. In questa configurazione predefinita, le combinazioni valide username/password sono considerate per l'autenticazione come originate da qualsiasi macchina.

In qualsiasi configurazione, è necessario usare hash.dll, fornito da VSA, per crittografare la password per l'invio. I dettagli di implementazione di hash.dll sono contenuti nel codice sorgente di esempio fornito.

Una volta che una richiesta di Autenticazione corretta emette un SessionID, questo SessionID deve essere inviato ad ogni chiamata del servizio, ed è valido solo se ricevuto dall'indirizzo IP verso il quale era stato emesso. Il SessionID emesso scade dopo un periodo di inattività.

La sicurezza può essere ulteriormente migliorata preparando e implementando un file AccesRules.xml. Questo file viene utilizzato dal Web Service API VSA per definire le regole di accesso basate sulle richieste degli indirizzi IP da cui sono state ricevute. Il filtraggio IP è un metodo comunemente usato nei sistemi business-to-business per garantire che le richieste vengano soddisfatte solo dai server del partner.

Il file AccesRules.xml è diviso in tre sezioni:

  • Regole di accesso predefinite
  • Intervalli IP
  • Mappatura utenti

Nota: 127.0.0.1 (localhost) ha sempre accesso per qualsiasi account, indipendentemente dalla configurazione.

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

Regole di accesso predefinite

Gli elementi in questa sezione definiscono le regole di accesso per gli account che non vengono indirizzati specificamente nella sezione Mappatura utenti.

<GrantAnyIPToUndefinedUsers/> true/false

true (vero): Qualsiasi utente non presente in UserMapping ha accesso da qualsiasi indirizzo IP.

<GrantAllIPRangesToUndefinedUsers/> true/false

true (vero): Qualsiasi utente non presente in UserMapping ha accesso da qualsiasi indirizzo IP contenuto in IPRanges.

<DenyAccessToUndefinedUsers/> true/false

true (vero): A qualsiasi utente non presente in UserMapping viene negato l'accesso.

Intervalli IP

Questa sezione viene usata per definire macchine specifiche, o intervalli di macchine, per IP, utilizzate per assegnare l'accesso utente.

RangeID="integer"

Un intero arbitrario assegnato dall'utente per fare riferimento all'intervallo in UserMapping.

FromIPAddress="string"

Indirizzo IP iniziale, completo. Le prime tre posizioni del gruppo di quattro cifre devono corrispondere a ToIPAddress.

ToIPAddress="string"

Indirizzo IP finale, completo. Le prime tre posizioni del gruppo di quattro cifre devono corrispondere a FromIPAddress.

RangeDescription=" string"

Descrizione dell'intervallo IP. Per esempio: “Server di produzione”.

Mappatura utenti

UserName="string"

Il nome dell'amministratore VSA. Il Web Service API VSA utilizza le stesse credenziali e crittografia password di VSA. Pertanto, se la password in VSA è stata modificata, assicurarsi di modificarla anche nell'implementazione del client del Web Service API VSA.

RangeID="integer"

Utilizzato per puntare a un intervallo IP definito nella sezione Intervalli IP. Un utente può avere diversi elementi UserMapping per esprimere tutti gli Intervalli IP da cui ha accesso. Non utilizzato se viene utilizzato uno degli attributi Grant / Deny (Concedi / Nega) sotto indicati.

GrantAllRanges="true/false"

true (vero): L'utente ha accesso da qualsiasi intervallo definito nella sezione Intervalli IP.

GrantAnyIP=" true/false"

true (vero): L'utente ha accesso da qualsiasi indirizzo IP.

DenyAccess=" true/false"

true (vero): L'utente non ha nessun accesso.

XML di esempio per configurazione di accesso

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