エクスポート (0) 印刷
すべて展開

Service Bus 接続のセキュリティ保護と認証

更新日: 2014年6月

このセクションでは、Microsoft Azure の Service Busで認証を使用する具体的な手順について説明します。

Service Bus を使用するアプリは、2 つの時点でセキュリティ タスクを実行する必要があります。第一に、Service Bus によって使用できるように公開されたサービスは、リソースです。したがって、目的が設定および登録であるかサービス機能を呼び出すことであるかにかかわらず、リソースにアクセスするには Microsoft Azure アクセス制御 サービスのトークンを使用した認証と承認が必要です。第二に、Service Bus によってサービスとやり取りするアクセス許可が付与された場合、サービスには認証、承認、暗号化、およびメッセージ交換で要求される署名に関連付けられた、セキュリティに関する独自の考慮事項があります。この 2 つ目のセキュリティに関する考慮事項は、Service Bus の機能とは関係なく、純粋にサービスとクライアントの考慮事項です

最初のケースでは、Service Bus で公開されたサービスを使用するための認証と承認は アクセス制御 サービスによって制御されており、Service Bus API 経由でプログラムを使用してアクセスできます。現在使用できる認証には、次の 4 種類があります:

2 つ目のケースでは、通常、メッセージ レベルのセキュリティ (メッセージの暗号化など) やトランスポート レベルのセキュリティ (Windows または NTLM など) を指定するエンド ツー エンドのセキュリティを、元のサービス自体が適用します。エンド ツー エンドの会話セキュリティは、Windows Communication Foundation (WCF) プログラミング モデルに従います。詳細については、WCF ドキュメントのトピック「Securing Services」をご覧ください。以下のトピックにはエンド ツー エンド セキュリティに関する一般的な説明が含まれていますが、主に Service Bus を使用するために構成されたサービス固有の機能の説明に重点を置いています。詳細情報 Service Bus 認証と アクセス制御 の詳細については、「Building Applications that Use Access Control Services」をご覧ください。

すべての Service Bus リレー バインドには、プログラムまたは構成ファイルのいずれかで指定できるセキュリティ値を含むセキュリティ バインド要素があります。たとえば、NetTcpRelaySecurityElement がセキュリティ機能を実行する対象となる NetTcpRelayBinding には次のセキュリティ値が含まれ、プログラムまたは構成ファイルによって指定することができます。

Mode
エンド ツー エンド セキュリティ モードの短縮形であるこの値は Service Bus を通したメッセージ交換全体のセキュリティを定義します。プログラムの値はリレー バインドによって異なります。たとえば、Microsoft.ServiceBus.EndToEndSecurityMode クラスは NetTcpRelayBinding バインドをサポートし、Microsoft.ServiceBus.EndToEndWebHttpSecurityMode 値はこのサービスと WebHttpRelayBinding バインドを一緒に実行します。NetTcpRelayBinding バインドと共に使用する場合、このプロパティは Microsoft.ServiceBus.EndToEndSecurityMode.NoneMicrosoft.ServiceBus.EndToEndSecurityMode.MessageMicrosoft.ServiceBus.EndToEndSecurityMode.Transport、または Microsoft.ServiceBus.EndToEndSecurityMode.TransportWithMessageCredential に設定できます。既定では Microsoft.ServiceBus.EndToEndSecurityMode.Transport に設定され、トランスポート固有のセキュリティ設定が有効になります。Microsoft.ServiceBus.EndToEndSecurityMode.Message または Microsoft.ServiceBus.EndToEndSecurityMode.Transport を含む設定を使用する場合は、追加のプロパティを設定する必要があります。一般に、Mode 値は標準の WCF セキュリティ プログラミング モデルに従います。

Message
エンド ツー エンドのメッセージ セキュリティを Microsoft.ServiceBus.EndToEndSecurityMode.Message または TransportWithMessageCredential に設定した場合は、メッセージごとにセキュリティを定義します。いずれかの値を Mode プロパティに設定するには、使用する資格情報の種類を指定するためにプロパティを設定し、資格情報をセキュリティで保護するために使用するアルゴリズムを設定する必要があります。Mode と同様に、メッセージ セキュリティ設定は WCF プログラミング モデルに従います。

Transport
このプロパティは、指定したバインドのトランスポート バインド要素に固有のセキュリティ プロパティのラッパーです。たとえば、Microsoft.ServiceBus.RelayedOnewayTransportSecurity クラスは、Microsoft.ServiceBus.RelayedOnewayTransportSecurity.ProtectionLevel 設定を NetEventRelayBindingNetOnewayRelayBinding バインドで公開および実装します。これに対して、Microsoft.ServiceBus.HttpRelayTransportSecurity 型は、BasicHttpRelayBindingWS2007HttpRelayBinding バインドのプロキシ資格情報を設定します。既に説明したプロパティと同様、一般に Transport セキュリティは WCF セキュリティ モデルに従います。

RelayClientAuthenticationType
サービスのクライアントがメッセージを送信するときに、アクセス制御 によって発行されたセキュリティ トークンを Service Bus に提示する必要があるかどうかを制御します。したがって、このセキュリティ プロパティは Service Bus に固有のプロパティであり、このセクションのトピックの主要なテーマでもあります。サービスは、必ず アクセス制御 で認証し、承認トークンを Service Bus に提示する必要があります。提示しないと、Service Bus リソースに関係するエンドポイントの登録を実行できません。ただし、クライアントが Service Bus で認証する必要があるのは、RelayClientAuthenticationTypeRelayAccessToken に設定されている場合のみです。RelayClientAuthenticationTypeMicrosoft.ServiceBus.RelayClientAuthenticationType.None に設定すると、トークンの要求が放棄されます。独自の認証を提供する場合、または認証を必要としない場合は、Service Busの通信区間におけるクライアント (送信側) の認証を省略できます。既定値は RelayAccessToken です。

また、すべてのバインドには、情報の暗号化に使用する方法を定義する Scheme プロパティが含まれます。HTTP ベースのバインドの場合 (BasicHttpRelayBinding など)、既定の方法は独自のセキュリティ プロトコルを含む HTTPS です。

このセクションの内容

コミュニティの追加

追加
表示:
© 2014 Microsoft