Sécuriser la programmation avec l’adaptateur SAP
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 SAP. 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 SAP à 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 SAP, consultez Obtenir des métadonnées pour les opérations SAP 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 SAP 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 SAP 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 SAP 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 spécifiez un URI de connexion pour un point de terminaison d’hôte de service ou pour un IReplyChannel dans les scénarios entrants.
L’exemple suivant montre comment utiliser la classe ClientCredentials pour définir des informations d’identification pour le système SAP sur un client WCF.
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";
Comment puis-je fournir un échange de données plus sécurisé au-delà des limites du processus ?
L’adaptateur SAP est hébergé en cours avec l’application ou le service qui l’utilise. Étant donné que l’adaptateur est hébergé in-process 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 SAP. 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
Bonnes pratiques pour sécuriser l’adaptateur SAP
Sécuriser vos applications SAP