セキュリティ
このトピックでは、Azure Notification Hubs のセキュリティ モデルについて説明します。 Notification Hubs は Service Bus エンティティなので、Service Bus と同じセキュリティ モデルを実装しています。 詳細については、「 Service Bus Authentication (Service Bus の認証) 」のトピックを参照してください。
共有アクセス シークレット セキュリティ (SAS)
Notification Hubs は、SAS (Shared Access Signature) と呼ばれるエンティティレベルのセキュリティ スキームを実装します。 この方式では、メッセージング エンティティは最大 12 個の承認規則を記述で宣言し、そのエンティティに対する権限を付与できます。
各規則には、名前、キーの値 (共有シークレット)、および「セキュリティ要求」セクションで説明されている権限のセットが含まれます。 Notification Hub を作成すると、2 つの規則が自動的に作成されます。1 つは Listen 権限を持ち (クライアント アプリが使用するもの)、もう 1 つはすべてのすべての権限を持ちます (アプリ バックエンドが使用するもの)。
クライアント アプリから登録管理を実行するとき、通知で送信される情報が機密性のものではない場合の (たとえば、最新の気象情報)、Notification Hub への一般的なアクセス方法は、クライアント アプリには Listen のみのアクセス規則のキー値を渡し、アプリ バックエンドにはフル アクセス規則のキー値を渡すというものです。
Windows ストア クライアント アプリにキーの値を埋め込むことは推奨されません。 キー値を埋め込まなくて済むようにするには、クライアント アプリの起動時にアプリ バックエンドからキーを取得します。
Listen アクセス権を持つキーを使用するとクライアント アプリは任意のタグに登録できるということを理解しておく必要があります。 アプリで特定のタグへの登録を特定のクライアントに制限する必要がある場合は (たとえば、タグがユーザー ID を表す場合)、アプリ バックエンドが登録を実行する必要があります。 詳細については、「 登録管理」を参照してください。 この方法ではクライアント アプリは Notification Hubs に直接アクセスしないことに注意してください。
セキュリティ要求
他のエンティティと同様に、Notification Hub の操作は 3 つのセキュリティ要求 Listen、Send、Manage に対して許可されます。
要求 | 説明 | 許可される操作 |
---|---|---|
リッスン |
単一の登録の作成/更新、読み取り、削除。 |
登録の作成/更新。 登録の読み取り。 ハンドルのすべての登録の読み取り。 登録の削除。 |
Send |
Notification Hubs へのメッセージ送信。 |
メッセージの送信。 |
管理する |
Notification Hubs での CRUD (PNS 資格情報、セキュリティ キーの更新を含む)、タグに基づく登録の読み取り。 |
Notification Hubs の作成/更新/読み取り/削除。 タグ別の登録の読み取り。 |
Notification Hubs は、Microsoft Azure Access Control トークンによって許可された要求、および Notification Hubs に直接構成された共有キーを使用して生成された署名トークンによって許可された要求を受け付けます。