セキュリティと認証

ArcGIS での認証

セキュリティを担保するために、ネットワーク上で利用可能なリソースに対して、公開範囲を設定してアクセスを制限することでリソースを保護します。リソースに対するアクセスはインターネットを使用して行われますが、VPN やイントラネットを使用したアクセスも可能です。公開範囲が制限されたリソースにアクセスする必要がある場合、アプリケーション、またはアプリケーションを利用するユーザーは、認定された機関 (ArcGIS Online、ArcGIS Enterprise、またはその他の互換性のあるセキュリティで保護されたサービスなどの ArcGIS プラットフォーム) との認証を行う必要があります。

アプリケーションが以下の操作を行う場合は、認証が必要となります。

  • プライベート コンテンツへのアクセス
  • コンテンツの作成、編集、公開
  • プレミアム コンテンツおよびサービスへのアクセス

プレミアム コンテンツとサービスは、クレジットを使用するサービスモデルです。クレジットの購入には、ArcGIS Online 組織アカウントのためのクレジットを購入するか、その他の方法で取得します。アプリケーションで対象となるサービスを使用すると、クレジットが消費されます。消費されるクレジット数は、サービスによって異なります。クレジットが必要なサービスについては、クレジットの概要を参照してください。クレジットには費用もかかりますし、コンテンツの公開や編集はビジネスにとって重要であるため、Esri はこれらの貴重なリソースを保護するためのサービスやメカニズムを提供しています。

製品毎の実装方法
セキュリティ手法や ArcGIS 認証パターンに詳しい場合は、以下の製品固有の詳細を参照してください。

※ 現在、国内未サポートです。

セキュリティの方法

ArcGIS プラットフォームは、いくつかのセキュリティ方法をサポートしています。ArcGIS Runtime を使用する場合でも、他のテクノロジを使用する場合でも、アプリを構築する際には、ユーザに代わってセキュリティ保護されたリソースにアクセスするために、少なくとも 1 つの認証方法を実装する必要があります。セキュアなリソースへのアクセスを得るための方法には、以下のようなものがあります。

  • OAuth 2.0 (OAuth):ArcGIS プラットフォームがユーザーの信頼性を判断し、トークンがクライアント アプリに提供されます。このトークンは、保護されたリソースへのリクエストで使用されます。OAuth 2.0 は、ユーザーのサイン インに使用することを推奨する方法です。ArcGIS Online および ArcGIS Enterprise バージョン 10.3 以降で利用可能です。

  • トークン ベース:アプリは、ユーザーに有効なユーザー名とパスワードを要求します。応答では、認証済みリソースのポータルで保護されたコンテンツのリクエストに含まれるトークンを受け取ります。ArcGIS Online および ArcGIS Enterprise で使用できます。

  • 公開鍵基盤 (PKI):公開および秘密のデジタル キーは、安全ではないネットワーク上での認証および安全な通信をサポートします。PKI では、ユーザー、組織、またはソフトウェア エージェントの ID はデジタル キーのペアで表されます。PKI のユーザーは、デジタル キーを提示することで認証する必要があり、ユーザー名とパスワードが発行されることはありません。PKI では、公開鍵暗号と呼ばれる数学的手法を使用して、ユーザーまたは組織を表すデジタル キーを生成します。

    ArcGIS Enterprise は、ArcGIS Web Adaptors を使用して PKI ソリューションを活用します。ArcGIS Enterprise 上のリソースに対してリクエストが行われると、Web サーバーは、提供されたクライアント証明書を検証してユーザーを認証します。リクエスト(ユーザー名とともに)は、Web Adaptor を介して ArcGIS Enterprise に転送されます。

    ArcGIS Enterprise は、指定ユーザーから要求されたリソースへのアクセス権を持っていることを確認してから、適切な応答を送信します。

  • HTTP/Windows 認証 (HTTP ベーシック、HTTP ダイジェスト、または統合 Windows 認証 (IWA)):リソースは、サービスに設定されたユーザー名とパスワードによって保護され、ブラウザーのポップアップまたはセッション クッキーによって要求されます。IWA を使用する場合、ログインは Microsoft Windows Active Directory を通じて管理されます。ユーザーはポータルにサイン インしたり、ポータルからサイン アウトするのではなく、Web サイトを開くと、Windows にログインするために使用したのと同じアカウントを使用してサイン インします。詳細については、ポータルと Windows 認証の統合を参照してください。

通常、サーバー管理者にも相談して、ポータルで使用する認証の種類と、ポータルにアクセスするために必要な方法を決定します。

