このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
エクスポート (0) 印刷
すべて展開

方法: Service Bus アプリケーションのセキュリティと認証を設定する

更新日: 2014年9月

このトピックでは、Microsoft Azure の Service Bus を使用してサービスとクライアント アプリを認証する方法について説明します。詳細情報 トランスポート/メッセージ レベルのセキュリティの設定については、「Service Bus 接続のセキュリティ保護と認証」と、Windows Communication Foundation (WCF) ドキュメントの「Securing Services」をご覧ください。

サービスを展開する場合は、まず Service Bus との認証に使用する資格情報の種類と、サービスに接続するクライアントで認証が必要かどうかを決めておく必要があります。すべてのサービスは、SAML、共有シークレット、またはシンプルな Web トークンを使用して、Service Busで認証する必要があります。サービスとクライアントに別の形式の認証を使用するように決定できます。詳細については、TechNet の「 Service Bus アプリケーションの認証の選択.

クライアントを開発している場合は、接続するサービスで必要とされる認証資格情報の種類を決定してください。そのためには、さまざまな方法があります。これには、コントラクト メタデータからの情報の取得が含まれます。詳細については、TechNet の「方法: Service Bus で使用する WCF サービス コントラクトを設計する.

  1. 指定された <transportClientEndpointBehavior> 要素を含む動作、および関連する資格情報も定義します。

    WebHttp サンプル からの次のコードは、共有シークレットの資格情報を宣言し構成する方法を示します。

    <behaviors>
      <endpointBehaviors>
        <behavior name="sharedSecretClientCredentials">
          <transportClientEndpointBehavior credentialType="SharedSecret">
            <clientCredentials>
              <sharedSecret issuerName="ISSUER_NAME" issuerSecret="ISSUER_SECRET" />
            </clientCredentials>
          </transportClientEndpointBehavior>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    

    この手順で、発行者名とシークレットは、App.config ファイルに直接保持されています。このようなセキュリティ情報を含む構成ファイルには、なんらかの形のセキュリティを実装することをお勧めします。

    App.config ファイルで資格情報が定義されていれば、アプリケーションはセキュリティ構成を自動的に使用します。追加の手順は不要です。

  1. セキュリティ資格情報を取得します。

    Console.Write("Your Issuer Name: ");
    string issuerName = Console.ReadLine();
    Console.Write("Your Issuer Secret: ");
    string issuerSecret = Console.ReadLine();
    

    Service Bus のサンプルで共通しているように、この手順ではユーザーが発行者名とシークレットを指定し、直接入力します。

  2. セキュリティ資格情報を含む、資格情報エンドポイント動作オブジェクトを作成します。

    TransportClientEndpointBehavior sharedSecretServiceBusCredential = new TransportClientEndpointBehavior();
    sharedSecretServiceBusCredential.CredentialType = TransportClientCredentialType.SharedSecret;
    sharedSecretServiceBusCredential.Credentials.SharedSecret.IssuerName = issuerName;
    sharedSecretServiceBusCredential.Credentials.SharedSecret.IssuerSecret = issuerSecret;
    
  3. エンドポイントに接続するチャネル ファクトリを作成します。

    ChannelFactory<IEchoChannel> channelFactory = new ChannelFactory<IEchoChannel>("RelayEndpoint", new EndpointAddress(serviceUri));
    
  4. チャネル ファクトリに資格情報を適用します。

    channelFactory.Endpoint.Behaviors.Add(sharedSecretServiceBusCredential);
    

    資格情報をチャネル ファクトリに適用したら、エンドポイントへの接続を開いて Service Bus にアクセスできます。

表示:
© 2015 Microsoft