Skip To Content

ArcGIS トークンについて

ArcGIS Server は、独自のトークンベースの認証メカニズムを備えています。ユーザーは、ユーザー名とパスワードの代わりにトークンを使用して、自身を認証することができます。ArcGIS トークンは、ユーザー名、トークンの有効期限、およびいくつかの独自情報を含む暗号化された情報の文字列です。トークンを取得するには、ユーザーは有効なユーザー名とパスワードを指定する必要があります。ArcGIS Server は指定された認証情報を確認して、トークンを発行します。ユーザーは、セキュリティで保護されたリソースにアクセスするときに、このトークンを提示します。

トークンのプロパティ

トークンの有効期間

トークンのセキュリティを維持するために、各トークンには有効期限が関連付けられます。有効期限の切れたトークンを使用すると、エンド ユーザーにタイムアウトまたはその他のエラー メッセージが表示されることがあります。

トークンの有効期限を短くするほど、悪意のあるユーザーが傍受したトークンを使用できる時間が短くなるため、安全性が向上します。ただし、有効期限を短くすると、アプリケーションはより頻繁に新しいトークンをリクエストする必要があります。

発行されたトークンの有効期間は 2 つのパラメーターで定義します。

  • [短期トークンの有効期間]: クライアントがトークンをリクエストするときに、タイムアウト値が指定されていない場合は、短期トークンが発行されます。発行されたトークンは、このプロパティで定義された期間のみで有効です。クライアントがトークンをリクエストするときに、短期トークンの有効期間設定よりも短いタイムアウト値が指定されている場合は、リクエストされた有効期限の値でトークンが発行されます。
  • [長期トークンの有効期間]: クライアントがタイムアウト値を指定してトークンをリクエストした場合は、リクエストされたタイムアウト値が、このプロパティで定義された期間と比較されます。リクエストされたタイムアウト値が長期トークンの有効期間よりも短い場合は、リクエストされた有効期限の値でトークンが発行されます。リクエストされたタイムアウト値が長期トークンの有効期間設定を超えている場合でも、トークンは発行されますが、このプロパティに一致した有効期限になります。

共有鍵の定義

ArcGIS トークンは、暗号化された情報の文字列です。共有鍵は、この暗号化された文字列を生成するための暗号鍵です。共有鍵が複雑であるほど、悪意のあるユーザーが暗号を破って共有鍵を解読することは困難になります。共有鍵を解読し、ArcGIS Server の暗号化アルゴリズムを複製して認証済みユーザーのリストを取得したユーザーは、トークンを生成して、その ArcGIS Server 上にあるセキュリティで保護されたリソースを利用できるようになります。

共有鍵を定義する前に、次の点を考慮してください。

  • 共有鍵は 16 文字に設定する必要があります (16 文字を超える文字は使用されません)。鍵には一連のランダムな文字を使用することが推奨されます。英数字以外の文字を含め、あらゆる文字を使用することができます。
  • 鍵には、辞書にある単語や、簡単に推測できる一般的な値を使用しないでください。鍵を覚えておく必要や、別の場所で鍵を使用する必要はないので、鍵の複雑さがパスワードの場合のように問題になることはありません。
  • トークンは、Rijndael としても知られる AES (Advanced Encryption Standard) に基づいて、共有鍵で暗号化されます。鍵を構成する 16 文字は、暗号化に使用される 128 ビットを表します。暗号化と AES の詳細については、セキュリティ リファレンスを参照するか、組織内のセキュリティや暗号に詳しい担当者に問い合わせてください。
  • セキュリティ レベルが高い環境では、定期的に共有鍵を変更することをお勧めします。共有鍵を変更した場合は、新しい共有鍵を使用するためにアプリケーションの更新が必要になる場合があることに注意してください。共有鍵を変更すると、埋め込まれているすべての既存のトークンが無効になります。

トークンの安全な送信

トークンの傍受と悪用を避けるために、HTTPS を使用してセキュリティで保護された接続を使用することをお勧めします。HTTPS を使用することで、クライアントから送信されたユーザー名とパスワードと、ArcGIS Server から返されたトークンが傍受されなくなります。

GET リクエストにより、ArcGIS トークン ベース認証を使用してセキュリティ保護された Web サービスにアクセスするカスタム ArcGIS クライアント アプリケーションを構築する場合は、クエリ パラメーターではなく X-Esri-Authorization ヘッダーでトークンを送信することをお勧めします。これにより、プロキシ、ゲートウェイ、ロード バランサーなどのネットワーク上の中継機器がトークンを取得できないようにします。下記の HTTP GET リクエストの例では、X-Esri-Authorization ヘッダーでトークンを送信します。

GET https://arcgis.mydomain.com/arcgis/rest/services/SampleWorldCities/MapServer?f=pjson HTTP/1.1
    Host: arcgis.mydomain.com
    X-Esri-Authorization: Bearer xMTuPSYpAbj85TVfbZcVU7td8bMBlDKuSVkM3FAx7zO1MYD0zDam1VR3Cm-ZbFo-

ArcGIS Server が Web 層認証 (IWA、HTTP BASIC、PKI など) ではなく ArcGIS Server 認証を使用している場合、X-Esri-Authorization ヘッダーの代わりに標準の HTTP Authorization ヘッダーを使用できます。

GET https://arcgis.mydomain.com/arcgis/rest/services/SampleWorldCities/MapServer?f=pjson HTTP/1.1    Host: arcgis.mydomain.com
    Authorization: Bearer xMTuPSYpAbj85TVfbZcVU7td8bMBlDKuSVkM3FAx7zO1MYD0zDam1VR3Cm-ZbFo-