다음을 통해 공유


수신 어댑터에 대한 SSO 지원

Enterprise SSO(Single Sign-On)는 로컬, 네트워크 및 도메인 간에 암호화된 사용자 자격 증명을 저장 및 전송하기 위한 서비스를 제공합니다. 전송 어댑터 작성기는 SSO API를 사용하여 전송 어댑터가 백 엔드 응용 프로그램에 액세스하는 데 사용하는 사용자 자격 증명을 처리할 수 있습니다.

SSO를 지원하지 않는 전송 어댑터는 대개 백 엔드 응용 프로그램에 액세스하기 위해 사용하는 단일 자격 증명 집합으로 구성해야 합니다. 대부분의 백 엔드 시스템의 경우 단일 계정 인증은 일부 보안 사항을 만족하지 않을 수 있습니다. 많은 응용 프로그램에서는 액세스하는 사용자에 따라 각기 다른 액세스 권한을 제공합니다. SSO를 사용하면 액세스하는 사용자에 따라 어댑터가 엔드포인트에 사용할 자격 증명을 동적으로 선택할 수 있습니다.

SSO에서의 수신 어댑터 작동 방법

SSO를 지원하는 수신 어댑터는 메시지를 받은 후, BizTalk Server에 해당 메시지를 게시하기 전에 다음 단계를 수행합니다.

  1. 어댑터는 보낸 사람에게 가장하고 ISSOTicket.IssueTicket API를 사용하여 보낸 사람 대신 SSO 티켓을 가져옵니다.

  2. 성공적으로 SSO 티켓을 가져온 후 어댑터가 시스템 네임스페이스 아래의 메시지 컨텍스트 속성 “SSOTicket”에 해당 티켓을 저장합니다.

    다음 코드 조각은 티켓을 가져오는 방법과 메시지 컨텍스트에 해당 티켓을 저장하는 방법을 설명합니다.

public class MyAdapter : IBTTransport,   
                         IBTTransportConfig,   
                         IBTTransportControl,  
                         IPersistPropertyBag,   
                         IBaseComponent  
{  
...  
     private string m_SSOToken = null;  
  
 // Get a ticket for the sender  
     private void GetSSOTicket(IntPtr token)  
     {  
       bool impersonated = false;  
      WindowsImpersonationContext wic = null;  
  
 if (token != (IntPtr)0)   
 {  
     try   
 {  
         // Impersonate the user using his security  
 // token  
            WindowsIdentity wi =   
 new WindowsIdentity(token);  
            wic = wi.Impersonate();  
            impersonated = true;  
  
         // Get an SSO ticket for the impersonated  
 // user  
            ISSOTicket ssoTicket = new ISSOTicket();  
            m_SSOToken = ssoTicket.IssueTicket(0);  
         }  
         finally   
 {  
           if (impersonated)  
            // Revert the impersonation  
            wic.Undo();  
          }  
}  
}  
...  
  
     private void WriteSSOTicketToContext(  
 IBaseMessage message )  
     {  
         if (m_SSOTicket != null)   
 {  
 // Write the SSO ticket to the message context  
          message.Context.Write(  
 “SSOTicket”,  
 http://schemas.microsoft.com/BizTalk/2003/system-properties,   
 m_SSOToken);  
        }  
      }  
}  

Party Resolution

Party Resolution 파이프라인 구성 요소는 보낸 사람 인증서 또는 보낸 사람의 SID(보안 식별자)를 구성된 해당 BizTalk Server 파티에 매핑합니다. 이 정보를 사용할 수 있는 어댑터는 구성된 경우 다운스트림 파티 확인 구성 요소에서 사용할 WindowsUserSignatureCertificate라는 두 가지 시스템 메시지 컨텍스트 속성을 설정해야 합니다.

WindowsUser 속성은 보낸 사람의 도메인 사용자(예: redmond\myBtsUser)로 채워집니다. SignatureCertificate 속성은 클라이언트 인증 인증서의 지문으로 채워집니다.

암호 관리

엔드포인트의 속성에 직접 자격 증명을 입력하면 바인딩 파일을 내보내야 하는 경우 암호 필드가 비게 됩니다. 따라서 사용자는 관리자로 암호를 다시 입력해야 합니다. 자격 증명에 SSO를 사용하면 이러한 불편함을 덜 수 있습니다.

어댑터 엔드포인트에 Password 속성이 있는 경우 실제 값은 SSO Store 구성 데이터베이스에 명확한 텍스트로 저장됩니다. 그러나 사용자 인터페이스에는 "*"로 표시됩니다. 또한 이 속성은 네트워크를 통해 전송되며 BizTalk Server 샘플 ExplorerOM을 사용하는 간단한 스크립트를 통해 읽을 수 있습니다.