Sicherheitsverhalten in WCFSecurity Behaviors in WCF

In Windows Communication Foundation (WCF) Verhalten zu Laufzeitverhalten auf Dienstebene bzw. auf Endpunktebene ändern.In Windows Communication Foundation (WCF), behaviors modify run-time behavior at the service level or at the endpoint level. (Weitere Informationen zum Verhalten im Allgemeinen finden Sie unter Run-Time-Dienstverhalten angeben.) Sicherheitsverhalten Ihnen die Kontrolle über die Anmeldeinformationen, Authentifizierung und Autorisierung und über Überwachungsprotokolle.(For more information about behaviors in general, see Specifying Service Run-Time Behavior.) Security behaviors allow control over credentials, authentication, authorization, and auditing logs. Sie können Verhalten entweder mittels Programmierung oder mittels Konfiguration verwenden.You can use behaviors either by programming or through configuration. In diesem Thema wird die Konfiguration der folgenden, auf Sicherheitsfunktionen bezogenen Verhalten erläutert:This topic focuses on configuring the following behaviors related to security functions:

Festlegen von Anmeldeinformationen mithilfe von VerhaltenSetting Credentials with Behaviors

Verwenden der <ServiceCredentials > und <ClientCredentials > Werte für die Anmeldeinformationen für einen Dienst oder Client festlegen.Use the <serviceCredentials> and <clientCredentials> to set credential values for a service or client. Durch die zugrunde liegende Bindungskonfiguration wird vorgegeben, ob Anmeldeinformationen festgelegt werden müssen.The underlying binding configuration determines whether a credential has to be set. Wenn beispielsweise für den Sicherheitsmodus der Wert None gewählt wurde, findet keine gegenseitige Authentifizierung von Clients und Diensten statt. Es sind daher keine Anmeldeinformationen erforderlich.For example, if the security mode is set to None, both clients and services do not authenticate each other and require no credentials of any type.

Andererseits kann es sein, dass die Dienstbindung eine Art von Clientanmeldeinformation erfordert.On the other hand, the service binding can require a client credential type. In diesem Fall müssen Sie eventuell mithilfe eines Verhaltens einen Wert für die Anmeldeinformationen festlegen.In that case, you may have to set a credential value using a behavior. (Weitere Informationen über die möglichen Typen von Anmeldeinformationen finden Sie unter Auswählen eines Anmeldeinformationentyps.) Gelegentlich wird der tatsächliche Anmeldeinformationswert automatisch durch die Umgebung festgesetzt, zum Beispiel bei Verwendung von Windows-Anmeldeinformationen für die Authentifizierung. In diesem Fall müssen Sie den Wert für die Anmeldeinformationen nicht explizit festlegen, außer Sie möchten andere Anmeldeinformationen verwenden.(For more information about the possible types of credentials, see Selecting a Credential Type.) In some cases, such as when Windows credentials are used to authenticate, the environment automatically establishes the actual credential value and you do not need to explicitly set the credential value (unless you want to specify a different set of credentials).

Befinden sich alle Dienstanmeldeinformationen als untergeordnete Elemente von der <ServiceBehaviors >.All service credentials are found as child elements of the <serviceBehaviors>. Im folgenden Beispiel wird ein Zertifikat als Dienstanmeldeinformation verwendet:The following example shows a certificate used as a service credential.

<configuration>  
 <system.serviceModel>  
  <behaviors>  
   <serviceBehaviors>  
    <behavior name="ServiceBehavior1">  
     <serviceCredentials>  
      <serviceCertificate findValue="000000000000000000000000000"   
                          storeLocation="CurrentUser"  
      storeName="Root" x509FindType="FindByThumbprint" />  
     </serviceCredentials>  
    </behavior>  
   </serviceBehaviors>  
  </behaviors>  
 </system.serviceModel>  
</configuration>  

DienstanmeldeinformationenService Credentials

Die <ServiceCredentials > enthält vier untergeordneten Elemente.The <serviceCredentials> contains four child elements. Diese Elemente und ihre Verwendung werden in den folgenden Abschnitten vorgestellt.The elements and their usages are discussed in the following sections.

<ServiceCertificate >-Element<serviceCertificate> Element

