Freigeben über


Sicheres Programmieren mit dem Siebel-Adapter

Wie kann ich Anmeldeinformationen schützen, 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 Siebel-System angeben. Sie sollten dies nur über die Registerkarte Sicherheit im Dialogfeld Adapter konfigurieren tun. Indem Sie die Siebel-Anmeldeinformationen auf der Registerkarte Sicherheit anstelle 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 sie von jeder Person gelesen werden können, die Zugriff auf Ihren Computerbildschirm hat.

  • 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-Ins, einschließlich der Eingabe eines Benutzernamens und kennworts für das Siebel-System, finden Sie unter Abrufen von Metadaten für Siebel-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 diese auf den Austausch zwischen Ihrem Client und dem Dienst anwendet.

Da der Siebel-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 verbrauchende Anwendung verwendet. Dies gilt jedoch als bewährte Praxis.

Der Siebel-Adapter fördert die Verwendung der ClientCredentials-Klasse über die AcceptCredentialsInUri-Bindungseigenschaft . Diese Eigenschaft gibt an, ob der Adapter den Benutzernamen und das Kennwort für das Siebel-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 das ServiceModel Metadata Utility Tool (svcutil.exe) verwenden, um eine WCF-Clientklasse für Siebel-Systemartefakte zu generieren.

Das folgende Beispiel zeigt, wie Sie mit der Credentials-Klasse Anmeldeinformationen für das Siebel-System in einer ChannelFactory festlegen.

// Create binding and endpoint  
SiebelBinding binding = new SiebelBinding();  
EndpointAddress endpointAddress = new EndpointAddress("siebel://Siebel_server:1234?SiebelObjectManager=obj_mgr&SiebelEnterpriseServer=entserver&Language=enu ");  
  
// Create the channel factory   
ChannelFactory<IRequestChannel> factory = new ChannelFactory<IRequestChannel>(binding, endpointAddress))  
  
// Set user name and password  
factory.Credentials.UserName.UserName = "YourUserName";  
factory.Credentials.UserName.Password = "YourPassword";  
  
// Open the channel factory  
factory.Open();  

Das folgende Beispiel zeigt, wie Sie mithilfe der ClientCredentials-Klasse Anmeldeinformationen für das Siebel-System auf einem WCF-Client festlegen.

// Initialize a new client for the SQLEXECUTE operation from configuration   
BusinessObjects_Account_Account_OperationClient accountAccountClient = new BusinessObjects_Account_Account_OperationClient ("SiebelBinding_BusinessObjects_Account_Account_Operation");  
  
// Set user name and password  
accountAccountClient.ClientCredentials.UserName.UserName = "YourUserName";  
accountAccountClient.ClientCredentials.UserName.Password = "YourPassword";  
  
// Open the client  
accountAccountClient.Open();  

Wie kann ich einen sichereren Datenaustausch über Prozessgrenzen hinweg bereitstellen?

Der Siebel-Adapter wird prozessintern mit der Anwendung oder dem Dienst gehostet, von der er verwendet wird. Da der Adapter prozessintern mit dem Consumer gehostet wird, muss keine Sicherheit für Nachrichten bereitgestellt werden, die zwischen dem Consumer und dem Siebel-Adapter ausgetauscht werden. Wenn die verwendende Anwendung oder der Dienst jedoch Nachrichten mit vertraulichen Datenbankinformationen über eine Prozessgrenze an einen anderen Dienst oder Client sendet, 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 sicherheitsrelevanten Features, die WCF bereitstellt, finden Sie unter Windows Communication Foundation-Sicherheit.

Weitere Informationen

Sichern der Siebel-Anwendungen
Bewährte Methoden zum Schützen des Siebel-Adapters