Azure Relay の認証と承認
Azure Relay リソースへのアクセスを認証して認可する方法には、Microsoft Entra ID と Shared Access Signature (SAS) の 2 つがあります。 この記事では、この 2 種類のセキュリティ メカニズムの使用について詳しく説明します。
Microsoft Entra ID
Microsoft Entra と Azure Relay リソースとの統合により、リソースへのクライアントのアクセスをきめ細かに制御するための、Azure ロールベースのアクセス制御 (Azure RBAC) が提供されています。 Azure RBAC を使用して、"セキュリティ プリンシパル" (ユーザー、グループ、またはアプリケーションのサービス プリンシパルである可能性があります) にアクセス許可を付与できます。 このセキュリティ プリンシパルは、Microsoft Entra ID によって認証されて OAuth 2.0 トークンを返します。 トークンは、Azure Relay リソースにアクセスする要求を承認するために使用できます。
Microsoft Entra ID を使用した認証の詳細については、次の記事を参照してください。
重要
Microsoft Entra ID によって返される OAuth 2.0 トークンを使用してユーザーまたはアプリケーションを承認すると、Shared Access Signature (SAS) よりも優れたセキュリティと使いやすさが提供されます。 Microsoft Entra ID を使用すると、コードにトークンを格納する必要がないため、潜在的なセキュリティの脆弱性を危険にさらすことはありません。 可能な場合は、Azure Relay アプリケーションで Microsoft Entra ID を使用することをお勧めします。
組み込みのロール
Azure Relay の場合、名前空間およびそれに関連するすべてのリソースの Azure portal および Azure リソース管理 API による管理は、Azure RBAC モデルを使って既に保護されています。 Azure では、Relay 名前空間へのアクセスを承認するための次の Azure 組み込みロールが提供されています。
Role | 説明 |
---|---|
Azure Relay 所有者 | このロールを使用して、Azure Relay リソースへのフル アクセスを許可します。 |
Azure Relay リスナー | このロールを使用して、Azure Relay リソースへのリッスンおよびエンティティ読み取りアクセスを許可します。 |
Azure Relay 送信者 | このロールを使用して、Azure Relay リソースへの送信およびエンティティ読み取りアクセスを許可します。 |
Shared Access Signature
アプリケーションは、Shared Access Signature (SAS) 認証を使用して Azure Relay に対して認証できます。 アプリケーションは SAS 認証により、Relay 名前空間で構成されたアクセス キーを使用して Azure Relay サービスへの認証を行うことができます。 次に、このキーを使用して、クライアントがリレー サービスに対する認証に使用できる Shared Access Signature トークンを生成できます。
SAS 認証により、特定の権限で Azure Relay リソースにアクセスできるようになります。 SAS 認証を使用するには、リソースに対する関連した権限を使用して暗号化キーを構成する必要があります。 これにより、クライアントは SAS トークンを提示してリソースへのアクセス権を取得できます。このトークンは、アクセスされるリソース URI と、構成されたキーで署名された有効期限から成ります。
SAS のキーは Relay 名前空間で構成できます。 Service Bus メッセージングとは異なり、Relay ハイブリッド接続では、許可されていない送信者や匿名の送信者がサポートされます。 ポータルの次のスクリーンショットに示すように、エンティティの作成時に、そのエンティティの匿名アクセスを有効にすることができます。
SAS を使用するには、Relay 名前空間で、次のプロパティで構成される SharedAccessAuthorizationRule オブジェクトを構成します。
- KeyName 。
- PrimaryKey は、SAS トークンの署名または検証に使用される暗号化キーです。
- SecondaryKey は、SAS トークンの署名または検証に使用される暗号化キーです。
- Rights 。
名前空間レベルで構成された承認規則では、対応するキーを使用して署名されたトークンによって、クライアントの名前空間内のすべてのリレー接続へのアクセス権を付与できます。 Relay 名前空間では、このような承認規則を最大 12 個構成できます。 既定では、すべての権限を保有する SharedAccessAuthorizationRule は、最初のプロビジョニング時にすべての名前空間に対して構成されます。
エンティティにアクセスするには、クライアントには、特定の SharedAccessAuthorizationRuleを使用して生成された SAS トークンが必要です。 SAS トークンの生成には、承認規則に関連付けられた暗号化キーによって、アクセスが要求されるリソース URI と、有効期限で構成されるリソース文字列の HMAC-SHA256 を使用します。
Azure Relay の SAS 認証サポートは、Azure .NET SDK バージョン 2.0 以降に含まれています。 SAS には、 SharedAccessAuthorizationRuleのサポートが含まれています。 接続文字列をパラメーターとして受け取るすべての API では、SAS 接続文字列がサポートされています。
サンプル
- ハイブリッド接続: .NET、Java、JavaScript
- WCF Relay: .NET
次のステップ
- SAS の詳細については、「Shared Access Signature による Service Bus の認証」を引き続きお読みください。
- ハイブリッド接続機能の詳細については、Azure Relay ハイブリッド接続プロトコル ガイドを参照してください。
- Service Bus メッセージングの認証と承認についての対応する情報については、「Service Bus の認証と承認」を参照してください。