Next Topic

Previous Topic

Book Contents

VSA-API-Webdienst - Sicherheit

Allgemein

Auf den VSA-API-Webdienst kann mit gültigen VSA-Anmeldedaten standardmäßig von jeder IP-Adresse weltweit zugegriffen werden. In dieser Standardkonfiguration gelten gültige Kombinationen von Benutzername und Passwort als Authentifizierung von jedem beliebigen Rechner aus.

In jeder Konfiguration muss die vom VSA bereitgestellte Datei hash.dll für die Verschlüsselung des Passworts vor dem Einsenden verwendet werden. Implementierungsanweisungen für die Datei hash.dll sind im Beispiel-Quellcode enthalten.

Sobald eine erfolgreiche Authentifizierungsanforderung eine Sitzungs-ID ausgibt, muss diese Sitzungs-ID bei jedem Dienstaufruf eingesendet werden. Sie ist zudem nur dann gültig, wenn sie von der ID-Adresse empfangen wird, an die sie ausgegeben wurde. Die ausgegebene Sitzungs-ID läuft nach einer bestimmten Periode der Inaktivität ab.

Sie können die Sicherheit erhöhen, indem Sie eine Datei AccesRules.xml erstellen und bereitstellen. Anhand dieser Datei kann der VSA-API-Webdienst Zugriffsregeln basierend auf den IP-Adressen definieren, von denen Anforderungen empfangen werden. IP-Filterung ist ein Mechanismus, der häufig in Business-to-Business-Systemen eingesetzt wird, um sicherzustellen, dass Anforderungen nur von den Servern des Partners beantwortet werden.

Die Datei AccesRules.xml ist in drei Abschnitte unterteilt:

  • Standard-Zugriffsregeln
  • IP-Bereiche
  • Benutzerzuordnung

Hinweis: 127.0.0.1 (localhost) hat immer Zugriff auf jedes Konto, unabhängig von der Konfiguration.

XML-Struktur

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

Standard-Zugriffsregeln

Die Elemente in diesem Abschnitt definieren die Zugriffsregeln für diejenigen Konten, auf die im Abschnitt "Benutzerzuordnung" nicht eigens eingegangen wird.

<GrantAnyIPToUndefinedUsers/> true/false

true: Jeder Benutzer nicht in UserMapping erhält Zugriff von jeder IP-Adresse aus.

<GrantAllIPRangesToUndefinedUsers/> true/false

true: Jeder Benutzer nicht in UserMapping erhält Zugriff von jeder IP-Adresse in bestimmten IP-Bereichen aus.

<DenyAccessToUndefinedUsers/> true/false

true: Jedem Benutzer nicht in UserMapping wird der Zugriff verweigert.

IP-Bereiche

In diesem Abschnitt werden bestimmte Rechner oder Bereiche von Rechnern nach IP-Adresse definiert, über die Benutzerzugriff zugewiesen werden kann.

RangeID="integer"

Eine frei vom Benutzer zugewiesene Ganzzahl, über die in UserMapping auf den Bereich verwiesen werden kann.

FromIPAddress="string"

Start-IP-Adresse (einschließlich). Die ersten drei Positionen der Vierergruppe müssen der ToIPAddress entsprechen.

ToIPAddress=" string"

End-IP-Adresse (einschließlich). Die ersten drei Positionen der Vierergruppe müssen der FromIPAddress entsprechen.

RangeDescription=" string"

Beschreibung des IP-Bereichs. Zum Beispiel: "Produktionsserver".

Benutzerzuordnung

UserName="string"

Der Name des VSA-Administrators. Der VSA-API-Webdienst verwendet die gleichen Anmeldedaten und Passwortverschlüsselung wie der VSA. Falls Sie also im VSA Ihr Passwort ändern, müssen Sie es auch in Ihrer Implementierung des VSA-API-Webdienst-Clients ändern.

RangeID="integer"

Hiermit verweisen Sie im Abschnitt "IP-Bereiche" auf einen definierten IP-Bereich. Ein Benutzer kann mehrere UserMapping-Elemente verwenden, um alle IP-Bereiche zu beschreiben, von denen aus er Zugriff besitzt. Diese Funktion wird nicht verwendet, wenn eines der nachstehenden Gewähren-/Ablehnen-Attribute verwendet wird.

GrantAllRanges="true/false"

true: Der Benutzer hat Zugriff von jedem im Abschnitt "IP-Bereiche" definierten Bereich.

GrantAnyIP=" true/false"

true: Der Benutzer hat Zugriff von jeder IP-Adresse.

DenyAccess=" true/false"

true: Der Benutzer hat keinerlei Zugriff.

Beispiel-XML für Zugriffskonfiguration

<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 Produktions-Webfarm"/>
		<IPRange RangeID="2" FromIPAddress="192.168.15.102" ToIPAddress="192.168.15.102" RangeDescription="Rechner des Hauptentwicklers"/>
		<IPRange RangeID="3" FromIPAddress="192.168.15.105" ToIPAddress="192.168.15.109" RangeDescription="Rechner für Verkaufsdemo"/>
		<IPRange RangeID="4" FromIPAddress="192.168.210.35" ToIPAddress="192.168.210.35" RangeDescription="Rechner für interne QAs"/>
	</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>