Freigeben über


Sichere Programmierung mit dem SAP-Adapter

Wie schütze ich Anmeldeinformationen, wenn ich das Visual Studio-Plug-In "Adapterdienstreferenz hinzufügen" verwende?

Wenn Sie das Add Adapter Service Reference Plug-In verwenden, um einen WCF-Client zu erstellen, müssen Sie einen Benutzernamen und ein Kennwort für das SAP-System angeben. Sie sollten dies nur über die Registerkarte Sicherheit im Dialogfeld Adapter konfigurieren tun. Indem Sie die SAP-Anmeldeinformationen auf der Registerkarte Sicherheit und nicht direkt in das Feld Uri eingeben, stellen Sie Folgendes sicher:

  • Die Anmeldeinformationen werden nicht im Feld URI des Dialogfelds Adapterdienstverweis-Plug-In hinzufügen angezeigt, in dem jeder Benutzer mit Zugriff auf ihren Computerbildschirm sie lesen kann.

  • Die Anmeldeinformationen werden nicht in der Konfigurationsdatei angezeigt, die vom Add Adapter Service Reference Plug-In generiert wird.

    Weitere Informationen zum Generieren eines WCF-Clients mithilfe des Add Adapter Service Reference Plug-In, einschließlich der Eingabe eines Benutzernamens und kennworts für das SAP-System, finden Sie unter Abrufen von Metadaten für SAP-Vorgänge in Visual Studio.

Was sind bewährte Methoden zum Festlegen von Anmeldeinformationen im Code?

WCF stellt die ClientCredentials-Klasse bereit, mit der Sie die Anmeldeinformationen konfigurieren können, die ein Clientkommunikationsobjekt, z. B. eine ChannelFactory, verwendet, um sich bei einem Dienst zu authentifizieren. Mithilfe der ClientCredentials-Klasse stellen Sie sicher, dass WCF alle Authentifizierungsmechanismen verwendet, die im Kanalstapel dieses Objekts angegeben sind, und sie auf den Austausch zwischen Ihrem Client und dem Dienst anwendet.

Da der SAP-Adapter prozessintern mit seiner verbrauchenden Anwendung gehostet wird, ist es nicht zwingend erforderlich, die ClientCredentials-Klasse zu verwenden, um Anmeldeinformationen für die Clientkommunikationsobjekte festzulegen, die die verwendende Anwendung verwendet. Es wird jedoch als bewährte Praxis angesehen, dies zu tun.

Der SAP-Adapter empfiehlt die Verwendung der ClientCredentials-Klasse über die AcceptCredentialsInUri-Bindungseigenschaft . Diese Eigenschaft gibt an, ob der Adapter den Benutzernamen und das Kennwort für das SAP-System im Verbindungs-URI akzeptiert. AcceptCredentialsInUri ist standardmäßig false. Dies bedeutet, dass der Adapter eine Ausnahme auslöst, wenn der Verbindungs-URI Anmeldeinformationen enthält. Sie können AcceptCredentialsInUri auf true festlegen, um Anmeldeinformationen im Verbindungs-URI anzugeben. In der Tat müssen Sie dies in bestimmten Fällen tun; Beispielsweise, wenn Sie einen Verbindungs-URI für einen Dienstenhostendpunkt oder für einen IReplyChannel in eingehenden Szenarien angeben.

Im folgenden Beispiel wird gezeigt, wie die ClientCredentials-Klasse verwendet wird, um Anmeldeinformationen für das SAP-System auf einem WCF-Client festzulegen.

SAPBinding binding = new SAPBinding();  
  
// Set endpoint address  
EndpointAddress endpointAddress = new EndpointAddress("sap://CLIENT=800;LANG=EN;@a/YourSAPHost/00?RfcSdkTrace=False&AbapDebug=False&UseSapGui=Without");  
  
// Create client and set credentials  
RfcClient rfcClient = new RfcClient(binding, endpointAddress);  
rfcClient.ClientCredentials.UserName.UserName = "YourUserName";  
rfcClient.ClientCredentials.UserName.Password = "YourPassword";  

Wie kann ich für einen sichereren Datenaustausch über Prozessgrenzen hinweg sorgen?

Der SAP-Adapter wird prozessintern mit der Anwendung oder dem Dienst gehostet, die ihn verwendet. Da der Adapter prozessintern mit dem Consumer gehostet wird, ist es nicht erforderlich, Sicherheit für Nachrichten bereitzustellen, die zwischen dem Consumer und dem SAP-Adapter ausgetauscht werden. Wenn die verwendende Anwendung oder der Dienst jedoch Nachrichten sendet, die vertrauliche Datenbankinformationen über eine Prozessgrenze hinweg an einen anderen Dienst oder Client enthalten, sollten Sie Maßnahmen ergreifen, um einen angemessenen Schutz für diese Daten in Ihrer Umgebung zu gewährleisten. Windows Communication Foundation (WCF) bietet viele Optionen zum Schützen von Nachrichten, die zwischen Clients und Diensten gesendet werden. Weitere Informationen zum Schützen von Nachrichten, die zwischen Clients und Diensten in WCF gesendet werden, finden Sie unter Sichern von Diensten und Clients. Weitere allgemeine Informationen zu Sicherheitsfeatures, die WCF bereitstellt, finden Sie unter Windows Communication Foundation-Sicherheit.

Weitere Informationen

Bewährte Methoden zum Schützen des SAP-Adapters
Sichern Ihrer SAP-Anwendung