セキュリティと認証

出典:ArcGIS Developer - Security and authentication - Introduction

セキュリティと認証

ArcGIS Platform は、ロケーション サービスやプライベート データへの安全なアクセスをサポートしています。これにより、有効かつ認証されたユーザーやサービスのみが保護された情報にアクセスできるようになります。安全なリソースにアクセスするためには、アプリケーションがサービスに対して認証されたリクエストを行えるように、認証方法を実装する必要があります。

はじめに

以下の手順で認証を開始できます。

  1. ArcGIS 開発者アカウントをお持ちでない場合は、新規作成してください。

  2. 利用可能な認証方法認証方法の選択を確認します。

  3. 開発者用ダッシュボードにサインインし、認証情報を作成します。

  4. 認証チュートリアルにアクセスして、アプリの構築を始めましょう。

認証方法

認証方法とは、アクセストークンを取得するためのプロセスです。アプリケーションがロケーション サービスに認証済みのリクエストを行う際には、アクセストークンを提示する必要があります。アクセストークンは、アプリケーションが利用できる範囲と権限を定義します。アクセストークンの取得に使用する認証方法はいくつかあります。

アクセストークンには以下の 3 種類あります。

  • API キー:すぐに使えるサービスや、ArcGIS Developer アカウントがあればプライベートなコンテンツへのアクセスをアプリケーションに与える永続的なトークンです。
  • ArcGIS Identity (指定ユーザー ログイン):既存の ArcGIS ユーザのアカウントに認可されたプライベート コンテンツおよびサービスへのアクセスをアプリケーションに与える一時的なトークンです。
  • アプリケーション認証: OAuth 2.0 で生成された一時的なトークンで、すぐに使えるサービスへのアクセスを認証することができます。

サービスに対して認証のリクエストを行うには、token パラメーターにアクセストークンを設定する必要があります。

https://<LOCATION-SERVICE-URL>?token=<ACCESS-TOKEN>

各サービスへのURLリクエストのフォーマットについては、位置情報サービスを参照してください。

API キー

API キーは永続的なアクセストークンであり、公開アプリケーションにすぐに使用できるサービスへのアクセスを付与します。また、ArcGIS Developer アカウントを使用すると、プライベートなコンテンツ、アイテム、および限定されたクライアント リファラーへのアクセスが可能になります。

次のような場合に API キーを使用します。

  • すぐに使えるサービスを利用するアプリケーションを素早く作成する場合。
  • ユーザーが ArcGIS アカウントでサインインしなくてもサービスへのアクセスを提供する場合。
  • アクセストークンは有効期限のないものを使用する場合。
API キー
  1. 開発者ダッシュボードAPI キーを構成します。 API キーは、ArcGIS 開発者アカウントにサインアップしたときに作成されます。

  2. 選択したクライアント API に従って API キーを設定し、ArcGIS Platform との認証を行います。

API キーの詳細についてはこちらをご参照ください。

ArcGIS Identity (指定ユーザー ログイン)

ArcGIS Identity (指定ユーザー ログインとも呼ばれる) は、一時的なアクセストークンであり、アプリケーション ユーザーの既存の ArcGIS Online または ArcGIS Enterprise アカウントで許可されたコンテンツおよびサービスへのアクセスをアプリケーションに与えるものです。この一時的なトークンは OAuth 2.0 プロトコルを使用して作成され、ユーザーのセキュアなパスワードをアプリケーションに公開することなく、ユーザーの代わりにアプリケーションを動作することを許可します。消費されたサービス クレジットは、認証されたユーザーの ArcGIS サブスクリプションに請求され、認証された期間中は、ユーザーに代わってアプリケーションがユーザーのプライベート コンテンツにアクセスすることが許可されます。

