Next Topic

Previous Topic

Book Contents

VSA API-webservice beveiliging

Algemeen

De VSA API Web Service is standaard bereikbaar vanaf elk IP-adres ter wereld met elke geldige VSA-referentie. In deze standaardconfiguratie worden geldige combinaties van gebruikersnaam en wachtwoord vanaf elke computer voor verificatie beoordeeld.

In elke configuratie moet de hash.dll die door de VSA is geleverd, worden gebruikt om het wachtwoord voor aanbieding te versleutelen. Implementatiegegevens voor de hash.dll zijn te vinden in het meegeleverde voorbeeld van het bronbestand.

Nadat een geslaagde aanvraag voor verificatie een sessie-ID heeft afgegeven, moet dit sessie-ID worden aangeboden bij elke aanroep van de service en is deze alleen geldig als hij is ontvangen vanaf het IP-adres waarvoor het is afgegeven. Na een periode van inactiviteit verloopt het afgegeven sessie-ID.

U kunt de beveiliging verbeteren door een AccesRules.xml-bestand te maken en gebruiken. Dit bestand wordt gebruikt door de VSA API Web Service om toegangsregels te definiëren aan de hand van de IP-adressen die aanvragen indienen. IP-filteren is een mechanisme dat gewoonlijk wordt gebruikt tussen zakelijke systemen om te garanderen dat alleen aanvragen worden gehonoreerd die afkomstig zijn van de servers van partners.

Het bestand AccesRules.xml is in drie secties verdeeld:

  • Standaard toegangsregels
  • IP-bereiken
  • Gebruikerstoewijzing

Opmerking: 127.0.0.1 (localhost) is altijd toegankelijk voor elke account, ongeacht de configuratie.

XML-structuur

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

Standaard toegangsregels

De elementen in deze sectie bepalen de toegangsregels voor de accounts die niet specifiek zijn genoemd in het deel Gebruikerstoewijzing.

<GrantAnyIPToUndefinedUsers/> waar/onwaar

waar: Iedere gebruiker die niet is opgenomen in UserMapping krijgt toegang vanaf elk IP-adres.

<GrantAllIPRangesToUndefinedUsers/> waar/onwaar

waar: Iedere gebruiker die niet is opgenomen in UserMapping krijgt toegang vanaf elk IP-adres dat is opgenomen in IPRanges.

<DenyAccessToUndefinedUsers/> waar/onwaar

waar: Iedere gebruiker die niet is opgenomen in UserMapping wordt de toegang geweigerd.

IP-bereiken

Deze sectie wordt gebruikt voor het definiëren van specifieke computers, of reeksen computers, op IP-adres, die gebruikt worden om gebruikers toegang te verlenen.

RangeID="integer"

Een willekeurig door de gebruiker ingesteld geheel getal, gebruikt ter verwijzing naar het bereik in UserMapping.

FromIPAddress="string"

Het eerste IP-adres. De eerste drie posities van de vier getallen moeten overeenkomen met ToIPAddress.

ToIPAddress=" string"

Het laatste IP-adres. De eerste drie posities van de vier getallen moeten overeenkomen met FromIPAddress.

RangeDescription=" string"

Beschrijving van het IP-bereik. Bijvoorbeeld: "Productieservers"

Gebruikerstoewijzing

UserName="string"

De naam van de VSA Admin. De VSA API Web Service gebruikt dezelfde referenties en wachtwoordversleuteling als VSA. Als u uw wachtwoord dus in VSA wijzigt, moet u het ook wijzigen in uw implementatie van de VSA API Web Service client.

RangeID="integer"

Verwijst naar een gedefinieerd IP-bereik in de sectie IP Ranges. Een gebruiker kan meerdere UserMapping-elementen hebben voor alle IP-bereiken vanwaar hij toegang heeft. Niet gebruikt als een van de onderstaande attributen Toekennen/Weigeren worden gebruikt.

GrantAllRanges="waar/onwaar"

waar: Gebruiker heeft toegang vanaf elk bereik gedefinieerd in de sectie IP Ranges.

GrantAnyIP=" waar/onwaar"

waar: Gebruiker heeft toegang vanaf elk IP-adres.

DenyAccess=" waar/onwaar"

waar: Gebruiker heeft geen toegang.

XML-bestand voorbeeld toegangsconfiguratie

<AccessRules>
	<DefaultAccessRules>
		<GrantAnyIPToUndefinedUsers>onwaar</GrantAnyIPToUndefinedUsers>
		<GrantAllIPRangesToUndefinedUsers>onwaar</GrantAllIPRangesToUndefinedUsers>
		<DenyAccessToUndefinedUsers>waar</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>