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

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

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

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

Примечание.

SupportInteractive Если для класса задано trueзначение свойстваClientCredentials, локальный адрес издателя не указан, а адрес издателя, указанный< wsFederationHttpBinding> или другой федеративной привязкойhttp://schemas.xmlsoap.org/ws/2005/05/identity/issuer/selfhttp://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. Необязательно. Задайте элемент заголовков в качестве дочернего элемента и укажите дополнительные заголовки>, необходимые для правильного <localIssuer> решения локального издателя.<

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

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

См. также