次のような場合に ArcGIS Identity (指定ユーザーログイン) を使用します。

  • ユーザーが自分の ArcGIS アカウントでサインインし、認証されていることを確認する場合。
  • アプリユーザーのクレジットを使用して、プライベートなデータ、コンテンツ、サービスの取引の支払いを行う場合。
  • ユーザーが一時的なトークンを使ってアプリにサインインできる時間を制限する場合。
arcgis-identity
  1. 開発者用ダッシュボードアプリケーションを登録し、クライアント認証情報を取得します。

  2. OAuth 2.0 認証のワークフローを実装します。

  3. ユーザーがアプリケーションを承認します。

  4. ArcGIS Platform は、ユーザー認証からの認証コードを一時的な ArcGIS Identity と交換します。

  5. ArcGIS Identity を使用して、特定のクライアント API に従って ArcGIS Platform で認証します。

ArcGIS Identity の詳細についてはこちらをご参照ください。

アプリケーション認証

アプリケーション認証は、OAuth 2.0 によって取得される一時的なアクセストークンで、ベースマップレイヤー、検索、ルート解析など、すぐに使えるサービスへのアクセスを可能にします。

次のような場合にアプリケーション認証を使用します。

  • すぐに使えるサービスにアクセスしたいが、一時的なトークンを使ってより安全なプロセスを実現したい場合。

  • ユーザーが ArcGIS アカウントを持っていなくても、サービスにアクセスできるようにする場合。

application-credenitals
  1. 開発者用ダッシュボードOAuth 2.0 アプリケーションを登録し、認証情報を受け取ります。

  2. ユーザーが Web サーバー上のリソースをリクエストします。

  3. OAuth 2.0 クライアント認証情報のワークフローを実装し、アプリケーション認証情報を生成します。

  4. アプリケーション認証を用いてユーザーのリクエストに応答します。

  5. アプリケーション認証を使用して、特定のクライアント API に従って ArcGIS Platform で認証します。

アプリケーション認証の詳細についてはこちらをご参照ください。

認証方法の選択

シナリオ 認証方法
ベースマップレイヤー、ジオコーディング、ルート解析など、すぐに使えるサービスへのアクセスのみを必要とするアプリを構築する場合 API キー
ユーザーが ArcGIS Platform でプライベート データを表示および編集できるようにするアプリを構築する場合 ArcGIS Identity (指定ユーザー ログイン)
ベースマップとジオコーディングへのアクセスのみを必要とするアプリケーションを、Webサーバーや API バックエンド上で構築している場合 アプリケーション認証
Esri Leaflet、Mapbox GL JS、またはOpenLayers を使用してアプリケーションを構築する場合 API キー
ArcGIS API を使用してアプリケーションを構築する場合 API キーまたは ArcGIS Identity (指定ユーザー ログイン)

機能の比較

 API キー   ArcGIS Identity (指定ユーザー ログイン)   アプリケーション認証 
永続的なトークン × ×
一時的なトークン ×
特定のサービスへの制限 × ×
サーバーレス認証 ×
すぐに使えるサービス
プライベート データのホスティング サービス ×
コンテンツ管理 ×

〇:対応 △:一部対応 (詳細はこちらを参照) ×:未対応

API のサポート

API キー アプリケーション認証 ArcGIS Identity (指定ユーザー ログイン)
ArcGIS API for JavaScript
ArcGIS Runtime API for Android
ArcGIS Runtime API for iOS
ArcGIS Runtime API for Java*
ArcGIS Runtime API for .NET
ArcGIS Runtime API for Qt*
ArcGIS API for Python
Esri Leaflet*
MapBox GL JS*
OpenLayers*
ArcGIS REST JS*

〇:対応 △:一部対応 (詳細は各 API のページを参照) *国内未サポート

注:ArcGIS 以外の API で ArcGIS Identity (指定ユーザー ログイン) を使用することは可能ですが、アプリケーションの一部としてユーザーび資格情報を取得、管理、および保護する責任が生じます。このオプションを選択する場合は、セキュリティのベスト プラクティスでガイドラインを確認してください。

チュートリアル