<messaggio> di <basicHttpBinding>
Definisce le impostazioni per la sicurezza a livello di messaggio di <basicHttpBinding>.
<Configurazione>
<system.serviceModel>
<Associazioni>
<basicHttpBinding>
<Associazione>
<Sicurezza>
<Messaggio>
Sintassi
<message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
clientCredentialType="UserName/Certificate" />
Attributi ed elementi
Nelle sezioni seguenti vengono descritti attributi, elementi figlio ed elementi padre.
Attributi
Attributo | Descrizione |
---|---|
algorithmSuite | Imposta la crittografia dei messaggi e gli algoritmi di incapsulamento della chiave. L'attributo è di tipo SecurityAlgorithmSuite, che specifica gli algoritmi e le dimensioni della chiave. Questi algoritmi sono associati a quelli indicati nella specifica Security Policy Language (WS-SecurityPolicy). Il valore predefinito è Basic256 . |
clientCredentialType | Specifica il tipo di credenziale da usare se l'autenticazione client viene eseguita usando la sicurezza basata sul messaggio. Il valore predefinito è UserName . |
Attributo clientCredentialType
Valore | Descrizione |
---|---|
UserName | - Richiede che il client venga autenticato nel server con credenziali UserName. Questa credenziale deve essere specificata usando le< credenziali client.> - WCF non supporta l'invio di un digest della password o la derivazione di chiavi tramite password e l'uso di tali chiavi per la sicurezza dei messaggi. Wcf impone pertanto che il trasporto venga protetto quando si usano le credenziali UserName. Per basicHttpBinding , questo richiede l'impostazione di un canale SSL. |
Certificato | Richiede che l'autenticazione del client sul server avvenga mediante un certificato. Le credenziali client in questo caso devono essere specificate usando <clientCredentials> e <clientCertificate>. Inoltre, quando si usa la modalità di sicurezza del messaggio, è necessario eseguire il provisioning del client con il certificato del servizio. In questo caso, è necessario specificare le credenziali del servizio usando ClientCredentials l'elemento classe o ClientCredentials comportamento e specificando il certificato del servizio usando serviceCertificate<>. |
Elementi figlio
Nessuno
Elementi padre
Elemento | Descrizione |
---|---|
<Sicurezza> | Definisce le funzionalità di sicurezza per basicHttpBinding<>. |
Esempio
In questo esempio viene dimostrato come implementare un'applicazione che usa basicHttpBinding e la sicurezza del messaggio. Nel seguente esempio di configurazione di un servizio, la definizione dell'endpoint specifica basicHttpBinding e fa riferimento a una configurazione di associazione denominata Binding1
. Il certificato usato dal servizio per l'autenticazione con il client è impostato nella sezione behaviors
del file di configurazione sotto l'elemento serviceCredentials
. Anche la modalità di convalida applicata al certificato usato dal servizio per l'autenticazione con il client è impostata nella sezione behaviors
del file di configurazione sotto l'elemento clientCertificate
.
Gli stessi dettagli sull'associazione e la sicurezza sono specificati nel file di configurazione del client.
<system.serviceModel>
<services>
<service name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service" />
</baseAddresses>
</host>
<!-- this endpoint is exposed at the base address provided by host: http://localhost:8000/ServiceModelSamples/service -->
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- the mex endpoint is exposed at http://localhost:8000/ServiceModelSamples/service/mex -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<bindings>
<basicHttpBinding>
<!-- This configuration defines the SecurityMode as Message and
the clientCredentialType as Certificate. -->
<binding name="Binding1">
<security mode = "Message">
<message clientCredentialType="Certificate" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="False" />
<!-- The serviceCredentials behavior allows one to define a service certificate.
A service certificate is used by a client to authenticate the service and provide message protection.
This configuration references the "localhost" certificate installed during the setup instructions. -->
<serviceCredentials>
<serviceCertificate findValue="localhost"
storeLocation="LocalMachine"
storeName="My"
x509FindType="FindBySubjectName" />
<clientCertificate>
<!-- Setting the certificateValidationMode to PeerOrChainTrust means that if the certificate
is in the user's Trusted People store, then it will be trusted without performing a
validation of the certificate's issuer chain. This setting is used here for convenience so that the
sample can be run without having to have certificates issued by a certification authority (CA).
This setting is less secure than the default, ChainTrust. The security implications of this
setting should be carefully considered before using PeerOrChainTrust in production code. -->
<authentication certificateValidationMode="PeerOrChainTrust" />
</clientCertificate>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>