내보내기(0) 인쇄
모두 확장

REST 기반 서비스 버스 응용 프로그램에 대한 보안 설정

업데이트 날짜: 2015년 2월

이 항목에서는 응용 프로그램이 Azure에서 사용할 수 있는 인증 기능 및 Microsoft.ServiceBus.dll 어셈블리를 통해 서비스 버스와 상호 작용한다고 가정합니다. 특히, 이 항목에서는 웹 응용 프로그램의 기본 바인딩인 WebHttpRelayBinding 바인딩을 사용하는 응용 프로그램을 설명합니다.

WebHttpRelayBinding 바인딩을 기반으로 빌드된 서비스에 액세스하는 웹 클라이언트에 대한 릴레이 인증 옵션은 대부분의 일반적인 시나리오에 맞게 만들어졌습니다. 웹 스타일 클라이언트는 모든 들어오는 트래픽을 받아들이는 서비스와 가장 빈번히 통신합니다. 이러한 클라이언트는 다양한 사용자 지정 기술을 사용하여 간단한 인증만을 수행함으로써 AJAX 스타일 사용자 환경을 제공 및 향상시킵니다. WebHttpRelayBinding 바인딩에 대한 Security.Transport.RelayAuthenticationType 속성을 None으로 설정하여 동일한 결과를 달성하고 유사한 충실도를 제공할 수 있습니다. 서비스 버스 WebNoAuth 릴레이 인증 샘플에서 이 옵션을 볼 수 있습니다. 이 옵션을 설정하는 간소화된 절차는 이 섹션의 뒷부분에 설명되어 있습니다.

  1. 서비스에서 필요한 경우 인증을 구성합니다.

    Console.Write("Your Key Name: ");
    string keyName = Console.ReadLine();
    Console.Write("Your Key: ");
    string key = Console.ReadLine();
    …
    TransportClientEndpointBehavior clientBehavior = new TransportClientEndpointBehavior();
    clientBehavior.TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(keyName, key);
    

    다른 응용 프로그램과 마찬가지로 App.config 파일에서나 프로그래밍 방식으로 인증을 구성할 수 있습니다.

  2. RelayClientAuthenticationType 필드를 None으로 설정합니다.

    <bindings>
      <!-- Application Binding -->
      <webHttpRelayBinding>
        <binding name="default">
          <security relayClientAuthenticationType="None" />
        </binding>
      </webHttpRelayBinding>
    </bindings>
    

    그러면 서비스가 서비스 버스에 인증할 수 있을 뿐만 아니라(필요한 경우) 모든 클라이언트가 인증 없이 연결할 수 있습니다. 이 시나리오에서 App.config 파일은 전체 시나리오에 사용할 보안 유형을 정의하지만 프로그래밍 방식 구성(1단계)은 App.config 파일을 재정의합니다. 서비스 인증에 대해 “None”을 사용할 수 없기 때문에 이러한 재정의가 필요합니다.

RelayClientAuthenticationType 속성에 대해 RelayAccessToken 옵션을 사용하는 경우 서비스 버스는 모든 HTTP 트래픽이 수신 대기 서비스에 전달되기 전에 인증 및 권한 부여가 수행되어야 하는 일반 HTTP 서비스를 통해 보안 계층을 제공합니다. Relay 인증이 서비스 버스에 사용하도록 설정된 경우 프로그래밍 방식 자격 증명을 통해 필요한 보안 토큰을 제공할 수 있습니다.

프로그래밍 방식 자격 증명을 구현하기로 결정한 경우 SAS 또는 액세스 제어 서비스를 통해 서비스 버스에 사용할 수 있는 인증 옵션(예: 공유 암호 또는 단순 웹 토큰)을 사용할 수 있습니다. 자세한 내용은 TechNet의 방법: 서비스 버스 응용 프로그램에 대한 보안 및 인증 설정. 다음 절차에서는 웹 토큰을 만드는 간소화된 절차를 보여 줍니다.

  1. 사용자로부터 발급자 이름 및 암호를 검색합니다.

    Console.Write("Your Issuer Name: ");
    string issuerName = Console.ReadLine();
    Console.Write("Your Issuer Secret: ");
    string issuerSecret = Console.ReadLine();
    
  2. 전송 클라이언트 자격 증명 유형을 SimpleWebToken으로 정의합니다.

    TransportClientEndpointBehavior behavior = new TransportClientEndpointBehavior();
    behavior.CredentialType = TransportClientCredentialType.SimpleWebToken;
    
    
  3. ComputeSimpleWebTokenString에 대한 호출을 사용하여 웹 토큰을 계산하고 초기화합니다.

    behavior.Credentials.SimpleWebToken.SimpleWebToken = SharedSecretCredential.ComputeSimpleWebTokenString(issuerName, issuerSecret);
    

    웹 토큰을 만들고 나면 끝점에 대한 동작을 추가하고 채널 팩터리를 만들며 서비스 버스에 대한 채널을 열 수 있습니다.

표시:
© 2015 Microsoft