Практическое руководство. Настройка локального издателя
В этом разделе описано, как настроить клиент на использование локального издателя для выданных маркеров.
Часто при взаимодействии клиента с федеративной службой служба указывает адрес службы маркеров безопасности, выдающей маркеры, которые клиент будет использовать, чтобы федеративная служба могла проверить его подлинность. В некоторых ситуациях клиент может быть настроен на использование локального издателя.
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/self
http://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous
, или естьnull
, используется издатель Windows CardSpace.
Настройка локального издателя в коде
Создайте переменную типа IssuedTokenClientCredential.
Присвойте переменной экземпляр, возвращаемый свойством IssuedToken класса
ClientCredentials
. Этот экземпляр возвращается свойством ClientCredentials клиента (унаследованным от ClientBase<TChannel>) или свойством Credentials класса ChannelFactory:IssuedTokenClientCredential itcc = client.ClientCredentials.IssuedToken;
Dim itcc As IssuedTokenClientCredential = client.ClientCredentials.IssuedToken
Присвойте свойству 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)
Задайте привязку для локального издателя с помощью LocalIssuerBinding свойства.
itcc.LocalIssuerBinding = new WSHttpBinding("LocalIssuerBinding");
itcc.LocalIssuerBinding = New WSHttpBinding("LocalIssuerBinding")
Необязательно. Добавьте настроенные поведения конечных точек для локального издателя, добавив эти поведения в коллекцию, возвращаемую свойством LocalIssuerChannelBehaviors.
itcc.LocalIssuerChannelBehaviors.Add(myEndpointBehavior);
itcc.LocalIssuerChannelBehaviors.Add(myEndpointBehavior)
Настройка локального издателя с помощью файла конфигурации
Создайте элемент localIssuer> в качестве дочернего <элемента issuedToken>, который является дочерним <элементом элемента clientCredentials> в поведении конечной точки.<
Задайте в качестве атрибута
address
адрес локального издателя, которые будет принимать запросы маркеров.Задайте в качестве атрибутов
binding
иbindingConfiguration
значения, указывающие на соответствующую привязку, которую следует использовать при взаимодействии с конечной точкой локального издателя.Необязательно. <Задайте элемент identity> в качестве дочернего элемента и укажите сведения о удостоверении для локального
<localIssuer>
издателя.Необязательно. <Задайте элемент заголовков в качестве дочернего элемента и укажите дополнительные заголовки>, необходимые для правильного
<localIssuer>
решения локального издателя.
Безопасность .NET Framework
Обратите внимание, что если для данной привязки указаны адрес издателя и привязка, локальный издатель не применяется в конечных точках, использующих эту привязку. Клиенты, которые предполагают всегда использовать локальный издатель, должны убедиться, что они не используют такую привязку или что привязка изменена таким образом, что адрес издателя имеет значение null
.