アプリケーションのセキュリティは非常に重要です。 ユーザー エクスペリエンスがどの程度優れているかに関係なく、セキュリティで保護されていないアプリケーションはハッカーによって侵害され、その整合性が損なわれ、ユーザーの信頼が悪化する可能性があります。
この記事には、Azure Maps アプリケーションのセキュリティを確保するためのヒントが含まれています。 Azure を使用する場合は、使用可能なセキュリティ ツールを理解することが重要です。 詳細については、 Azure セキュリティドキュメントの「Azure セキュリティの概要 」を参照してください。
セキュリティの脅威について理解します
ハッカーがアカウントにアクセスすると、課金対象トランザクションが無制限に実行される可能性があり、QPS の制限により予期しないコストが発生し、パフォーマンスが低下する可能性があります。
Azure Maps アプリケーションをセキュリティで保護するためのベスト プラクティスを実装するには、使用可能なさまざまな認証オプションを理解することが不可欠です。
Azure Maps での認証のベスト プラクティス
Azure Maps を使用して公開されているクライアント アプリケーションを開発する場合は、認証シークレットがプライベートであり、パブリックにアクセスできないようにすることが重要です。
サブスクリプション キーベースの認証 (共有キー) は、クライアント側のアプリケーションまたは Web サービスで使用できますが、アプリケーションまたは Web サービスを保護するための最も安全性の低い方法です。 これは、キーを HTTP 要求から簡単に抽出でき、SKU (価格レベル) で使用可能なすべての Azure Maps REST API へのアクセスを許可できるためです。 サブスクリプション キーを使用する場合は、それらを 定期的にローテーション し、共有キーは構成可能な有効期間をサポートしていないため、ローテーションは手動で行う必要があります。 Azure Key Vault で共有キー認証を使用して、シークレットを Azure に安全に格納することを検討してください。
Microsoft Entra 認証または Shared Access Signature (SAS) トークン認証を使用する場合、Azure Maps REST API へのアクセスはロールベースのアクセス制御 (RBAC) を使用して承認されます。 RBAC を使用すると、発行されたトークンに付与されるアクセス レベルを指定できます。 アクセス権を付与する期間を考慮することが重要です。 共有キー認証とは異なり、これらのトークンの有効期間は構成可能です。
パブリック クライアント アプリケーションと機密クライアント アプリケーション
パブリック クライアント アプリケーションと機密クライアント アプリケーションの間には、さまざまなセキュリティ上の問題があります。 どのようなクライアント アプリケーションが "パブリック" または "機密" と見なされるのかについては、Microsoft ID プラットフォームのドキュメント「パブリック クライアント アプリケーションと機密クライアント アプリケーション」を参照してください。
パブリック クライアント アプリケーション
デバイス、デスクトップ コンピューター、または Web ブラウザーで実行されているアプリケーションの場合は、 クロス オリジン リソース共有 (CORS) を使用して Azure Maps アカウントにアクセスできるドメインを定義することをお勧めします。 CORS は、"https://microsoft.com" などの配信元が Azure Maps アカウントのリソースを要求することを許可されていることをクライアントのブラウザーに通知します。
注意
Web サーバーまたはサービスを開発している場合、CORS を使用して Azure Maps アカウントを構成する必要はありません。 ただし、クライアント側の Web アプリケーションに JavaScript コードが含まれている場合は、CORS が適用されます。
機密クライアント アプリケーション
Web サービスやサービス/デーモン アプリなどのサーバー ベースのアプリケーションの場合は、 マネージド ID を 使用してシークレットの管理が複雑にならないようにすることを検討してください。 マネージド ID は、Web サービスが Microsoft Entra 認証を使用して Azure Maps に接続するための ID を提供できます。 その後、Web サービスはこの ID を使用して、必要な Microsoft Entra トークンを取得できます。 Azure RBAC を使用して Web サービスに付与されるアクセスを構成し、可能な限り最小限の 特権ロール を適用することをお勧めします。