Как: Настроить локального эмитента

В этом разделе описано, как настроить клиента для использования локального издателя для выданных токенов.

Часто при взаимодействии клиента с федеративной службой служба указывает адрес службы маркеров безопасности, выдающей маркеры, которые клиент будет использовать, чтобы федеративная служба могла проверить его подлинность. В некоторых ситуациях клиент может быть настроен на использование локального издателя.

Windows Communication Foundation (WCF) использует локальный издатель в случаях, когда адрес издателя федеративной привязки http://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous или null. В этих случаях необходимо настроить объект ClientCredentials с использованием адреса локального издателя и привязки, с помощью которой будет осуществляться взаимодействие с этим издателем.

Примечание.

Если свойство SupportInteractive класса ClientCredentials задано как true, локальный адрес издателя не указан, и адрес издателя, заданный с помощью <wsFederationHttpBinding> или другой федеративной привязки, имеет значение http://schemas.xmlsoap.org/ws/2005/05/identity/issuer/self, http://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous или задан как null, то используется издатель Windows CardSpace.

Настройка локального издателя в коде

  1. Создайте переменную типа IssuedTokenClientCredential.

  2. Присвойте переменной экземпляр, возвращаемый свойством IssuedToken класса ClientCredentials. Этот экземпляр возвращается свойством ClientCredentials клиента (унаследованным от ClientBase<TChannel>) или свойством Credentials класса ChannelFactory:

    IssuedTokenClientCredential itcc = client.ClientCredentials.IssuedToken;
    
    Dim itcc As IssuedTokenClientCredential = client.ClientCredentials.IssuedToken
    
  3. Присвойте свойству LocalIssuerAddress новый экземпляр класса EndpointAddress, указав в качестве аргумента конструктора адрес локального издателя.

    itcc.LocalIssuerAddress = new EndpointAddress("http://fabrikam.com/sts");
    
    itcc.LocalIssuerAddress = New EndpointAddress("http://fabrikam.com/sts")
    

    В качестве альтернативы создайте новый экземпляр Uri и передайте его в качестве аргумента конструктора.

    itcc.LocalIssuerAddress = new EndpointAddress(new Uri("http://fabrikam.com/sts"),
        addressHeaders);
    
    itcc.LocalIssuerAddress = New EndpointAddress( _
    New Uri("http://fabrikam.com/sts"), addressHeaders)
    

    Параметр addressHeaders представляет собой массив AddressHeader экземпляров, как показано ниже.

    itcc.LocalIssuerAddress = new EndpointAddress(
        new Uri("http://fabrikam.com/sts"),
        EndpointIdentity.CreateDnsIdentity("fabrikam.com"),
        addressHeaders);
    
    itcc.LocalIssuerAddress = New EndpointAddress(New Uri("http://fabrikam.com/sts"), _
    EndpointIdentity.CreateDnsIdentity("fabrikam.com"), addressHeaders)
    
  4. Задайте привязку для локального издателя, используя свойство LocalIssuerBinding.

    itcc.LocalIssuerBinding = new WSHttpBinding("LocalIssuerBinding");
    
    itcc.LocalIssuerBinding = New WSHttpBinding("LocalIssuerBinding")
    
  5. Необязательно. Добавьте настроенные поведения конечных точек для локального издателя, добавив эти поведения в коллекцию, возвращаемую свойством LocalIssuerChannelBehaviors.

    itcc.LocalIssuerChannelBehaviors.Add(myEndpointBehavior);
    
    itcc.LocalIssuerChannelBehaviors.Add(myEndpointBehavior)
    

Настройка локального издателя с помощью файла конфигурации

  1. Создайте элемент <localIssuer> как подэлемент <issuedToken>, который, в свою очередь, является подэлементом <clientCredentials> в поведении конечной точки.

  2. Задайте в качестве атрибута address адрес локального издателя, который будет принимать запросы токенов.

  3. Задайте в качестве атрибутов binding и bindingConfiguration значения, указывающие на соответствующую привязку, которую следует использовать при взаимодействии с конечной точкой локального издателя.

  4. Необязательно. <Задайте элемент identity> в качестве дочернего элемента <localIssuer> и укажите сведения об удостоверении для локального издателя.

  5. Необязательно. <, необходимые для корректного обращения к локальному издателю.

Безопасность .NET Framework

Обратите внимание, что если для данной привязки указаны адрес издателя и привязка, локальный издатель не применяется в конечных точках, использующих эту привязку. Клиенты, которые предполагают всегда использовать локальный издатель, должны убедиться, что они не используют такую привязку или что привязка изменена таким образом, что адрес издателя имеет значение null.

См. также