Как настраивать локальный издатель
В этом разделе описано, как настроить клиент на использование локального издателя для выданных маркеров.
Часто при взаимодействии клиента с федеративной службой служба указывает адрес службы маркеров безопасности, выдающей маркеры, которые клиент будет использовать, чтобы федеративная служба могла проверить его подлинность. В некоторых случаях клиент можно настроить на использование локального издателя.
В Windows Communication Foundation (WCF) локальный издатель используется тогда, когда адрес издателя федеративной привязки имеет вид https://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous или null. В этих случаях необходимо настроить объект ClientCredentials с использованием адреса локального издателя и привязки, с помощью которой будет осуществляться взаимодействие с этим издателем.
Примечание |
---|
Если свойство SupportInteractive класса ClientCredentials имеет значение true, адрес локального издателя не задан, а адрес издателя, задаваемый элементом wsFederationHttpBinding element или другой федеративной привязкой, имеет вид https://schemas.xmlsoap.org/ws/2005/05/identity/issuer/self, https://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous или null, используется издатель CardSpace Windows. |
Настройка локального издателя в коде
Создайте переменную типа IssuedTokenClientCredential.
Присвойте переменной экземпляр, возвращаемый свойством IssuedToken класса ClientCredentials. Этот экземпляр возвращается свойством ClientCredentials клиента (унаследованным от ClientBase) или свойством Credentials класса ChannelFactory:
Dim itcc As IssuedTokenClientCredential = client.ClientCredentials.IssuedToken
IssuedTokenClientCredential itcc = client.ClientCredentials.IssuedToken;
Присвойте свойству LocalIssuerAddress новый экземпляр класса EndpointAddress, указав в качестве аргумента конструктора адрес локального издателя.
itcc.LocalIssuerAddress = New EndpointAddress("https://fabrikam.com/sts")
itcc.LocalIssuerAddress = new EndpointAddress("https://fabrikam.com/sts");
Либо создайте новый экземпляр Uri в качестве аргумента конструктора.
itcc.LocalIssuerAddress = New EndpointAddress( _ New Uri("https://fabrikam.com/sts"), addressHeaders)
itcc.LocalIssuerAddress = new EndpointAddress(new Uri("https://fabrikam.com/sts"), addressHeaders);
Параметр
itcc.LocalIssuerAddress = New EndpointAddress(New Uri("https://fabrikam.com/sts"), _ EndpointIdentity.CreateDnsIdentity("fabrikam.com"), addressHeaders)
itcc.LocalIssuerAddress = new EndpointAddress( new Uri("https://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>, и укажите сведения об удостоверении локального издателя.
Необязательно. Задайте элемент <headers>, являющийся дочерним для элемента <localIssuer>, и укажите дополнительные заголовки, необходимые для правильного обнаружения локального издателя.
Безопасность
Обратите внимание, что если для данной привязки указаны адрес издателя и привязка, локальный издатель не применяется в конечных точках, использующих эту привязку. Клиенты, которые предполагают всегда использовать локальный издатель, должны убедиться, что они не используют такую привязку или что привязка изменена таким образом, что адрес издателя имеет значение null.
См. также
Задачи
Как настраивать учетные данные службы федерации
Как создавать федеративный клиент
Как создать WSFederationHttpBinding