Service Bus の認証と承認

Azure Service Bus リソースへのアクセスを認証して承認する方法は 2 つあります。

  • Microsoft Entra ID
  • Shared Access Signatures (SAS)。

この記事では、この 2 種類のセキュリティ メカニズムの使用について詳しく説明します。

Microsoft Entra ID

Microsoft Entra と Service Bus の統合により、ロールベースのアクセス制御 (RBAC) が Service Bus リソースに提供されます。 Azure RBAC を使用して、セキュリティ プリンシパルにアクセス許可を付与できます。これは、ユーザー、グループ、アプリケーションのサービス プリンシパル、またはマネージド ID が考えられます。 Microsoft Entra では、セキュリティ プリンシパルを認証して OAuth 2.0 トークンを返します。 このトークンは、Service Bus リソース (キュー、トピックなど) へのアクセス要求を承認するために使用できます。

Microsoft Entra ID を使用した認証の詳細については、次の記事を参照してください。

Note

Service Bus REST API では、Microsoft Entra ID を使用する OAuth 認証がサポートされています。

重要

Microsoft Entra ID によって返される OAuth 2.0 トークンを使用してユーザーまたはアプリケーションを承認すると、Shared Access Signature (SAS) よりも優れたセキュリティと使いやすさが提供されます。 Microsoft Entra ID を使用すると、コードにトークンを格納する必要がないため、潜在的なセキュリティの脆弱性を危険にさらすことはありません。 可能な場合は、Azure Service Bus アプリケーションで Microsoft Entra ID を使用することをお勧めします。

サービス バスの名前空間に対してローカルまたは SAS キー認証を無効にし、Microsoft Entra 認証のみを許可できます。 詳細な手順については、「ローカル認証の無効化」を参照してください。

共有アクセス署名

SAS 認証により、特定の権限で Service Bus リソースにアクセスできるようになります。 Service Bus の SAS 認証には、Service Bus リソースに対する関連した権限を使用した暗号化キーの構成が伴います。 これにより、クライアントは SAS トークンを提示してリソースへのアクセス権を取得できます。このトークンは、アクセスされるリソース URI と、構成されたキーで署名された有効期限から成ります。

SAS のキーは Service Bus 名前空間で構成できます。 このキーは、その名前空間内のすべてのメッセージング エンティティに適用されます。 Service Bus のキューとトピックでキーを構成することもできます。 SAS を使用するために、名前空間、キュー、またはトピックに共有アクセス承認規則を構成できます。 この規則は次の要素で構成されます。

  • KeyName: ルールを識別します。
  • PrimaryKey: SAS トークンの署名または検証に使用される暗号化キー。
  • SecondaryKey: SAS トークンの署名または検証に使用される暗号化キー。
  • Rights: 付与されているリッスン送信、 、または管理権限を表します。

名前空間レベルで構成された承認規則では、対応するキーを使用して署名されたトークンによって、クライアントの名前空間内のすべてのエンティティへのアクセス権を付与できます。 Service Bus の名前空間、キュー、またはトピックでは、このような承認規則を最大 12 個構成できます。 既定では、すべての権限を含む共有アクセス承認規則は、最初のプロビジョニング時にすべての名前空間に対して構成されます。

エンティティにアクセスするには、クライアントに、特定の共有アクセス承認規則を使用して生成された SAS トークンが必要です。 SAS トークンの生成には、承認規則に関連付けられた暗号化キーによって、アクセスが要求されるリソース URI と、有効期限で構成されるリソース文字列の HMAC-SHA256 を使用します。

Service Bus の SAS 認証サポートは、Azure .NET SDK バージョン 2.0 以降に含まれています。 SAS には、共有アクセス承認規則のサポートが含まれています。 接続文字列をパラメーターとして受け取るすべての API では、SAS 接続文字列がサポートされています。

次のステップ

Microsoft Entra ID を使用した認証の詳細については、次の記事を参照してください。

SAS を使用した認証の詳細については、次の記事を参照してください。