Allgemein
Standardmäßig kann auf den VSA-API-Webdienst mit gültigen VSA-Anmeldedaten weltweit von jeder IP-Adresse aus zugegriffen werden. In dieser Standardkonfiguration gelten gültige Kombinationen von Benutzername und Passwort als Authentifizierung von jedem beliebigen Rechner aus.
In jeder Konfiguration muss das Passwort vor dem Senden mit der Datei hash.dll
verschlüsselt werden, die vom VSA bereitgestellt wird. 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 Anfragen 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 AccessRules.xml
ist in drei Abschnitte unterteilt:
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 VSA-Administratorname. Der VSA-API-Webdienst verwendet dieselben Anmeldedaten und dieselbe Passwortverschlüsselung wie der VSA. Falls Sie also Ihr Passwort im VSA ändern, müssen Sie es auch in Ihrer Client-Implementierung des VSA-API-Webdiensts ä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 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>