別の認証方法の要件がない限り、アプリケーションは OAuth 2.0 を使用することをお勧めします。

認証パターン

サポートされている認証方法には、アプリ開発者であるユーザーとアプリ個々のユーザーの2つの分類があります。アプリを使用して提供したいユーザー体験とアプリに割り当てるリソースのアクセス権に応して、ArcGIS Runtime では2つの認証パターンが用意されています。

  • 指定ユーザ ログイン
  • アプリ ログイン

指定ユーザー ログイン

指定ユーザーのログインパターンでは、ArcGIS Online のユーザーが、アプリに対してコンテンツやサービスへのアクセスを許可します。このシナリオでは、アプリがユーザーに ArcGIS Online のユーザー名とパスワードの入力を要求し、その認証情報を使用してコンテンツにアクセスします。このモデルを使用すると、ユーザーはプレミアム コンテンツを使用するために自身の保有するクレジットを消費し、自身がアクセス権を持つリソースにアクセスすることができます。

アプリは、ログインしたユーザーが所有、またはそのユーザーの組織が所属するプライベートコンテンツにアクセスすることができます。また、ジオコーディング、ルーティング、人口統計データなどのプレミアム コンテンツにもアクセスできます。

ログイン認証で取得したトークンの使用で発生した使用量は、そのユーザーの組織に請求されます。アプリは、ログインしたユーザーがアクセスできるすべてのサービスにアクセスできます。

ユーザーがアプリを承認してアクセストークンを取得すると、アプリは、ユーザーに許可されている以下の操作を行うことができます。

  • ユーザーに代わって、プレミアムな ArcGIS Online コンテンツやジオコーディングルーティングなどのサービスにアクセスできます。
  • ユーザーのコンテンツを作成、更新、削除ができます。
  • 組織内の他のユーザーとコンテンツを共有できます。
  • ユーザーが共有しているコンテンツにアクセスできます。

ArcGIS Enterprise または ArcGIS Online の組織アカウントを使用して認証を行うと、オフライン編集などの機能を使用するために ArcGIS Runtime SDK アプリのライセンスを取得する方法が提供されます。詳細については、ArcGIS Runtime アプリのライセンス取得を参照してください。

アプリ ログイン

アプリ ログインを使用して、組織が所有するコンテンツやプレミアム コンテンツ、サービスへのアクセスをユーザーに提供します。このシナリオでは、アプリはソースコードにハードコードされた認証情報を使用してコンテンツにアクセスします(この潜在的なセキュリティリスクに対処するには、プロキシ サービスの使用を検討してください)。これにより、ユーザーが許可されていないコンテンツへのアクセスが可能になります。ユーザーはアプリの認証情報でログインしているため、ログインを求められることはありません。このモデルを使用すると、ユーザーはアクセス権のあるすべてのリソースにアクセスでき、プレミアム コンテンツを利用するとクレジットを消費します。

アプリ ログインは、ユーザーが ArcGIS Online のユーザーではないアプリやユーザー ログインを必要としないアプリ向けに設計されています。アプリストア、Ad Hoc 配布、または Web を介してアプリを配信するのに適しています。ただし、アプリ使用時に費用が発生するサービスを使用した場合は、その費用を支払う必要があります。アプリ ログインで取得したトークンの使用で発生した使用量は、登録しているアカウントに対して課金されます。

アプリ ログインのパターンでは、ユーザーは、ArcGIS Online のプレミアム コンテンツやルーティング、ジオコーディング、人口統計データなどのサービスにアクセスすることができます。ArcGIS for Developers または ArcGIS Online を使用してアプリケーションを登録をします。その後、アプリケーションの認証情報から API を使用してプレミアム サービスにアクセスします。

アプリ ログインでは、以下のサービスにアクセスすることができます。

アプリ ログインの使用には一定の制限があります。

指定ユーザー ログイン vs アプリ ログイン

ここでは、トークンのやり取りに基づいて両方の認証パターンを比較します。アプリの利用ニーズに適した認証パターンを選択するために、次の質問を確認してください。そして、このセクションの機能表を使用して、アプリに含める機能を決定してください。

  • ユーザーは ArcGIS Online ユーザーでもありますか?
  • ユーザーにプレミアム コンテンツを有料で利用してもらいたいですか?
  • ユーザーに非公開のコンテンツをアクセスさせますか?
  • ログイン画面を表示しますか?

上記の質問のいずれかに「はい」と答えた場合は、指定ユーザー ログインを実装することをお勧めします。

ArcGIS Marketplace 用のアプリをオーサリングする場合は、アプリに指定ユーザー ログインを使用する必要があります。