Geben Sie mit diesem Element ein X.509-Zertifikat an, mit dem der Dienst bei den Clients im Modus für die Nachrichtensicherheit authentifiziert wird.Use this element to specify an X.509 certificate that is used to authenticate the service to clients using Message security mode. Falls Sie ein Zertifikat verwenden, das immer wieder erneuert wird, ändert sich sein Fingerabdruck.If you are using a certificate that is periodically renewed, then its thumbprint changes. Verwenden Sie in diesem Fall den Antragstellernamen als X509FindType, da das Zertifikat erneut mit demselben Antragstellernamen ausgestellt werden kann.In that case, use the subject name as the X509FindType because the certificate can be reissued with the same subject name.

Weitere Informationen zum Verwenden des Elements finden Sie unter Vorgehensweise: Angeben der Clientanmeldeinformationswerte.For more information about using the element, see How to: Specify Client Credential Values.

<Zertifikat > der <ClientCertificate >-Element<certificate> of <clientCertificate> Element

Verwenden der <Zertifikat > Element, wenn der Dienst das Zertifikat des Clients im voraus, zur sicheren Kommunikation mit dem Client verfügen muss.Use the <certificate> element when the service must have the client's certificate in advance to communicate securely with the client. Dies ist bei der Duplexkommunikation der Fall.This occurs when using the duplex communication pattern. Bei der üblicheren Kommunikation mit Anforderung und Antwort fügt der Client das Zertifikat in die Anforderung ein, das dann wiederum vom Dienst zum Schutz seiner Antwort an den Client verwendet wird.In the more typical request-reply pattern, the client includes its certificate in the request, which the service uses to secure its response back to the client. Bei der Duplexkommunikation gibt es keine Anforderungen und Antworten.The duplex communication pattern, however, has no requests and replies. Der Dienst kann das Zertifikat des Clients nicht aus der Kommunikation ableiten. Daher muss der Dienst bereits im Voraus über das Clientzertifikat verfügen, um seine Nachricht an den Client schützen zu können.The service cannot infer the client's certificate from the communication and therefore the service requires the client's certificate in advance to secure the messages to the client. Sie müssen das Zertifikat des Clients in einem Out-of-Band-Verfahren beziehen und das Zertifikat mit diesem Element angeben.You must obtain the client's certificate in an out-of-band manner and specify the certificate using this element. Weitere Informationen über duplexdienste finden Sie unter Vorgehensweise: Erstellen eines Duplexvertrags.For more information about duplex services, see How to: Create a Duplex Contract.

<Authentication > des <ClientCertificate >-Element<authentication> of <clientCertificate> Element

Die <Authentifizierung > Element können Sie anpassen, wie Clients authentifiziert werden.The <authentication> element enables you to customize how clients are authenticated. Sie können als Wert für das CertificateValidationMode-Attribut None, ChainTrust, PeerOrChainTrust, PeerTrust oder Custom festlegen.You can set the CertificateValidationMode attribute to None, ChainTrust, PeerOrChainTrust, PeerTrust, or Custom. Wird standardmäßig die Ebene festgelegt ist, um ChainTrust, was bedeutet, dass jedes Zertifikat in einer Hierarchie in mündet gefunden werden, muss eine Stammzertifizierungsstelle am Anfang der Kette.By default, the level is set to ChainTrust, which specifies that each certificate must be found in a hierarchy of certificates ending in a root authority at the top of the chain. Dies ist der sicherste Modus.This is the most secure mode. Sie können auch den Wert PeerOrChainTrust verwenden, der vorgibt, dass neben den Zertifikaten in einer Vertrauenskette auch selbst ausgestellte Zertifikate (Peervertrauen) akzeptiert werden.You can also set the value to PeerOrChainTrust, which specifies that self-issued certificates (peer trust) are accepted as well as certificates that are in a trusted chain. Sie können diesen Wert beim Entwickeln und Debuggen von Clients und Diensten verwenden, da selbst ausgestellte Zertifikate nicht von einer vertrauenswürdigen Zertifizierungsstelle bezogen werden müssen.This value is used when developing and debugging clients and services because self-issued certificates need not be purchased from a trusted authority. Verwenden Sie beim Bereitstellen eines Clients jedoch den Wert ChainTrust.When deploying a client, use the ChainTrust value instead. Sie können den Wert auch auf Custom setzen.You can also set the value to Custom. Wenn Sie den Wert Custom verwenden, müssen Sie für das CustomCertificateValidatorType-Attribut zudem ein Assembly und einen Typ, mit dem das Zertifikat überprüft wird, festlegen.When set to the Custom value, you must also set the CustomCertificateValidatorType attribute to an assembly and type used to validate the certificate. Wenn Sie Ihre eigene Überprüfung erstellen möchten, müssen Sie die abstrakte X509CertificateValidator-Klasse vererben.To create your own custom validator, you must inherit from the abstract X509CertificateValidator class.

