방법: 로컬 발급자 구성
이 항목에서는 발급된 토큰에 로컬 발급자를 사용하도록 클라이언트를 구성하는 방법에 대해 설명합니다.
흔히 클라이언트가 페더레이션 서비스와 통신하는 경우, 이 서비스에서는 클라이언트가 페더레이션 서비스에 자신을 인증하는 데 사용하는 토큰을 발급할 보안 토큰 서비스의 주소를 지정합니다. 특정한 상황에서는 로컬 발급자를 사용하도록 클라이언트를 구성할 수 있습니다.
페더레이션 바인딩의 발급자 주소가 https://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous이거나 null인 경우에는 WCF(Windows Communication Foundation)에서 로컬 발급자를 사용합니다. 이러한 경우 로컬 발급자와의 통신에 사용할 바인딩과 이 발급자의 주소를 사용하여 ClientCredentials를 구성해야 합니다.
참고: |
---|
ClientCredentials 클래스의 SupportInteractive 속성이 true로 설정되거나, 로컬 발급자 주소가 지정되지 않거나, wsFederationHttpBinding element 또는 기타 페더레이션 바인딩에서 지정한 발급자 주소가 https://schemas.xmlsoap.org/ws/2005/05/identity/issuer/self, https://schemas.microsoft.com/2005/12/ServiceModel/Addressing/Anonymous 또는 null인 경우 Windows CardSpace 발급자가 사용됩니다. |
로컬 발급자를 코드로 구성하려면
IssuedTokenClientCredential 형식의 변수를 만듭니다.
해당 변수를 ClientCredentials 클래스의IssuedToken 속성에서 반환된 인스턴스에 설정합니다. 이 인스턴스는 ClientBase에서 상속된 클라이언트의ClientCredentials 속성이나 ChannelFactory의 Credentials 속성에 의해 반환됩니다.
Dim itcc As IssuedTokenClientCredential = client.ClientCredentials.IssuedToken
IssuedTokenClientCredential itcc = client.ClientCredentials.IssuedToken;
로컬 발급자의 주소가 생성자의 인수인 EndpointAddress의 새 인스턴스에 LocalIssuerAddress 속성을 설정합니다.
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> 요소를 끝점 동작에서 <clientCredentials> 요소의 자식인 <issuedToken> 요소의 자식으로 만듭니다.
address 특성을 토큰 요청이 허용되는 로컬 발급자의 주소로 설정합니다.
binding 및 bindingConfiguration 특성을 로컬 발급자 끝점과 통신할 때 사용할 적합한 바인딩을 참조하는 값으로 설정합니다.
선택적 요소입니다. <identity> 요소를 <localIssuer> 요소의 자식으로 설정하고 로컬 발급자의 ID 정보를 지정합니다.
선택적 요소입니다. <headers> 요소를 <localIssuer> 요소의 자식으로 설정하고 로컬 발급자의 주소를 올바로 지정하는 데 필요한 기타 헤더를 지정합니다.
보안
지정된 바인딩에 발급자 주소와 바인딩을 지정하지 않으면 해당 바인딩을 사용하는 끝점에는 로컬 발급자가 사용되지 않습니다. 로컬 발급자를 항상 사용해야 하는 클라이언트는 이러한 바인딩을 사용하지 않도록 해야 하며 발급자 주소가 null이 되도록 바인딩을 수정해야 합니다.
참고 항목
작업
방법: 페더레이션 서비스에서 자격 증명 구성
방법: 페더레이션 클라이언트 만들기
방법: WSFederationHttpBinding 만들기