認証のベスト プラクティス
アプリケーションの唯一の最重要部分は、セキュリティです。 アプリケーションがセキュリティで保護されていない場合、ユーザー エクスペリエンスがどれほど優れていたとしても、ハッカーがアプリケーションを台無しにする可能性があります。
Azure Maps アプリケーションのセキュリティを確保するためのヒントを次に示します。 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 Map アカウントにアクセスできるドメインを定義することを検討する必要があります。 CORS は、"; などのhttps://microsoft.com"配信元をクライアントのブラウザーに指示し、Azure Map アカウントのリソースの要求を許可します。
注意
Web サーバーまたはサービスを開発している場合、Azure Maps アカウントを CORS で構成する必要はありません。 クライアント側の Web アプリケーションに JavaScript コードがある場合は、CORS が適用されます。
機密クライアント アプリケーション
サーバー上で実行されるアプリ (Web サービスやサービス/デーモン アプリなど) の場合、シークレットの管理のオーバーヘッドと複雑さを回避する場合は、 マネージド ID を検討してください。 マネージド ID は、Web サービスが Microsoft Entra 認証を使って Azure Maps に接続するときに使う ID を提供できます。 その場合、Web サービスはその ID を使って必要な Microsoft Entra トークンを取得します。 Azure RBAC を使用して、可能な 限り最小限の特権ロール を使用して、Web サービスに与えられるアクセスを構成する必要があります。