Programmation sécurisée avec l’adaptateur Siebel
Comment protéger les informations d’identification lorsque j’utilise le plug-in Visual Studio Add Adapter Service ?
Lorsque vous utilisez le plug-in Add Adapter Service Reference pour créer un client WCF, vous devez fournir un nom d’utilisateur et un mot de passe pour le système Siebel. Vous ne devez effectuer cette opération qu’à partir de l’onglet Sécurité de la boîte de dialogue Configurer l’adaptateur . En entrant les informations d’identification Siebel à partir de l’onglet Sécurité plutôt que directement dans le champ URI , vous assurez les éléments suivants :
Les informations d’identification ne s’affichent pas dans le champ URI de la boîte de dialogue Ajouter un plug-in de référence du service d’adaptateur dans laquelle toute personne ayant accès à l’écran de votre ordinateur peut les lire.
Les informations d’identification n’apparaissent pas dans le fichier de configuration généré par le plug-in Add Adapter Service Reference.
Pour plus d’informations sur la génération d’un client WCF à l’aide du plug-in Add Adapter Service Reference, notamment sur la façon d’entrer un nom d’utilisateur et un mot de passe pour le système Siebel, consultez Obtenir des métadonnées pour les opérations Siebel dans Visual Studio.
Quelles sont les meilleures pratiques pour définir des informations d’identification dans le code ?
WCF fournit la classe ClientCredentials pour vous aider à configurer les informations d’identification qu’un objet de communication client, tel qu’un ChannelFactory, utilise pour s’authentifier auprès d’un service. En utilisant la classe ClientCredentials , vous vous assurez que WCF accepte tous les mécanismes d’authentification spécifiés dans la pile de canaux de cet objet et les applique à l’échange entre votre client et le service.
Étant donné que l’adaptateur Siebel est hébergé in-process avec son application consommatrice, il n’est pas impératif d’utiliser la classe ClientCredentials pour définir des informations d’identification sur les objets de communication client utilisés par l’application consommatrice. Il est toutefois considéré comme une bonne pratique de le faire.
L’adaptateur Siebel encourage l’utilisation de la classe ClientCredentials via la propriété de liaison AcceptCredentialsInUri . Cette propriété spécifie si l’adaptateur accepte le nom d’utilisateur et le mot de passe du système Siebel dans l’URI de connexion. AcceptCredentialsInUri a la valeur par défaut false, ce qui signifie que l’adaptateur lève une exception si l’URI de connexion contient des informations d’identification. Vous pouvez définir AcceptCredentialsInUri sur true pour fournir des informations d’identification dans l’URI de connexion. En fait, vous devez le faire dans certains cas ; par exemple, lorsque vous utilisez l’outil Utilitaire de métadonnées ServiceModel (svcutil.exe) pour générer une classe de client WCF pour les artefacts système Siebel.
L’exemple suivant montre comment utiliser la classe Credentials pour définir des informations d’identification pour le système Siebel sur un ChannelFactory.
// 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();
L’exemple suivant montre comment utiliser la classe ClientCredentials pour définir les informations d’identification du système Siebel sur un client WCF.
// 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();
Comment puis-je fournir un échange de données plus sécurisé au-delà des limites du processus ?
L’adaptateur Siebel est hébergé dans le processus avec l’application ou le service qui l’utilise. Étant donné que l’adaptateur est hébergé en cours de traitement avec le consommateur, il n’est pas nécessaire de fournir une sécurité sur les messages échangés entre le consommateur et l’adaptateur Siebel. Toutefois, si l’application ou le service consommateur envoie des messages qui contiennent des informations de base de données sensibles au-delà d’une limite de processus à un autre service ou client, vous devez prendre des mesures pour assurer une protection adéquate de ces données dans votre environnement. Windows Communication Foundation (WCF) offre de nombreuses options pour sécuriser les messages envoyés entre les clients et les services. Pour plus d’informations sur la sécurisation des messages envoyés entre les clients et les services dans WCF, consultez Sécurisation des services et des clients. Pour plus d’informations générales sur les fonctionnalités de sécurité fournies par WCF, consultez Sécurité Windows Communication Foundation.
Voir aussi
Sécuriser vos applications Siebel
Bonnes pratiques pour sécuriser l’adaptateur Siebel