FAQ
PrintingTools サービスでセキュリティ保護されたマップ サービスを印刷する方法

ナレッジ番号:2849 | 登録日:2023/05/29 | 更新日:2023/12/19

概要

Web マップ上にセキュリティ保護されたサービスを表示させるには、ユーザ名とパスワードをもとにした認証トークンを取得し、サービスへのリクエストにトークンを付与する必要があります。

同様に、サーバ上で実行される PrintingTools サービスの Export Web Map Task も、マップ サービスを利用するクライアントとなりますから、何らかの方法でトークンを取得し、利用しなければなりません。

方法

セキュリティ保護されたサービスにアクセスするために、どのような方法で認証トークンを作成したかによって、Printing Tools サービスの利用方法が変わります。利用方法は、以下 2 通りです:

  1. アプリケーションから ExportWebMap サービスにトークンを渡す
    アプリケーションの実行時に ArcGIS Server の短期トークン(要求元の HTTP リファラや IP アドレスを指定しないもの)を使っている場合は、ジオプロセシング サービスへの入力パラメータに含まれる Web マップの定義に、直接トークンを含めて渡すことができます。
    • Web マップ(JSON 文字列)の例:
      {"url":"http://<サーバ名>/arcgis/rest/services/<サービス名>/MapServer?token=<トークン文字列>"},
    ArcGIS API で実装する場合は PrintTask クラスを使えば、トークンを取得して表示しているマップ サービスについては自動的にトークンを付与した状態でタスクを呼び出します。特に上記 JSON 文字列を作るために必要な処理はありません。
    この方法の場合、ジオプロセシング サービスは渡されたトークンを使いまわすので、サービス側でユーザ名・パスワードを設定した ArcGIS Server 接続を用意しておく必要はありません。
  2. ExportWebMap サービスにトークンを取得させる
    ジオプロセシング サービス側でトークンを取得できるよう、ExportWebMap ツールにユーザ名・パスワードを設定済みのArcGIS Server 接続を設定する方法です。具体的な設定方法については、関連情報の ArcGIS ヘルプ トピックをご参照ください。
    この場合、クライアント アプリケーションからジオプロセシング サービスにマップ サービスを利用するためのトークンを渡す必要はありません。
    この方法は、クライアント アプリケーションが利用するトークンをサーバ上で使いまわすことができない場合(トークンに IP アドレスなどの ID が含まれる長期トークンなど)に、利用します。

アプリケーションを実行する都度、クライアント ID を指定しない短期トークンを取得し利用する場合には上記の方法1を使います。その際は、ArcGIS API で実装する場合 IdentityManager クラスを利用すると簡単です。

関連情報

ArcGIS ヘルプ: セキュリティで保護されたサービスを含むマップの印刷


メタデータ

種類

製品

バージョン