Compartir a través de


Programación segura con el adaptador de SAP

¿Cómo se protegen las credenciales al usar el complemento Agregar referencia del servicio adaptador de Visual Studio?

Al usar el complemento Agregar referencia de servicio de adaptador para crear un cliente WCF, debe proporcionar un nombre de usuario y una contraseña para el sistema SAP. Solo debe hacerlo desde la pestaña Seguridad del cuadro de diálogo Configurar adaptador . Al escribir las credenciales de SAP en la pestaña Seguridad en lugar de directamente en el campo URI , asegúrese de lo siguiente:

  • Las credenciales no se mostrarán en el campo URI del cuadro de diálogo Add Adapter Service Reference Plug-in (Agregar complemento de referencia del servicio adaptador), donde cualquier persona con acceso a la pantalla del equipo puede leerlas.

  • Las credenciales no aparecerán en el archivo de configuración que genera el complemento Agregar referencia del servicio adaptador.

    Para obtener más información sobre cómo generar un cliente WCF mediante el complemento Agregar referencia del servicio adaptador, incluido cómo escribir un nombre de usuario y una contraseña para el sistema SAP, vea Obtener metadatos para operaciones de SAP en Visual Studio.

¿Qué son los procedimientos recomendados para establecer credenciales en el código?

WCF proporciona la clase ClientCredentials para ayudarle a configurar las credenciales que un objeto de comunicación de cliente, como ChannelFactory, usa para autenticarse con un servicio. Mediante el uso de la clase ClientCredentials , asegúrese de que WCF toma los mecanismos de autenticación especificados en la pila de canales de ese objeto y los aplica al intercambio entre el cliente y el servicio.

Dado que el adaptador de SAP se hospeda en proceso con su aplicación de consumo, no es imperativo usar la clase ClientCredentials para establecer credenciales en los objetos de comunicación de cliente que usa la aplicación de consumo. Sin embargo, se considera una buena práctica hacerlo.

El adaptador de SAP fomenta el uso de la clase ClientCredentials a través de la propiedad de enlace AcceptCredentialsInUri . Esta propiedad especifica si el adaptador aceptará el nombre de usuario y la contraseña del sistema SAP en el URI de conexión. AcceptCredentialsInUri tiene como valor predeterminado false, lo que significa que el adaptador producirá una excepción si el URI de conexión contiene credenciales. Puede establecer AcceptCredentialsInUri en true para proporcionar credenciales en el URI de conexión. De hecho, debe hacer esto en determinados casos; por ejemplo, al especificar un URI de conexión para un punto de conexión de host de servicio o para un IReplyChannel en escenarios de entrada.

En el ejemplo siguiente se muestra cómo usar la clase ClientCredentials para establecer credenciales para el sistema SAP en un cliente 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";  

¿Cómo puedo proporcionar un intercambio de datos más seguro a través de los límites del proceso?

El adaptador de SAP se hospeda en proceso con la aplicación o el servicio que lo consume. Dado que el adaptador está hospedado en proceso con el consumidor, no es necesario proporcionar seguridad en los mensajes intercambiados entre el consumidor y el adaptador de SAP. Sin embargo, si la aplicación o el servicio que consume envía mensajes que contienen información confidencial de la base de datos a través de un límite de proceso a otro servicio o cliente, debe tomar medidas para proporcionar una protección adecuada para estos datos en su entorno. Windows Communication Foundation (WCF) proporciona muchas opciones para ayudar a proteger los mensajes enviados entre clientes y servicios. Para obtener más información sobre cómo ayudar a proteger los mensajes enviados entre clientes y servicios en WCF, consulte Protección de servicios y clientes. Para obtener más información general sobre las características de seguridad que proporciona WCF, consulte Seguridad de Windows Communication Foundation.

Consulte también

Procedimientos recomendados para proteger el adaptador de SAP
Proteger las aplicaciones SAP