ユーザーが ArcGIS Online のユーザーではない場合、ユーザーにログインを要求させたくない場合、またはルーティング、ジオコーディング、人口統計データなどのプレミアム サービスの費用を負担したい場合は、アプリ ログインを選択してください。

機能一覧表

機能 アプリ ログイン [3] 指定ユーザー ログイン [1]
Geocoding (ジオコーディング) [2]
Routing (ルーティング) [2]
Demographic data (人口統計データ) [2]
Premium layers and imagery (プレミアムデータと画像) [2]
Elevation analysis (標高解析) [2]
Spatial analysis (空間解析) [2]
Read public content (公開コンテンツの参照)
Read content owned by user (ユーザーが所有するコンテンツの参照)
Read content shared with user (ユーザーが共有したコンテンツの参照) [2]
Create/update/delete user’s content (ユーザーが所有するコンテンツの作成/更新/削除)
Create/update/delete shared content (共有コンテンツの作成/更新/削除) [2]
Share content with other users (他のユーザーへコンテンツを共有) [2]

[1] ユーザーが所属する組織に課金される使用量
[2] ユーザーの役割と権限で許可されている場合
[3] アプリ ログインを利用する際の制限事項を確認

プロキシ サービスの利用

アプリは、ブラウザベース、ネイティブアプリ、またはハイブリッドアプリのいずれであってもクライアント側のアプリでは、クライアントシークレットは、決して公開されるべきではありません。秘密情報がハッカーに乗っ取られ、知らない間に使用されてしまう可能性があります。クライアント側で シークレットの漏洩を阻止する1つのソリューションは、プロキシ サービスを使用してアプリに代わって シークレットを仲介することです。クライアント側のアプリは、セキュリティ上、重要なリクエストをプロキシ サービスに送信し、プロキシが必要なシークレットを追加してから、その要求をサービスに転送します。サービスは返信をプロキシに送信し、プロキシはリクエストをアプリに転送します。

Esri では、アプリのプロキシ サービスを利用するために 2 つの方法を選択できます。

  1. ArcGIS for Developers の Web サイトで構成された ArcGIS Online がホストしているプロキシ サービスでは、多くのプレミアム サービスの公開エンドポイントを提供しています。
  2. PHP.NET、または Java で構築されたリソース プロキシで、任意の ArcGIS サービスをプロキシすることができます。Esri は github でソース コードを提供しています。 これらのプロキシは、クライアント ID とライアントシークレットを使用して構成し、ArcGIS Runtime、ArcGIS API for JavaScript、Esri Leaflet、または REST のいずれかと組み合わせて使用することができます。

アプリケーションでのプロキシ サービスの使用方法の詳細については、プロキシの使用方法を参照してください。

ArcGIS Marketplace のアプリ

ArcGIS Marketplace は、ArcGIS ユーザーが認定プロバイダからアプリやコンテンツを検索して入手できるようにするための場所です。マーケットプレイスに掲載されているアプリやコンテンツは、世界中の ArcGIS Online 組織で使用することができます。マーケットプレイスにアプリを掲載することで、販売したアプリの収益を 100% 確保したり、アプリの無料トライアルを提供したりできます。また、新たな見込み顧客を発見したりと ArcGIS ユーザーのコミュニティにマーケティングしたりすることもできます。

ArcGIS Marketplace 用のアプリケーションを構築するためには、特定の実装要件に従う必要があります。

ArcGIS Marketplace の詳細については、ArcGIS Marketplace アプリ構築を参照してください。

認証を始める

アプリに認証を組み込むことを決めたら、サーバーにアプリを登録する必要があります。このプロセスでは、クライアントアプリとサーバーとのサービス間の接続と関連付けを設定します。ArcGIS Online にアプリケーションを登録すると、指定ユーザ ログイン、またはアプリ ログインを開始するための認証情報が提供されます。

指定ユーザー ログイン

アプリでユーザーにログインを要求する場合や、ArcGIS Marketplace で配布するアプリを作成する場合は、指定ユーザー ログインのパターンでアプリを登録します。

アプリ ログイン

ユーザーが ArcGIS Online のユーザーではない場合や、ユーザーにログインを要求させたくない場合、また、プレミアム サービスの費用を負担したい場合は、アプリ ログインのパターンでアプリを登録します。アプリ ログインを利用するには、一定の制限があります。

アプリの認証を実装

ここから先は、選択したプラットフォーム/プログラミング言語によって異なります。アプリの認証については、以下の各製品のドキュメントやサンプルコードを参照してください。

※ 現在、国内未サポートです。