방법: 로컬 발급자 구성
이 항목에서는 발급된 토큰에 로컬 발급자를 사용하도록 클라이언트를 구성하는 방법에 대해 설명합니다.
흔히 클라이언트가 페더레이션 서비스와 통신하는 경우, 이 서비스에서는 클라이언트가 페더레이션 서비스에 자신을 인증하는 데 사용하는 토큰을 발급할 보안 토큰 서비스의 주소를 지정합니다. 특정한 상황에서는 로컬 발급자를 사용하도록 클라이언트를 구성할 수 있습니다.
WCF(Windows Communication Foundation)는 페더레이션 바인딩의 발급자 주소가 http://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous
또는 null
인 경우 로컬 발급자를 사용합니다. 이러한 경우 로컬 발급자와의 통신에 사용할 바인딩과 이 발급자의 주소를 사용하여 ClientCredentials를 구성해야 합니다.
참고 항목
ClientCredentials
클래스의 SupportInteractive 속성이 true
로 설정된 경우 로컬 발급자 주소가 지정되지 않으며, 발급자 주소가 <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)
로컬 발급자를 구성에서 구성하려면
자체가 엔드포인트 동작에서 <clientCredentials> 요소의 자식인 <issuedToken> 요소의 자식으로 <localIssuer> 요소를 만듭니다.
address
특성을 토큰 요청이 허용되는 로컬 발급자의 주소로 설정합니다.ph x="1" /> 및
bindingConfiguration
특성을 로컬 발급자 엔드포인트와 통신할 때 사용할 적합한 바인딩을 참조하는 값으로 설정합니다.선택 사항. <identity> 요소를
<localIssuer>
요소의 자식으로 설정하고 로컬 발급자의 ID 정보를 지정합니다.선택 사항. <headers> 요소를
<localIssuer>
요소의 자식으로 설정하고 로컬 발급자의 주소를 올바로 지정하는 데 필요한 추가 헤더를 지정합니다.
.NET Framework 보안
지정된 바인딩에 발급자 주소와 바인딩을 지정하지 않으면 해당 바인딩을 사용하는 엔드포인트에는 로컬 발급자가 사용되지 않습니다. 로컬 발급자를 항상 사용해야 하는 클라이언트는 이러한 바인딩을 사용하지 않도록 해야 하며 발급자 주소가 null
이 되도록 바인딩을 수정해야 합니다.