Condividi tramite


Programmazione sicura con l'adapter Siebel

Come si proteggono le credenziali quando si usa il plug-in Add Adapter Service Reference di Visual Studio?

Quando si usa il plug-in Aggiungi riferimento al servizio adapter per creare un client WCF, è necessario specificare un nome utente e una password per il sistema Siebel. È consigliabile eseguire questa operazione solo dalla scheda Sicurezza della finestra di dialogo Configura adattatore . Immettendo le credenziali Siebel dalla scheda Sicurezza anziché direttamente nel campo URI , assicurarsi quanto segue:

  • Le credenziali non verranno visualizzate nel campo URI della finestra di dialogo Aggiungi plug-in di riferimento al servizio adapter in cui chiunque abbia accesso alla schermata del computer può leggerli.

  • Le credenziali non verranno visualizzate nel file di configurazione generato dal plug-in Aggiungi riferimento al servizio adapter.

    Per altre informazioni su come generare un client WCF usando il plug-in Aggiungi riferimento al servizio adapter, incluso come immettere un nome utente e una password per il sistema Siebel, vedere Ottenere metadati per operazioni Siebel in Visual Studio.

Quali sono le procedure consigliate per l'impostazione delle credenziali nel codice?

WCF fornisce la classe ClientCredentials per configurare le credenziali usate da un oggetto di comunicazione client, ad esempio ChannelFactory, per l'autenticazione con un servizio. Usando la classe ClientCredentials , assicurarsi che WCF usi qualsiasi meccanismo di autenticazione specificato nello stack di canali dell'oggetto e li applichi allo scambio tra il client e il servizio.

Poiché l'adattatore Siebel è ospitato in-process con l'applicazione che utilizza, non è fondamentale usare la classe ClientCredentials per impostare le credenziali negli oggetti di comunicazione client usati dall'applicazione che utilizza l'applicazione. Si tratta tuttavia di una buona prassi.

L'adapter Siebel incoraggia l'uso della classe ClientCredentials tramite la proprietà di associazione AcceptCredentialsInUri . Questa proprietà specifica se l'adattatore accetterà il nome utente e la password per il sistema Siebel nell'URI di connessione. AcceptCredentialsInUri per impostazione predefinita è false, il che significa che l'adattatore genererà un'eccezione se l'URI di connessione contiene credenziali. È possibile impostare AcceptCredentialsInUri su true per specificare le credenziali nell'URI di connessione. Infatti, è necessario farlo in determinati casi; Ad esempio, quando si usa lo strumento utilità metadati ServiceModel (svcutil.exe) per generare una classe client WCF per gli artefatti di sistema Siebel.

Nell'esempio seguente viene illustrato come usare la classe Credentials per impostare le credenziali per il sistema Siebel in 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();  

Nell'esempio seguente viene illustrato come usare la classe ClientCredentials per impostare le credenziali per il sistema Siebel in 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();  

Come è possibile fornire uno scambio di dati più sicuro tra i limiti dei processi?

L'adattatore Siebel è ospitato in-process con l'applicazione o il servizio che lo utilizza. Poiché l'adattatore è ospitato in-process con il consumer, non è necessario fornire sicurezza sui messaggi scambiati tra il consumer e l'adapter Siebel. Tuttavia, se l'applicazione o il servizio che usa invia messaggi che contengono informazioni riservate sul database attraverso un limite di processo a un altro servizio o client, è necessario adottare misure per garantire una protezione adeguata per questi dati nell'ambiente in uso. Windows Communication Foundation (WCF) offre molte opzioni per proteggere i messaggi inviati tra client e servizi. Per altre informazioni su come proteggere i messaggi inviati tra client e servizi in WCF, vedere Protezione di servizi e client. Per informazioni più generali sulle funzionalità di sicurezza offerte da WCF, vedere Sicurezza di Windows Communication Foundation.

Vedere anche

Proteggere le applicazioni Siebel
Procedure consigliate per proteggere l'adapter Siebel