<IssuedTokenAuthentication >-Element<issuedTokenAuthentication> Element

Das Szenario für ausgestellte Token weist drei Phasen auf.The issued token scenario has three stages. In der ersten Phase wird ein Client versucht, auf einen Dienst zuzugreifen bezeichnet einen sicheren Tokendienst (STS).In the first stage, a client trying to access a service is referred to a secure token service (STS). Der STS authentifiziert den Client und stellt dann ein Token (in der Regel ein SAML-Token (SAML = Security Assertions Markup Language, XML-basierte Auszeichnungssprache für Sicherheitsbestätigungen) für den Client aus.The STS then authenticates the client and subsequently issues the client a token, typically a Security Assertions Markup Language (SAML) token. Der Client kehrt dann mit dem Token zum Dienst zurück.The client then returns to the service with the token. Der Dienst überprüft das Token auf Daten, die ihm die Authentifizierung des Tokens und somit des Clients erlauben.The service examines the token for data that allows the service to authenticate the token and therefore the client. Damit das Token authentifiziert werden kann, muss dem Dienst das vom Sicherheitstokendienst verwendete Zertifikat bekannt sein.To authenticate the token, the certificate that the secure token service uses must be known to the service. Die <IssuedTokenAuthentication > Element ist das Repository für solche Sicherheitstokendienst-Zertifikate.The <issuedTokenAuthentication> element is the repository for any such secure token service certificates. Verwenden Sie zum Hinzufügen von Zertifikaten der <KnownCertificates >.To add certificates, use the <knownCertificates>. Fügen Sie ein <hinzufügen > für jedes Zertifikat, wie im folgenden Beispiel gezeigt.Insert an <add> for each certificate, as shown in the following example.

<issuedTokenAuthentication>  
   <knownCertificates>  
      <add findValue="www.contoso.com"   
           storeLocation="LocalMachine" storeName="My"   
           X509FindType="FindBySubjectName" />  
    </knownCertificates>  
</issuedTokenAuthentication>  

Standardmäßig müssen die Zertifikate von einem Sicherheitstokendienst bezogen werden.By default, the certificates must be obtained from a secure token service. Durch diese "bekannten" Zertifikate wird sichergestellt, dass nur berechtigte Clients auf einen Dienst zugreifen können.These "known" certificates ensure that only legitimate clients can access a service.

Verwenden Sie die <AllowedAudienceUris > Auflistung in einer verbundanwendung, die nutzt eine secure token Service (STS) Probleme bei SamlSecurityToken Sicherheitstoken.You should use the <allowedAudienceUris> collection in a federated application that utilizes a secure token service (STS) that issues SamlSecurityToken security tokens. Wenn der STS das Sicherheitstoken ausstellt, kann er den URI des Webdiensts angeben, für den das Sicherheitstoken verwendet werden soll, indem SamlAudienceRestrictionCondition dem Sicherheitstoken hinzugefügt wird.When the STS issues the security token, it can specify the URI of the Web services for which the security token is intended by adding a SamlAudienceRestrictionCondition to the security token. Der SamlSecurityTokenAuthenticator für den Webdienst kann so überprüfen, ob das ausgestellte Sicherheitstoken für diesen Webdienst ausgelegt ist, indem diese Überprüfung durchgeführt wird. Führen Sie hierzu die folgenden Schritte aus:That allows the SamlSecurityTokenAuthenticator for the recipient Web service to verify that the issued security token is intended for this Web service by specifying that this check should happen by doing the following:

  • Legen Sie die audienceUriMode Attribut des <IssuedTokenAuthentication > auf Always oder BearerKeyOnly.Set the audienceUriMode attribute of <issuedTokenAuthentication> to Always or BearerKeyOnly.

  • Geben Sie den Satz gültiger URIs an, indem Sie die URIs dieser Auflistung hinzufügen.Specify the set of valid URIs, by adding the URIs to this collection. Fügen Sie zu diesem Zweck ein <hinzufügen > für jeden URITo do this, insert an <add> for each URI

Weitere Informationen finden Sie unter SamlSecurityTokenAuthenticator.For more information, see SamlSecurityTokenAuthenticator.

Weitere Informationen zur Verwendung dieses Konfigurationselements finden Sie unter Vorgehensweise: Konfigurieren von Anmeldeinformationen auf einem Verbunddienst.For more information about using this configuration element, see How to: Configure Credentials on a Federation Service.

Zulassen anonymer CardSpace-BenutzerAllowing Anonymous CardSpace Users

Wenn Sie das AllowUntrustedRsaIssuers-Attribut des <IssuedTokenAuthentication>-Elements auf true setzen, dürfen alle Clients ein selbst ausgestelltes und mit einem beliebigen RSA-Schlüsselpaar signiertes Token vorweisen.Setting the AllowUntrustedRsaIssuers attribute of the <IssuedTokenAuthentication> element to true explicitly allows any client to present a self-issued token signed with an arbitrary RSA key pair. Der Aussteller ist nicht vertrauenswürdigen , da der Schlüssel keine Aussteller Daten zugeordnet ist.The issuer is untrusted because the key has no issuer data associated with it. CardSpaceCardSpace-Benutzer können eine selbst ausgestellte Karte mit von ihnen selbst bereitgestellten Identitätsansprüchen erstellen.A CardSpaceCardSpace user can create a self-issued card that includes self-provided claims of identity. Daher sollte diese Funktion nur mit Vorsicht verwendet werden.Use this capability with caution. Falls Sie diese Funktion verwenden möchten, stellen Sie sich den öffentlichen RSA-Schlüssel als sichereres Kennwort vor, das mit dem Benutzernamen in einer Datenbank gespeichert werden sollte.To use this feature, think of the RSA public key as a more secure password that should be stored in a database along with a user name. Überprüfen Sie den vom Client vorgelegten öffentlichen RSA-Schlüssel, indem Sie ihn mit dem für diesen Benutzernamen gespeicherten öffentlichen Schlüssel vergleichen, bevor Sie einem Client Zugriff auf den Dienst gewähren.Before allowing a client access to the service, verify the client-presented RSA public key by comparing it with the stored public key for the presented user name. Dies setzt voraus, dass Sie einen Registrierungsvorgang eingerichtet haben, bei dem Benutzer ihre Benutzernamen registrieren und diesen die selbst ausgestellten öffentlichen RSA-Schlüssel zuordnen können.This presumes that you have established a registration process whereby users can register their user names and associate them with the self-issued RSA public keys.

ClientanmeldeinformationenClient Credentials

Durch die Clientanmeldeinformationen wird der Client bei den Diensten authentifiziert, wenn eine gegenseitige Authentifizierung erforderlich ist.Client credentials are used to authenticate the client to services in cases where mutual authentication is required. Sie können den Abschnitt zur Angabe von Dienstzertifikaten in Szenarien verwenden, bei denen der Client seine Nachrichten an einen Dienst mithilfe des Dienstzertifikats schützen muss.You can use the section to specify service certificates for scenarios where the client must secure messages to a service with the service's certificate.

Sie können einen Client auch als Teil eines Verbundszenarien konfigurieren, in dem die Token eines Sicherheitstokendiensts oder eines lokalen Tokenausstellers verwendet werden.You can also configure a client as part of a federation scenario to use issued tokens from a secure token service or a local issuer of tokens. Weitere Informationen über verbundene Szenarien finden Sie unter Verbund und ausgestellte Token.For more information about federated scenarios, see Federation and Issued Tokens. Anmeldeinformationen für alle Clients befinden sich unter dem <EndpointBehaviors >, wie im folgenden Code gezeigt.All client credentials are found under the <endpointBehaviors>, as shown in the following code.

<behaviors>  
 <endpointBehaviors>  
  <behavior name="EndpointBehavior1">  
   <clientCredentials>  
    <clientCertificate findValue="cn=www.contoso.com"     
        storeLocation="LocalMachine"  
        storeName="AuthRoot" x509FindType="FindBySubjectName" />  
    <serviceCertificate>  
     <defaultCertificate findValue="www.cohowinery.com"   
                    storeLocation="LocalMachine"  
                    storeName="Root" x509FindType="FindByIssuerName" />  
    <authentication revocationMode="Online"  
                    trustedStoreLocation="LocalMachine" />  
    </serviceCertificate>  
   </clientCredentials>  
  </behavior>  
 </endpointBehaviors>  

<ClientCertifictate >-Element<clientCertifictate> Element

Legen Sie mit diesem Element das Zertifikat fest, mit dem der Client authentifiziert wird.Set the certificate used to authenticate the client with this element. Weitere Informationen finden Sie unter Vorgehensweise: Angeben der Clientanmeldeinformationswerte.For more information, see How to: Specify Client Credential Values.

<HttpDigest ><httpDigest>

Diese Funktion muss mit Active Directory unter Windows und unter IIS (Internet Information Services) aktiviert werden.This feature must be enabled with Active Directory on Windows and Internet Information Services (IIS). Weitere Informationen finden Sie unter Digestauthentifizierung in IIS 6.0.For more information, see Digest Authentication in IIS 6.0.

<IssuedToken >-Element<issuedToken> Element

Die <IssuedToken > enthält die Elemente, die zum Konfigurieren eines lokalen Tokenausstellers Token oder mit einem Sicherheitstokendienst verwendeten Verhalten verwendet.The <issuedToken> contains the elements used to configure a local issuer of tokens, or behaviors used with an security token service. Anweisungen zum Konfigurieren eines Clients für einen lokalen Aussteller verwenden, finden Sie unter Vorgehensweise: Konfigurieren eines lokalen Ausstellers.For instructions on configuring a client to use a local issuer, see How to: Configure a Local Issuer.

<localissueraddress-Eigenschaft ><localIssuerAddress>

Gibt eine Standardadresse für den Sicherheitstokendienst an.Specifies a default security token service address. Wird verwendet, wenn die WSFederationHttpBinding stellt keine URL für den Sicherheitstokendienst oder wenn die Ausstelleradresse einer verbundbindung http://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous oder null.This is used when the WSFederationHttpBinding does not supply a URL for the security token service, or when the issuer address of a federated binding is http://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous or null. In diesem Fall muss ClientCredentials mit der Adresse des lokalen Ausstellers und der für die Kommunikation mit diesem Aussteller zu verwendenden Bindung konfiguriert werden.In such cases, the ClientCredentials must be configured with the address of the local issuer and the binding to use to communicate with that issuer.

<IssuerChannelBehaviors ><issuerChannelBehaviors>

Verwenden der <IssuerChannelBehaviors > WCF Clientverhalten verwendet bei der Kommunikation mit einem Sicherheitstokendienst hinzufügen.Use the <issuerChannelBehaviors> to add WCF client behaviors used when communicating with a security token service. Definieren von Clientverhalten in der <EndpointBehaviors > Abschnitt.Define client behaviors in the <endpointBehaviors> section. Um einen definierten Verhalten verwenden, fügen eine <add>-Element der <issuerChannelBehaviors> Element mit zwei Attribute.To use a defined behavior, add an <add> element to the <issuerChannelBehaviors> element with two attributes. Verwenden Sie für issuerAddress die URL des Sicherheitstokendiensts, und verwenden Sie für das behaviorConfiguration-Attribut den Namen des definierten Endpunktverhaltens, wie im folgenden Beispiel gezeigt:Set the issuerAddress to the URL of the security token service and set the behaviorConfiguration attribute to the name of the defined endpoint behavior, as shown in the following example.

<clientCredentials>  
   <issuedToken>  
      <issuerChannelBehaviors>  
         <add issuerAddress="http://www.contoso.com"  
               behaviorConfiguration="clientBehavior1" />     

<ServiceCertificate >-Element<serviceCertificate> Element

Verwenden Sie dieses Element, um die Authentifizierung von Dienstzertifikaten zu steuern.Use this element to control authentication of service certificates.

Die <DefaultCertificate > Element kann ein einzelnes Zertifikat verwendet, wenn der Dienst kein Zertifikat gibt an, zu speichern.The <defaultCertificate> element can store a single certificate used when the service specifies no certificate.

Verwenden der <ScopedCertificates > und <hinzufügen > Dienstzertifikate festlegen, bestimmte Dienste zugeordnet sind.Use the <scopedCertificates> and <add> to set service certificates that are associated with specific services. Das <add>-Element beinhaltet ein targetUri-Attribut, mit dem das Zertifikat dem Dienst zugeordnet wird.The <add> element includes a targetUri attribute that is used to associate the certificate with the service.

Die <Authentifizierung > Element gibt die Ebene der Vertrauenswürdigkeit verwendet, um Zertifikate zu authentifizieren.The <authentication> element specifies the level of trust used to authenticate certificates. Standardmäßig wird die Stufe "ChainTrust" verwendet, die angibt, dass jedes Zertifikat in einer Zertifizierungshierarchie zu finden sein muss, die in eine vertrauenswürdige Zertifizierungsstelle am Anfang der Kette mündet.By default, the level is set to "ChainTrust," which specifies that each certificate must be found in a hierarchy of certificates ending in a trusted certification authority at the top of the chain. Dies ist der sicherste Modus.This is the most secure mode. Sie können auch den Wert "PeerOrChainTrust" verwenden, der vorgibt, dass neben den Zertifikaten in einer Vertrauenskette auch selbst ausgestellte Zertifikate (Peervertrauen) akzeptiert werden.You can also set the value to "PeerOrChainTrust", which specifies that self-issued certificates (peer trust) are accepted, as well as certificates that are in a trusted chain. Sie können diesen Wert beim Entwickeln und Debuggen von Clients und Diensten verwenden, da selbst ausgestellte Zertifikate nicht von einer vertrauenswürdigen Zertifizierungsstelle bezogen werden müssen.This value is used when developing and debugging clients and services because self-issued certificates need not be purchased from a trusted authority. Verwenden Sie beim Bereitstellen eines Clients jedoch den Wert "ChainTrust".When deploying a client, use the "ChainTrust" value instead. Sie können auch den Wert "Custom" bzw. "None" verwenden.You can also set the value to "Custom" or "None." Wenn Sie "Custom" verwenden möchten, müssen Sie für das CustomCertificateValidatorType-Attribut zudem ein Assembly und einen Typ, mit dem das Zertifikat überprüft wird, festlegen.To use the "Custom" value, you must also set the CustomCertificateValidatorType attribute to an assembly and type used to validate the certificate. Wenn Sie Ihre eigene Überprüfung erstellen möchten, müssen Sie die abstrakte X509CertificateValidator-Klasse vererben.To create your own custom validator, you must inherit from the abstract X509CertificateValidator class. Weitere Informationen finden Sie unter Vorgehensweise: erstellen ein Diensts, der ein benutzerdefiniertes Zertifikats-Validierungssteuerelement verwendet.For more information, see How to: Create a Service that Employs a Custom Certificate Validator.

Die <Authentifizierung > Element enthält eine RevocationMode Attribut, das angibt, wie Zertifikate auf eine Sperre hin überprüft werden.The <authentication> element includes a RevocationMode attribute that specifies how certificates are checked for revocation. Der Standardwert ist "online", wodurch angegeben wird, dass Zertifikate automatisch auf eine Sperre hin überprüft werden.The default is "online", which indicates that certificates are automatically checked for revocation. Weitere Informationen finden Sie unter arbeiten mit Zertifikaten.For more information, see Working with Certificates.

ServiceAuthorizationServiceAuthorization

Die <ServiceAuthorization > -Element enthält Elemente, die Autorisierung, benutzerspezifische Rollenanbieter und den Identitätswechsel beeinflussen.The <serviceAuthorization> element contains elements that affect authorization, custom role providers, and impersonation.

Die PrincipalPermissionAttribute-Klasse wird auf eine Dienstmethode angewendet.The PrincipalPermissionAttribute class is applied to a service method. Das Attribut gibt die Benutzergruppen an, mit denen die Verwendung einer geschützten Methode autorisiert wird.The attribute specifies the groups of users to use when authorizing use of a protected method. Der Standardwert lautet "UseWindowsGroups". Er gibt an, das in Windows-Gruppen wie der der Administratoren oder Benutzer nach einer Identität gesucht wird, die versucht, auf eine Ressource zuzugreifen.The default value is "UseWindowsGroups" and specifies that Windows groups, such as "Administrators" or "Users," are searched for an identity trying to access a resource. Sie können auch "UseAspNetRoles" angeben, einen benutzerdefinierten Rollenanbieter verwenden, klicken Sie unter konfiguriert ist, das <system.web > Element, wie im folgenden Code dargestellt.You can also specify "UseAspNetRoles" to use a custom role provider that is configured under the <system.web > element, as shown in the following code.

<system.web>  
  <membership defaultProvider="SqlProvider"   
   userIsOnlineTimeWindow="15">  
     <providers>  
       <clear />  
       <add   
          name="SqlProvider"   
          type="System.Web.Security.SqlMembershipProvider"   
          connectionStringName="SqlConn"  
          applicationName="MembershipProvider"  
          enablePasswordRetrieval="false"  
          enablePasswordReset="false"  
          requiresQuestionAndAnswer="false"  
          requiresUniqueEmail="true"  
          passwordFormat="Hashed" />  
     </providers>  
   </membership>  
  <!-- Other configuration code not shown.-->  
</system.web>  

Im folgenden Code wird roleProviderName mit dem principalPermissionMode-Attribut verwendet.The following code shows the roleProviderName used with the principalPermissionMode attribute.

<behaviors>  
 <behavior name="ServiceBehaviour">          
  <serviceAuthorization principalPermissionMode ="UseAspNetRoles"   
                        roleProviderName ="SqlProvider" />  
</behavior>   
   <!-- Other configuration code not shown. -->  
</behaviors>  

Konfigurieren der SicherheitsüberwachungConfiguring Security Audits

Verwenden der <ServiceSecurityAudit > an das Protokoll geschrieben, und welche Arten von zu protokollierende Ereignisse.Use the <serviceSecurityAudit> to specify the log written to, and what types of events to log. Weitere Informationen finden Sie unter Überwachung.For more information, see Auditing.

<system.serviceModel>  
<serviceBehaviors>  
  <behavior name="NewBehavior">  
    <serviceSecurityAudit auditLogLocation="Application"   
             suppressAuditFailure="true"  
             serviceAuthorizationAuditLevel="Success"   
             messageAuthenticationAuditLevel="Success" />  
    </behavior>  
  </serviceBehaviors>  
</behaviors>  

Sicherer MetadatenaustauschSecure Metadata Exchange

Das Exportieren von Metadaten auf Clients ist hilfreich für Dienst- und Cliententwickler, da so das Herunterladen von Konfigurations- und Clientcode möglich wird.Exporting metadata to clients is convenient for service and client developers, as it enables downloads of configuration and client code. Damit der Dienst möglichst gut vor böswilligen Benutzern geschützt wird, können Sie für die Übertragung den HTTPS-Mechanismus (SSL über HTTP) verwenden.To reduce the exposure of a service to malicious users, it is possible to secure the transfer using the SSL over HTTP (HTTPS) mechanism. Hierfür müssen Sie zunächst ein geeignetes X.509-Zertifikat an einen bestimmten Port des Computers, auf dem der Dienst gehostet wird, binden.To do so, you must first bind a suitable X.509 certificate to a specific port on the computer that is hosting the service. (Weitere Informationen finden Sie unter arbeiten mit Zertifikaten.) Zweitens, Hinzufügen einer <ServiceMetadata > auf der Dienstkonfiguration und die HttpsGetEnabled -Attribut auf true.(For more information, see Working with Certificates.) Second, add a <serviceMetadata> to the service configuration and set the HttpsGetEnabled attribute to true. Setzen Sie abschließend wie im folgenden Beispiel gezeigt das HttpsGetUrl-Attribut auf den URL des Dienstmetadaten-Endpunkts:Finally, set the HttpsGetUrl attribute to the URL of the service metadata endpoint, as shown in the following example.

<behaviors>  
 <serviceBehaviors>  
  <behavior name="NewBehavior">  
    <serviceMetadata httpsGetEnabled="true"   
     httpsGetUrl="https://myComputerName/myEndpoint" />  
  </behavior>  
 </serviceBehaviors>  
</behaviors>  

Siehe auchSee Also

ÜberwachungAuditing
Sicherheitsmodell für Windows Server AppFabricSecurity Model for Windows Server App Fabric