2 Oracle Spatial Studioの管理

Oracle Spatial Studioの管理には、管理ユーザー以外のユーザーが空間データを使用する前に実行する必要のある特定のアクションがあります。Spatial Studioの管理ユーザーである場合は、次のことを行う必要があります。

  • Oracle Technical Resources (以前はOracle Technology Networkと呼ばれていました)からOracle Spatial Studioアプリケーションをダウンロードしてインストールします。
  • Spatial Studioスキーマ(つまり、Spatial Studioのメタデータを保持するスキーマ)用のデータベース・スキーマをセットアップします。

    Spatial Studioスキーマは、Spatial Studioのメタデータを追加する既存のデータベース・スキーマ、またはSpatial Studioのみに使用される新たに作成されたスキーマのいずれかです。

  • 新しくインストールしたSpatial Studioアプリケーションを構成します。

    インストールおよび構成アクションが完了したら、ユーザーはデータベースに接続し、Spatial Studioを起動してその機能を使用できます。

ノート:

Spatial Studioアプリケーションは、次のいずれかの形式でダウンロードできます。
  • クイック・スタート: デスクトップ上でSpatial Studio Webアプリケーションを起動するために必要なものが含まれるzipファイルにパッケージ化された、すぐに実行できるスタンドアロン・アプリケーション。(ただし、このキットにはJavaキットがバンドルされていないため、JDK 8 64-bit、update 181以降をデスクトップにインストールする必要があります。)

    クイック・スタートは、個人および開発での使用に適しています。

  • WLSに最適化されたEAR (エンタープライズ・アプリケーション・アーカイブ)ファイル:この.earファイルは、組織のWLSまたはミドルウェア管理者によって管理されている既存のWebLogic Serverドメインにデプロイできます。

    これは、複数のエンド・ユーザーが同じSpatial Studio Webアプリケーションにアクセスする場合に推奨されるインストールおよびデプロイの方法です。

特定のユーザーまたはデータベース・ユーザーは、管理ユーザーと非管理ユーザーの両方になるか、管理ユーザーまたは非管理ユーザーのいずれかのみになることができます。

2.1 Spatial Studioの前提条件と推奨事項

この項では、Spatial Studioを使用するために適用される前提条件および推奨事項について説明します。

Spatial Studioを使用してアクションを実行するためにユーザーが接続するデータベースに、Oracle Spatialをインストールする必要があります。(Oracle Locatorをインストールするだけでは不十分です。)

次の追加要件および推奨事項が適用されます。
  • Javaバージョン: Java 8 (64-bit、update 181以降)またはJDK 11 (64-bit)。
  • Oracle Database 19c以上これはSpatial Studioメタデータ・スキーマにも、Spatial Studioユーザーによって使用されるすべてのデータベース接続にも適用されます。

    ノート:

    Oracle Spatial Studioリリースは、サポートされているOracle Databaseバージョンとの下位互換性があります。
  • Oracle WebLogic Server 12.2.1.3 以上
  • Spatial Studioのメタデータ・スキーマのセットアップに記載されている権限はすべて、Spatial Studioを操作する各データベース・ユーザーに必要です。
  • Spatial Studioで作業する各データベース・ユーザーのデフォルト表領域の割当て制限。ALTER USER文の形式: ALTER USER [username] QUOTA [quota value] ON [default tablespace name];

    たとえば、デフォルト表領域usersを持つtest_userという名前のユーザーの場合は、次のようになります。

    ALTER USER test_user QUOTA unlimited ON users;
  • Spatial Studioリポジトリ・スキーマのデフォルト表領域では、圧縮を使用しないでください。

2.2 Spatial Studioのダウンロードおよびインストール

各ユーザーがSpatial Studioを使用して空間データに対して技術的に興味深い作業を実行する前に、Spatial Studioをダウンロードしてインストールする必要があります。

https://www.oracle.com/database/technologies/spatial-studio/get-started.htmlにアクセスし、Spatial Studioのダウンロードおよびインストールの詳細を確認してください。

2.2.1 Spatial Studioクイック・スタートのインストールおよび構成

クイック・スタートは、使用を開始するための簡単な方法であり、個人および開発での使用に適しています。

クイック・スタートは、Spatial Studioの使用を開始するために必要なものがすべて含まれる1つのzipにパッケージ化されています。ただし、Java (64-bit、update 181以降)および独自のデータベース・スキーマは除きます。

クイック・スタートをインストールする前に、次の前提条件を満たしていることを確認してください:

  • システムにJavaがインストールされていて、JAVA_HOME環境変数がJava SE Development Kitの完全なJDKインストールを指している必要があります。クイック・スタートのインストールには、Java 8 (64-bit、update 181以降)またはJDK 11 (64-bit)が必要です。
  • システムのポート8080および4040が、他の(Web)アプリケーションで使用されていない。ポート8080http://プロトコルで使用し、ポート4040https://プロトコル用です。異なるポートを使用するようにSpatial Studioに指定できますが、8080および4040がデフォルトです。

    デフォルトでは、httpsを使用するアクセスのみがSpatial Studioで許可されます。

    httpアクセスを有効にする場合は、次のステップを実行します:

    • Oracle_Spatial_Studioディレクトリにあるconf/server.jsonファイルを編集して、httpEnabledプロパティをtrueに更新します。
    • sgtech_config.jsonファイルを編集して、https_onlyプロパティをfalseに更新します(「sgtech_config.jsonファイルを使用した構成の変更」を参照)。
    • Spatial Studioアプリケーションを再起動します。
    • ホストOSのファイアウォールで、httpポートが開いていることを確認します。

次のステップを実行すれば、Spatial Studioクイック・スタートをインストールして構成できます:

  1. クイック・スタートzipアーカイブOracleSpatialStudio_qs.zipをダウンロードします。
  2. OracleSpatialStudio_qs.zipファイルを解凍(抽出)します。
    そうすると、Oracle_Spatial_Studioディレクトリが作成されます。
  3. コマンド・ウィンドウ(Windows)またはターミナル(LinuxまたはMac)からOracle_Spatial_Studioディレクトリに移動します。
    このディレクトリには、複数の.batファイルまたは.shファイルが格納されています。
  4. start.shまたはstart.batを実行して、Spatial Studioアプリケーションを起動します。
    LinuxまたはMacでは、まずchmod u+x *.shコマンドを実行して、.shファイルを実行可能にする必要がある場合があります。
  5. https://localhost:4040/spatialstudioというURLを使用して、ブラウザでSpatial Studio Webアプリケーションを起動します。

    デフォルトの管理ユーザーのログイン資格証明(admin/welcome1)を使用してログインできます。ただし、すぐにパスワードを変更することをお薦めします。adminユーザーの(暗号化された)パスワードを変更する方法については、クイック・スタートのREADMEファイルを参照してください。

    また、次の点にも注意してください。
    • デフォルト・ポートは4040です。ただし、Oracle_Spatial_Studioディレクトリのconf/server.jsonファイルを編集すればポートを変更できます。このファイルを変更した後は、アプリケーションを再起動する必要があります。(HTTPポートの値をデフォルトの8080から変更した場合も同様です。)
    • クイック・スタートには、次の事前定義済Webユーザー・ログイン・アカウントが用意されています:
      • admin: 管理者ユーザー・アカウント
      • daustinおよびbruce: 2つの通常ユーザー・アカウント

      これらの事前定義済ユーザーとそのログイン・パスワードは、conf/jetty-realm.properties構成ファイルに定義されています。パスワードはすべて暗号化形式で格納されています。アプリケーションを初めて起動する前に、デフォルトの管理者ユーザーadminのパスワードを変更することをお薦めします。adminユーザーとその他の通常のSpatial Studioユーザーの(暗号化された)パスワードを変更する方法については、クイック・スタートのREADMEファイルを参照してください。

      また、Spatial Studioメタデータ・スキーマへのログイン、データベース・スキーマへのユーザー作成の接続など、その他すべてのパスワードは常に高度に暗号化されています。

    • CA署名証明書を使用するようにSpatial Studioサーバーを構成する場合は、「クイック・スタート・インストールでのCA署名SSL証明書の使用」を参照してください。
    • READMEファイルには、Webアプリケーションの起動および停止に関する情報も含まれています。アプリケーションを停止する場合は、2番目のターミナルまたはコマンド・ウィンドウを開いて、同じOracle_Spatial_Studioフォルダに移動し、stop.batまたはstop.shスクリプトを実行する方法をお薦めします。

2.2.2 Oracle WebLogic ServerへのSpatial Studioのインストール

Spatial Studioは、WebLogic Serverドメインにデプロイできます。複数のエンド・ユーザーが同じSpatial Studioアプリケーションにアクセスする場合は、この方式をお薦めします。

ノート:

複数のエンド・ユーザーのWebLogic ServerでSpatial Studioをホストするには、WebLogic Serverのライセンスが必要です。

Spatial StudioをWebLogic Serverにデプロイするための全般的な方法は、他のJava EE EARアプリケーションをデプロイする方法と同じです。最も簡単な方法は、WebLogic Serverの管理コンソールを使用して次のステップを実行することです。すべてのステップまたはほとんどのステップで、WLSインストール・アプリケーション・ウィザードで提供されるデフォルト値を受け入れることができます。

  1. Oracle Technical ResourcesまたはeDeliveryからStudio EARアーカイブをダウンロードし、ローカル・システムに保存します。
  2. 対象となるWLSドメインの管理コンソールにログインします。
  3. 左側の「デプロイ」リンクをクリックします。
  4. 次の図に示すように、「デプロイメント」セクションの下の「インストール」ボタンをクリックします(ご使用のWLSのインスタンスでは、正確な内容が異なる場合があります)。

    図2-1 Spatial Studioのデプロイ時のWLS管理コンソール

    図2-1の説明が続きます
    「図2-1 Spatial Studioのデプロイ時のWLS管理コンソール」の説明
  5. 次のページで、前にダウンロードしたSpatial Studio EARファイルを選択し、(ライブラリとしてではなく)アプリケーションとしてインストールします。
  6. 残りのステップをクリックして進めます(適切なターゲット・サーバーの選択を含む)。内容を正確に理解している場合を除き、すべての場合にデフォルトのオプションを受け入れる必要があります。最後に、「保存」をクリックしてデプロイメントを完了します。
  7. WLSが本番モードで実行されている場合は、デプロイメントをアクティブにするために、変更をアクティブにする必要があることがあります。
  8. 新しくデプロイしたSpatial Studioアプリケーションがアクティブとしてマークされていることを確認します。マークされていない場合は、WLS管理コンソールから明示的に起動する必要があることがあります。
  9. 管理対象サーバーのURLを/spatialstudioコンテキスト・ルートとともに使用して、Studioアプリケーションにアクセスします。たとえば、http://mycompany.com:7002/spatialstudioです
2.2.2.1 Spatial Studio管理ユーザーによる一般的なWLS管理の防止

Spatial Studio管理ユーザーがWebLogic Serverの他の一般的な管理操作を実行できないようにする場合は、このトピックの手順に従います。

Spatial Studioアプリケーションは、デフォルトで、WebLogicのすべての管理対象管理ユーザー(WebLogicの管理者グループのユーザー)に対してSpatial Studioアプリケーションへのログインを許可し、Spatial Studioアプリケーション内で管理ロールを保持しているとみなします。

ただし、一部のシナリオでは、Spatial Studioアプリケーションのみを管理するユーザーにWebLogic Serverの管理アカウント情報を組織が提供しないことにする場合があります。そのような場合、WLSシステム管理者は、デフォルトのWLSセキュリティ・レルムにID値がSGTech_SystemAdminの新しいWLSグループを作成できます。次に、新しいユーザーを作成するか、既存の非WLS管理ユーザーをこのグループに割り当てます。それ以降、このユーザーは、ログインするたびにSpatial Studioの管理ロールを保持しているとみなされますが、一般的なWLSサーバーの管理を行うことはできません。

また、次の点にも注意してください。

  • すべてのWLS管理対象ユーザーは、デフォルトでSpatial Studioにログインできますが、接続、データセット、プロジェクトなどの独自のSpatial Studioオブジェクトへのアクセスのみに制限されます。
  • Spatial Studioの管理ユーザーには、すべてのユーザーが作成したすべてのSpatial Studioオブジェクトへの完全なアクセス権があります。
  • WebLogicのデフォルトの組込みLDAPセキュリティ・レルムをアイデンティティ・プロバイダとして使用する際に、ユーザー名と割り当てられたアプリケーション・ロール名の大/小文字のみが異なる場合(adminAdminなど)、両方の名前を小文字に調整することをお薦めします。これは、Spatial Studioでのユーザー、グループおよびセキュリティ・ポリシー間の大/小文字の区別の問題を回避するためです。

2.2.3 Apache TomcatへのSpatial Studioのインストール

Oracle Spatial Studioパッチ・リリース23.1.1以降、Apache Tomcatバージョン9にSpatial Studio Webアプリケーションをデプロイして実行できるようになりました。

TomcatにSpatial Studioをデプロイして実行するための一般的なステップは、次のとおりです:
  1. 最新のApache Tomcatバージョン9をダウンロードしてインストールします。

    Tomcatの設定については、Apache Tomcatのドキュメントを参照してください。

  2. Tomcat zipファイルを解凍し、必要に応じて構成します(<TOMCAT_HOME>/webappsディレクトリにあるすべてのデフォルトWebアプリケーションの削除など)。
  3. Oracle Software Delivery CloudからSpatial Studio Tomcat固有のWARアーカイブをダウンロードします。
  4. ダウンロードしたWARアーカイブを<TOMCAT_HOME>/webapps/ディレクトリにコピーします。
  5. WARファイルの名前を必ずspatialstudio.WARに変更します。

    ファイル名にバージョンまたはビルド文字列がないことに注意してください。詳細は、「Tomcat用のSpatial Studio WARアーカイブについて」を参照してください。

  6. Tomcatユーザーおよびロールを構成します。

    Spatial StudioのADMINユーザーを必ず構成します。詳細は、「Spatial StudioのTomcatユーザーの構成」を参照してください。

  7. <TOMCAT_HOME>/binディレクトリの起動スクリプトを使用してTomcatサーバーを起動します。

    Spatial Studio Webアプリケーションにアクセスする前に、TomcatおよびSpatial Studioが完全に初期化されるまで数秒待つ必要がある場合があります。

  8. URL https://localhost:8443/spatialstudioを開いて、ブラウザでSpatial Studioを起動します。

    前述のURLでは、ポート8443が、Apache Tomcatのデフォルトのhttpsポートである点に注意してください。httpアクセス(デフォルト・ポート8080)を有効にする場合は、「HTTPS-ONLYアクセスの許可」を参照してください。

    その後、ステップ6で定義したユーザーのいずれかを使用してログインできます。

    Spatial StudioのアクセスURLでは、デフォルトのホスト名とポートが使用されることに注意してください。デフォルトのTomcatネットワークおよびポート構成を変更する場合は、それに応じてURLを調整する必要があります。

    なんらかの理由でURLにアクセスできない場合は、常に次のログ・ファイルを確認できます:

    • <TOMCAT_HOME>/logsディレクトリにあるTomcatのサーバー・ログ。
    • <USER_HOME>/.sgtech/logsディレクトリにあるSpatial Studioの独自のログ・ファイル。<USER_HOME>は、オペレーティング・システム・ユーザーのホーム・ディレクトリです。
2.2.3.1 Tomcat用のSpatial Studio WARアーカイブについて

Spatial StudioをTomcatで実行するには、spatialstudio_tomcat.warアーカイブをダウンロードする必要があります。

このアーカイブ・ファイルには、新しくダウンロードしてインストールしたTomcatインスタンスで実行できるようにするための依存関係がすべてバンドルされています。

次の点に注意してください。

  • spatialstudio_tomcat.warファイルがTomcatのwebappsディレクトリに配置されている場合は、その名前をspatialstudio.warに変更する必要があります。TomcatではWebアプリケーションのコンテキスト・ルートとしてファイル名を使用しますが、Spatial Studioではこれは通常/spatialstudioであるためです。
  • 他のWebアプリケーションが実行されている既存のTomcatインストールがある場合、または異なるバージョンの依存性ライブラリがすでにインストールされている場合、ライブラリとバージョンの競合が原因でSpatial Studioの実行に問題が発生する可能性があります。そのような場合は、問題を解決するためにMy Oracle Supportでサービス・リクエストを発行できます。
2.2.3.2 Spatial StudioのTomcatユーザーの構成

Spatial StudioをTomcatで実行するには、Spatial Studioの管理者として機能できるTomcatユーザーを少なくとも1人構成する必要があります。

Spatial Studio Webアプリケーションにアクセスすると、ログイン・ページに入力したusernameおよびpasswordが認証のためにTomcatに渡されます。ユーザーが認証されると、Spatial Studioは結果のプリンシパルを調べます。プリンシパルにSGTech_SystemAdminという名前のロールがある場合、ログイン・ユーザーはSpatial Studioの管理ユーザーとみなされます。

外部アイデンティティ・プロバイダを使用して認証を提供するようにTomcatインスタンスがすでに構成されている場合は、Spatial Studioを管理できるように、外部アイデンティティ・プロバイダが提供するユーザーの1人または一部にSGTech_SystemAdminロールが割り当てられていることを確認します。

Tomcatのインストールで単純な組込みユーザー管理メカニズムを使用している場合は、<TOMCAT_HOME>/confディレクトリにあるtomcat-user.xml構成ファイルにロールとユーザーを追加することがあります。

次の簡単な例では、2人のユーザーと2つのロールを定義しています。1つはtomcat-user.xml構成ファイル内のSGTech_SystemAdminです:

<role rolename=”role1”/>
<role rolename="SGTech_SystemAdmin"/>
<user username="admin" password="Welcome1" roles="manager-gui, manager-script, SGTech_SystemAdmin"/>
<user username="scott" password="Welcome1" role="role1"/>

ロールを定義したら、ユーザー名scottまたはadminを使用してSpatial Studioにログインできます。adminユーザーにはSGTech_SystemAdminロールがあるため、ユーザーはログイン後にSpatial Studioを管理できますが、scottユーザーは通常のSpatial Studioユーザーになります。

2.2.4 Oracle Cloud MarketplaceからのSpatial Studioのインストール

Oracle Cloud MarketplaceからOracle CloudにSpatial Studioをプロビジョニングできます。

Cloud MarketplaceからのSpatial Studioのデプロイの詳細は、Cloud MarketplaceからのSpatial Studioのデプロイを参照してください。

2.3 Spatial Studioのアップグレード

この項では、既存のOracle Spatial Studioデプロイメントを23.2.0にアップグレードするプロセスについて説明します。

ノート:

22.3.0より前のSpatial Studioバージョンを実行している場合は、最初にSpatial Studio 22.3.0をダウンロードして正常にログインする必要があります。これは、23.1.0のメタデータ・スキーマに新しいバージョン管理メカニズムが導入されており、Spatial Studioでは既存のメタデータ・スキーマがすでにSpatial Studio 22.3.0のバージョンにあると想定されているためです。そのため、最新のバージョンをダウンロードして実行する前に、少なくとも1回は22.3.0 Webアプリケーションにログインする必要があります。そうしないと、Spatial Studioバージョン23.2.0は、次のSEVEREエラー・メッセージをログに記録して起動プロセスを中止します。

!!! Spatial Studioバージョン22.3.0をこのバージョンにアップグレードする前に、少なくとも1回リポジトリ・スキーマに対して実行する必要があります !!!

ヒント:

現在のSpatial Studioインストールのバージョンを確認するには、Webアプリケーションにログインして、アバターのドロップダウン・メニューから「情報」メニュー項目をクリックします。バージョン番号が表示されます。

すでにSpatial Studio 22.3.0以降を使用している場合は、次の各項で、既存のホストでのSpatial Studioのアップグレード(インプレース・アップグレード)または新しいホストへのデプロイ(アウトオブプレース・アップグレード)時のステップについて説明します。

2.3.1 Spatial Studioのアップグレードの前提条件タスク

Spatial Studioのアップグレードを準備するには、次の前提条件ステップを実行します:
  1. 実行中のすべてのSpatial Studioインスタンスを停止します。
  2. 次のアーティファクトのバックアップを取得します:
    • 次のようなリポジトリ・メタデータ・スキーマ表:
      • SGTECH_META_VERSION
      • SGTECH_OBJECT
      • SGTECH_SYS_TYPE
      • SGTECH_TASK_BROKER
      • SGTECH_TASK_QUEUE

      データ・ポンプ・ユーティリティを使用して、前述のファイルをダンプ・ファイルにエクスポートできます。たとえば、メタデータ・スキーマ名がstudio_metadataでデータベース・サービス名orclpdbであると仮定した場合のデータ・ポンプ・エクスポート・コマンドを次に示します:

      expdp studio_metadata/<password>@orclpdb directory=dumpdir
            dumpfile=spatial_studio_metadata_backup.dmp
            tables=SGTECH_META_VERSION,SGTECH_OBJECT,SGTECH_SYS_TYPE,SGTECH_TASK_BROKER,SGTECH_TASK_QUEUE
    • 作業ディレクトリ(通常は~/.sgtech)
    • 通常は作業ディレクトリにあるsgtech_config.json構成ファイル
  3. Spatial Studio 23.2.0バージョンをダウンロードして、アップグレードするホストにアップロードします。

2.3.2 インプレース・アップグレード

Spatial Studioのインプレース・アップグレードの場合は、次のステップを実行します:
  1. Spatial Studio 23.2.0アプリケーションを再デプロイします。
    • クイック・スタートの場合: 古いクイック・スタート・フォルダの名前を変更します。新しくダウンロードしたZIPファイルを解凍し、start.sh (Linux)またはstart.cmd (Windows)を実行します。
    • EARデプロイメントの場合: アプリケーション・サーバーの手順に従って、古いデプロイメント・バージョンを削除します。次に、新しいバージョンをデプロイし、アプリケーションを起動します。

2.3.3 アウトオブプレース・アップグレード

Spatial Studioのアウトオブプレース・アップグレードの場合は、次のステップを実行します:
  1. 新しいホストに作業ディレクトリを作成します。
    mkdir ~/.sgtech
  2. sgtech_config.json構成ファイルを古いホストの作業ディレクトリから新しいホストにコピーします。
    cp old/sgtech_config.json ~/.sgtech

    構成ファイル内のmaster_seedエントリが失われると、すべての接続パスワードが破損します。これが発生した場合は、アップグレードを続行し、アップグレード済のSpatial Studioインスタンスにログインして、各接続を編集し、パスワードを再入力してから再接続します。

  3. Spatial Studioアプリケーションをデプロイします。
    • クイック・スタートの場合: 新しくダウンロードしたZIPファイルを解凍して、start.sh (Linux)またはstart.cmd (Windows)を実行するだけです。
    • EARデプロイメントの場合: アプリケーション・サーバーの手順に従って、新しいバージョンをデプロイし、アプリケーションを起動します。

    アプリケーションの起動時に、リポジトリ・データベース・スキーマが自動的にアップグレードされます。

2.4 Spatial Studioのメタデータ・スキーマのセットアップ

Spatial Studioスキーマ用のデータベース・スキーマをセットアップする必要があります。このスキーマには、Spatial Studioアプリケーションで使用されるメタデータが保持されます。

Spatial Studioスキーマは、Spatial Studioのメタデータを追加する既存のデータベース・スキーマ、またはSpatial Studioのみに使用される新たに作成されたスキーマのいずれかです。推奨される方法は、Spatial Studioのみで使用される新しいデータベース・ユーザーを作成することです。Spatial Studioスキーマのデータベース・ユーザーは、次の権限を保持している必要があります。

  • CONNECT
  • CREATE PROCEDURE
  • CREATE SEQUENCE
  • CREATE SESSION
  • CREATE SYNONYM
  • CREATE TABLE
  • CREATE TRIGGER
  • CREATE TYPE
  • CREATE VIEW

ノート:

CREATE TRIGGER権限は、GeoRasterデータをスキーマに格納して表示する場合にのみ必要です。

たとえば、DBA権限を持つユーザーとして接続する場合は次のようにします。

SQL> create user SPATIAL_STUDIO identified by <password>;
SQL> grant connect, create procedure, create sequence, create session, create synonym, create table, create trigger, create type, create view to SPATIAL_STUDIO; 

Spatial Studioアプリケーションを初めて実行すると、現在のユーザーのオペレーティング・システム・ホーム・フォルダの下の.sgtechという名前のフォルダに構成ファイルが生成されます。構成ファイルは、sgtech_config.jsonという名前です。これはSpatial Studioアプリケーションが接続の詳細を取得してメタデータ・スキーマに格納する場所です。

メタデータ・スキーマへの接続が確立されると、Spatial Studioアプリケーションは、必要な表およびその他のデータベース・オブジェクトがすでに存在するかどうか、およびそれらのバージョンが最新のSpatial Studioアプリケーション・ソフトウェアを使用した最新の状態であるかどうかを自動的にチェックします。これらの表が見つからない場合、または表を移行する必要がある場合は、Spatial Studioアプリケーションが必要なSQLスクリプトを実行してそれらを作成または移行します。ユーザーが介入する必要はありません。

Spatial Studioスキーマには、次の表およびビューが含まれています。

  • SGTECH_OBJECT: Spatial Studioのすべてのドメイン・オブジェクトを格納します。
  • SGTECH_SYS_TYPE: Spatial Studioの既知のタイプのドメイン・オブジェクトをすべて定義します。
  • SGTECH_SYS_JSON_SCHEMA: JSONデータ・スキーマを格納します。
  • SGTECH_TASK_QUEUE: Spatial Studioの長時間実行されるジョブを格納します。
  • SGTECH_TASK_BROKER: Spatial Studioのジョブ・ブローカを格納します。

ノート:

Spatial Studioの表やビュー、またはその中のデータを追加、削除、編集しないでください。これらはSpatial Studioによって自動的に保守されるため、Oracle Supportから指示されないかぎり、ユーザーは変更しないでください。

Spatial Studioの複数のインスタンスを実行する際のメタデータ・スキーマの管理

Spatial Studioでは、複数のアプリケーション・インスタンスにそれぞれ固有のsgtech_config.jsonファイルがあり、同じメタデータ・スキーマが使用されている場合に、それらのインスタンスを実行できないようになっています。別のインスタンスを実行する必要がある場合は、最初のインスタンスにリンクされているsgtech_config.json構成ファイルを、新しいインスタンスを起動するシステムにコピーすることをお薦めします。

そうしないと、別のシステムで実行されているインスタンスから同じメタデータ・スキーマに接続しようとしたときに、Spatial Studioで次のような警告が出されて失敗します。

選択したリポジトリはすでにSpatial Studioの別のインスタンスに登録されています。詳細は、システムのログを参照してください。

このようなシナリオでは、失われたマスター・キーからのリカバリを参照して問題を解決してください。

2.5 Spatial Studioのデータベース・ユーザーの接続要件

この項では、データベース・ユーザーがSpatial Studioを操作するための接続要件について説明します。

個々のユーザーは、Spatial Studioを実行する権限を与えられているデータベース・ユーザーとして接続する必要があります。Spatial Studio管理者は、データベース・ユーザーに対してアクセスを有効にできます。

Spatial Studioへのアクセス専用の新しいデータベース・ユーザーを作成するか、既存のデータベース・ユーザーを変更してSpatial Studioへのアクセスを有効にするか、これらの方法を組み合せて使用できます。

すべてのデータベース・ユーザーに最小限の権限セットが必要です。また、Spatial Studioを使用する各データベース・ユーザーには、デフォルト表領域に対する割当て制限が必要です。権限および割当て制限の要件については、Spatial Studioの前提条件と推奨事項を参照してください。

2.6 sgtech_config.jsonファイルを使用した構成の変更

この項では、sgtech_config.jsonファイルの重要なプロパティの構成について説明します。

デフォルトでは、Spatial Studioはほとんどの重要な構成情報を保存するためにsgtech_config.jsonという名前のJSONファイルを(まだ存在していない場合)作成して使用します。

通常、このファイルはオペレーティング・システム・ユーザーのホーム・ディレクトリの.sgtechという名前のサブフォルダにあります。アプリケーションEARをWebLogicドメインにデプロイしたか、クイック・スタートのみを使用している場合は、これが当てはまります。

ノート:

sgtech_config.jsonファイルを保護し、定期的にバックアップがあることを確認する必要があります。このファイルが失われた場合、Spatial Studioがデータ接続のデータベース・スキーマ・パスワードなどの機密情報の暗号化に使用したマスター・キーが失われます。つまり、次回Spatial Studioを起動すると、そのような情報を復号化できなくなり、どのデータ接続も使用できなくなり、その中のデータセットもすべて使用できなくなります。そのようなシナリオの詳細は、失われたマスター・キーのリカバリを参照してください。

次の各トピックでは、システム管理者が気を付ける必要がある構成ファイルの重要なプロパティについて説明します:

2.6.1 HTTPS-ONLYアクセスの許可

sgtech_config.json構成ファイルの最上位レベルのプロパティの1つは、https_onlyです。この値がtrue (デフォルト)に設定されている場合、Oracle Spatial Studioはすべての受信リクエストをアクティブにモニターし、SSLを使用して行われたリクエストのみを許可します。通常のhttp://リクエストは拒否されます。

このため、http://localhost:8080/spatialstudioなどのhttp:// URLを使用してSpatial Studioアプリケーションにアクセスしようとする場合に、https_onlyの値にtrueが設定されていると、ログインできません。実際、ブラウザからアクセスできるページ・リソースがないため、ログイン・ページ自体が表示されません。同様に、HTTPSを使用してアクセスしないかぎり、すべてのRESTfulリクエストはブロックされます。

httpアクセスを有効にする場合は、https_onlyの値をfalseに変更してから、Spatial StudioアプリケーションまたはSpatial StudioがデプロイされているJavaEEコンテナを再起動します。

httpアクセスの有効化には、次の事項も必要になります:

  • JaveEEコンテナで、httpが有効になっていること。

    Spatial Studioクイック・スタートを実行している場合は、JettyコンテナでHTTPアクセスを有効にする方法について、「Spatial Studioクイック・スタートのインストールおよび構成」を参照してください。

  • ホストOSのファイアウォールで、httpポートが開いていること。

2.6.2 Spatial Studioメタデータ・スキーマへの接続

Spatial Studioは、SGTECH_OBJECTなどの一連のメタデータ表にアクセスできる必要があります。これらの表は全体として、Spatial Studioアプリケーションのリポジトリとみなされます。これらの表をホストするデータベース・スキーマは、Spatial Studioのメタデータ・スキーマまたはリポジトリ・スキーマとみなされます。

sgtech_config.jsonファイルのmetadata_schemaセクションに接続の詳細が含まれている場合、Spatial Studioは起動時の最初のステップとしてこのメタデータ・スキーマへの接続を確立できる必要があります。

緊急時には、このセクションを手動で編集して、接続詳細を変更または修正することもできます。ただし、構文エラーによってSpatial Studioが動作を停止したり、再起動に失敗する可能性があるため、このファイルを編集するときは常に注意してください。

sgtech_config.jsonファイル(のmetadata_schemaセクション)にリポジトリ・スキーマ接続の詳細を手動で入力する場合は、CONTAINERまたはSPATAL_STUDIOのどちらで物理JDBC接続を管理するかを最初に指定する必要があります。

"metadata_schema" : {
    "connection_manager": "CONTAINER"
}

または

"metadata_schema" : {
    "connection_manager": "SPATIAL_STUDIO"
}

connection_managerCONTAINERを設定すると、Spatial Studioのリポジトリ・スキーマへのJDBC接続は、Jetty (クイック・スタートの場合)またはWebLogic Serverにすでに作成したJava EEデータ・ソースを使用して管理されることになります。たとえば、WLSドメインにjdbc/studioMetadataというデータ・ソースがあり、Studioでこのデータ・ソースを使用してターゲット・スキーマに接続する場合、sgtech_config.jsonの関連セクションは次のようになります。

"metadata_schema" {
"connection_manager" : "CONTAINER",
"container_managed":{
        "jndi_datasource_name" : "jdbc/studioMetadata"
}
}

ノート:

Spatial Studioリリース19.2以降では、Spatial Studioアプリケーションにコンテナ管理の接続の詳細を入力できないため、サポートされている唯一の方法はsgtech_config.jsonファイルを手動で編集することです。

ただし、Spatial Studioでそのメタデータ・スキーマへの物理接続を管理する場合は、connection_managerSPATIAL_STUDIOを設定し、JDBC接続の詳細の完全なセットを指定します。この詳細は、スキーマがOracle Autonomousデータベース(接続を確立するにはデータベースWalletが必要となります)に存在するか、通常のオンプレミスのデータベースに存在するかによって異なります。sgtech_config.jsonファイル内のインライン・コメントで詳細を確認できますが、Spatial Studioに管理ユーザーとしてログオンし、リポジトリ・スキーマの接続の詳細を対話形式で指定することをお薦めします。そのような詳細は、Spatial Studioが接続を検証した後に、sgtech_config.jsonに自動的に保存されます。

2.6.3 メタデータ・オブジェクトのキャッシュ

実行時に、ユーザーが接続、データセットおよびプロジェクトを作成すると、Spatial Studioは、データセットの定義やそのすべての列の定義、すべてのビジュアライゼーションの完全なレイアウトを含むプロジェクトの定義などの大量のメタデータ(Spatial Studioのドメイン・オブジェクトとも呼ばれます)を作成、変更および格納します。

すべてのメタデータ・オブジェクトは、メタデータ表SGTECH_OBJECTに永続的に格納されますが、データベースに頻繁にアクセスする必要がある場合(プロジェクトを開くとき、データセットのプロパティを表示するときなど)は、パフォーマンスが低下する可能性があります。これが発生する場合は、そのようなメタデータ・オブジェクトの頻繁にアクセスされるコピーをメモリーにキャッシュすることが解決策となります。

sgtech_config.jsonファイルのcacheセクションでは、メタデータ・オブジェクトのそのようなインメモリー・キャッシュを有効にするかどうかを指定できます。キャッシュが有効になっている場合は、そのようなオブジェクトをキャッシュできる数とキャッシュする期間をさらに指定できます。一般的なルールとしては、max_size (キャッシュされるメタデータ・オブジェクトの最大数)は1000未満にしますが、Spatial Studioに割り当てるメモリー量が非常に多い場合を除き、10000を超えないようにしてください。

2.6.4 Spatial Studioでの追加構成ファイルのインポート

Spatial Studio 22.1では、様々な構成ファイルをメインのsgtech_config.json構成ファイルにインポートできます。

複数の構成ファイルを処理するためのワークフローを次に示します。

図2-2 複数の構成ファイルを処理するワークフロー

図2-2の説明が続きます
「図2-2 複数の構成ファイルを処理するワークフロー」の説明
  1. 起動時に、Spatial Studioはプライマリ構成ファイルsgtech_config.jsonをロードします。

    sgtech_config.jsonで定義されている設定はすべて、基本設定として使用されます。

  2. sgtech_config.jsonファイルにimportsディレクティブが含まれている場合は、インポート・ファイルが宣言された順序(上から下)でロードされます。

    ロードされたインポート・ファイルごとに、設定が読み込まれ、基本設定に追加されます。

  3. 基本設定がすべて読み込まれると、機密項目が暗号化され、対応するファイルに保存されます。
  4. Spatial Studioは、システムの残りのロードを再開します。

sgtech_config.jsonへのimportsの追加

次のように、sgtech_config.jsonファイルを編集し、新しいトップレベルのimportsディレクティブを追加できます。

"imports" : {
   "<import_name>" : {
      "module" : "<import_file_path>",
      "description" : "<import_description>"
   }
}

前述のコードで:

  • <import_name>: 一意である必要があるインポート・ファイルの名前。これは主に、importsファイルのロード時にエラーをレポートするためにSpatial Studioで使用されます。
  • <import_file_path>: importsファイルのファイル・パスは、メイン構成ファイル(~/.sgtech/sgtech_config.json)の格納先ディレクトリに対して相対的である必要があります。
  • <import_description>: インポートの目的を記述します。

    descriptionは、importsプロパティのオプションのパラメータです。

たとえば、sgtech_config.dbsettings.jsonファイルで、次のコードに示すようにmetadata_schemaの詳細を構成します。ファイル・パスは~/.sgtech/extras/sgtech_config.dbsettings.jsonとなります。
{
  "metadata_schema" : {
    "connection_manager" : "CONTAINER",
    "container_managed" : {
      ...
    },
  }
}

また、sgtech_config.jobs.jsonでファイル・パス~/.sgtech/extras/sgtech_config.jobs.jsonの後に、jobsの詳細を別に構成します。

{
  "jobs" : {
    "init_threads_count" : 45
  }
}

これで、次のように、前述の2つの構成ファイルをメインのsgtech_config.jsonファイル(~/.sgtech/sgtech_config.json)のimportsディレクティブに含めることができるようになります。

{
  "version" : "22.1.0",
  "work_dir" : "",
  "https_only" : true,
  "master_seed" : "<somerandommasterseed>",
  "logging" : {
    "level" : "INFO"
  },
  "imports" : {
    "jobs" : {
      "module" : "extras/sgtech_config.jobs.json"
    },
    "db" : {
      "module" : "extras/sgtech_config.dbsettings.json",
      "description" : "Database settings optimized for clustering"
    }
  }
}

インポート・ファイルの要件

複数のインポート・ファイルを処理する場合は、次の要件に準拠することが重要です。

  • importsのファイルは、プライマリsgtech_config.jsonファイルと同じディレクトリまたはそのサブディレクトリ内にある必要があります。
  • importsファイルに含まれる設定は、プライマリsgtech_config.json構成ファイルなど、他の構成ファイルですでに宣言されている設定との競合を回避する必要があります。
  • importsファイルには機密データを含めることができるため、ファイルの所有者のみが読取りまたは書込み(あるいはその両方)のアクセス権を持っている必要があります。
  • versionwork_dirmaster_seedおよびimportsは、プライマリ構成ファイルsgtech_config.jsonに制限されている設定です。

2.6.5 Spatial Studioのリポジトリ・スキーマ・パスワードが変更されている場合

Spatial Studioのリポジトリ・スキーマ・パスワードが変更されている場合は、次のようにsgtech_config.json構成ファイルを更新する必要があります:

  1. このファイルのバックアップ・コピーを作成します。たとえば、~/.sgtech/sgtech_config.json~/.sgtech/sgtech_config.json_backupにコピーします。
  2. Spatial Studioの計算ノードで、ファイル~/.sgtech/sgtech_config.jsonを編集します。
  3. metadata_schemaセクションで、database_passwordを必要な値に更新します。
  4. ファイルを保存してSpatial Studioデプロイメントを再起動します。クイック・スタート・キットを使用している場合に再起動するには、クイック・スタートのREADMEファイルを参照してください。WebLogic Serverデプロイメントの場合は、WebLogic Serverコンソールを使用して再起動します。
  5. Spatial Studioアプリケーションを開きます。ログインできる必要があります。

必要に応じて編集できる他の(リポジトリ以外の)接続も含め、作成したすべてのアーティファクトが残ります。

2.7 失われたマスター・キーのリカバリ

誤ってsgtech_config.jsonファイルを削除または置換すると、マスター・キーが失われ、Spatial Studioアプリケーションでエラーがスローされます。

sgtech_config.jsonファイルには、データベース・パスワードなどの暗号化されたアイテムの復号化を可能にするマスター・キー値を含むmaster seedプロパティが含まれています。そのため、安全な場所にsgtech_config.jsonファイルをバックアップすることをお薦めします。

ただし、sgtech_config.jsonファイルが失われた場合、次のステップを実行すれば、失われたマスター・キーをリカバリできます:

  1. アプリケーションのインストール・ディレクトリから次のコマンドを実行して、Spatial Studioインスタンスを停止します:
    ./stop.sh

    Cloud Marketplaceからアプリケーションをインストールした場合は、次のコマンドを使用します:

    sudo systemctl stop spatialstudio
  2. SQLクライアント(データベース・アクション、SQL Plus、SQL Developerなど)を使用して、Spatial Studioリポジトリで次のコマンドを実行します:
    DELETE
        "SGTECH_OBJECT"
    WHERE
        "TENANTID" = 'GLOBAL'
        AND (
            "ID" IN ('id__sgtech.safe_text.magicword', 'id__sgtech.key_pair.rsa')
            OR "OBJECTTYPE" = 'access_token'
        );
    COMMIT;
  3. アプリケーションのインストール・ディレクトリから次のコマンドを実行して、Spatial Studioを起動します:
    ./start.sh

    Cloud Marketplaceからアプリケーションをインストールした場合は、次のコマンドを使用します:

    sudo systemctl start spatialstudio
  4. adminユーザーでSpatial Studioにログインします。
  5. 「接続」ページに移動します。
  6. 各接続を右クリックし、「編集」を選択して、各接続のパスワードを再入力します。
  7. 「アクセス・トークン」ダイアログを開き、アクティブな各トークンを削除します。
  8. 「管理」ページに移動します。
  9. オプションで、個別のAPIキーを使用してカスタム・ベースマップを作成していた場合は、必要なカスタム・ベースマップを編集してAPIキーを再入力します。
    「設定」「ベースマップ」をクリックして、カスタム・ベースマップを表示および編集します。
  10. オプションで、別のAPIキーを使用してCesiumベースマップを作成していた場合は、必要なCesiumベースマップを編集してAPIキーを再入力します。
    「設定」「Cesiumベースマップ」をクリックして、Cesiumベースマップを表示および編集します。
今回は必ずsgtech_config.json構成ファイルを安全にバックアップし、今後このプロセスを繰り返す必要がないようにします。

2.8 Spatial Studioでのアイデンティティ・プロバイダとしてのIDCSの有効化

Oracle Spatial Studioリリース22.1.0以降、独自のOracle CloudテナンシのIDCSアイデンティティ・ドメインですでに管理されているユーザーを使用して、Spatial Studioインスタンスにログインできます。

Spatial Studioのアイデンティティ・プロバイダとしてIDCSを設定するワークフローは、次の3つのステップで構成されます。

  1. IDCSでグループとしてSpatial Studioロールを追加。
  2. IDCSでアプリケーションを作成。
  3. Spatial Studioの構成ファイルにIDCS設定をコピー。

開始する前に、「Spatial StudioでIDCSを設定するための前提条件」を参照して、すべての前提条件を満たしていることを確認してください。

2.8.1 Spatial StudioでIDCSを設定するための前提条件

IDCSSpatial Studioと統合するには、次の詳細を取得する必要があります。

IDCSインスタンスの詳細の取得

IDCSインスタンスの詳細を取得するには、IDCS URLのいずれかを調べます。たとえば、IDCSにユーザーとして追加されたときに電子メールで受け取るIDCSログインURLを調べることができます。たとえば、次のIDCSクラウド・アカウントのログインURLの例を考えてみます。

https://idcs-54656e616e742d4578616d706c652121.identity.oraclecloud.com/ui/v1/signin

次のように、前述のURLからIDCSインスタンスの詳細を導出できるようになります。
  • IDCSテナント: idcs-54656e616e742d4578616d706c652121
  • IDCSホスト: identity.oraclecloud.com
2.8.1.1 IDCSコンソールURLの確認

OCIテナンシにはデフォルトのIDCSインスタンスが含まれており、OCIコンソールを使用してIDCSコンソールURLを取得できます。

次のステップを実行して、IDCSコンソールにアクセスするためのURLを特定します。
  1. Oracle Cloud資格証明を使用してOCIコンソールにサインインします。
  2. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」を選択します。
  3. 「アイデンティティ」「フェデレーション」をクリックします。
    次のように、「フェデレーション」ページが開きます。

    図2-3 「フェデレーション」ページのデフォルトのIDCSインスタンス

    図2-3の説明が続きます
    「図2-3 「フェデレーション」ページのデフォルトのIDCSインスタンス」の説明
  4. 前述の図で強調表示されているデフォルトのIDCSインスタンスをクリックします。
    「アイデンティティ・プロバイダの詳細」ページが開きます。
  5. 次のように、「Oracle Identity Cloud Service Console」フィールドのIDCSコンソールURLを書き留めます。

    図2-4 IDCSコンソールURL

    図2-4の説明が続きます
    「図2-4 IDCSコンソールURL」の説明

2.8.2 IDCSでのグループとしてのSpatial Studioロールの追加

Spatial Studioでサポートされているシステム管理者ロールをIDCSでグループとして追加する必要があります。

Spatial Studioのシステム管理者ロールは、SGTech_SystemAdminで識別されます。これは、管理者がシステム全体にフル・アクセスできることを意味します。

このロールをIDCSグループとして追加する必要があります。ただし、次が適用されます。

  • このグループに割り当てられたユーザーは、設定されているSpatial Studioインスタンスでの管理者権限を持ちます。
  • このグループに属していないユーザーは、IDCSアプリケーションに追加されると、Spatial Studioインスタンスへの通常のアクセス権を持ちます。
前提条件として、IDCSコンソールURLを取得する必要があります。詳細は、「IDCSコンソールURLの確認」を参照してください。

次のステップを実行して、IDCSでグループを作成します。

  1. ブラウザでIDCSコンソールURLを使用して、IDCSログイン・ページを開きます。
  2. 次のように、ADMINユーザー資格証明を入力してサインインします。
  3. 次のように、左上のナビゲーション・メニューを開き、「グループ」を選択して「追加」をクリックし、新しいグループを作成します。

    図2-6 IDCSグループの追加

    図2-6の説明が続きます
    「図2-6 IDCSグループの追加」の説明
    「グループの追加」ダイアログが開き、「ステップ1: グループ詳細」ページが表示されます。
  4. 「名前」SGTech_SystemAdminと入力します。
    ロール名は、大文字/小文字が区別されることに注意してください。
  5. 必要に応じて、「説明」を入力します。
  6. 次のように、「次」をクリックします。

    図2-7 ステップ1: グループ詳細

    図2-7の説明が続く
    「図2-7 ステップ1: グループ詳細」の説明
    「ステップ2: グループへのユーザーの割当て(オプション)」ページが開き、既存のすべてのユーザーがリスト表示されます。
  7. 必要なユーザーを選択し、「終了」をクリックします。
    たとえば、次の図は、グループ・ロールSGTech_SystemAdminへのspatialstudio_userの割当てを示しています。

    図2-8 ステップ2: グループへのユーザーの割当て(オプション)

    図2-8の説明が続きます
    「図2-8 ステップ2: グループへのユーザーの割当て(オプション)」の説明
  8. 新しく追加したグループが「グループ」ページにリスト表示されていることを確認します。

    図2-9 グループのリスト

    図2-9の説明が続きます
    「図2-9 グループのリスト」の説明

2.8.3 IDCSでアプリケーションを作成

この項では、IDCSSpatial Studioアプリケーションを追加するステップについて説明します。

  1. ADMINユーザー資格証明を使用してIDCSにサインインします。
  2. 次のように、左上のナビゲーション・メニューを開き、「アプリケーション」を選択して「追加」をクリックし、新しいアプリケーションを追加します。

    図2-10 アプリケーションの追加

    図2-10の説明が続きます
    「図2-10 アプリケーションの追加」の説明
    「アプリケーションの追加」ダイアログが開きます。
  3. 「機密アプリケーション」を選択します。

    図2-11 「アプリケーションの追加」ダイアログ

    図2-11の説明が続きます
    「図2-11 「アプリケーションの追加」ダイアログ」の説明
    「機密アプリケーションの追加」ウィザードが開き、「詳細」ページが表示されます。
  4. アプリケーションの名前を入力します。
  5. 必要に応じて、説明を追加し、「次」をクリックします。

    図2-12 「機密アプリケーションの追加: 詳細」ページ

    図2-12の説明が続きます
    「図2-12 「機密アプリケーションの追加: 詳細」ページ」の説明
    「クライアント」ページが開きます。
  6. 「このアプリケーションをクライアントとして今すぐ構成します」をクリックして、新しいアプリケーションの認可情報を構成します。
    「認可」セクションで、次を実行します。
    1. 「許可される権限付与タイプ」「クライアント資格証明」および「認可コード」を有効にします。
    2. 「リダイレクトURL」<spatial_studio_url>/idcscallbackと入力します。
    3. 「ログアウト後のリダイレクトURL」<spatial_studio_url>と入力します。
    4. 必要に応じて、「セキュリティ」「信頼できるクライアント」を有効にしてカスタム証明書をインポートできます。

    図2-13 クライアントの詳細の構成

    図2-13の説明が続きます
    「図2-13 クライアントの詳細の構成」の説明
    「トークン発行ポリシー」セクションで、次を実行します。
    1. 「Identity Cloud Service管理APIへのクライアント・アクセス権を付与します」「追加」をクリックして、アプリケーションがIDCS APIにアクセスできるようにします。

      「アプリケーション・ロールの追加」ウィンドウが開き、アプリケーション・ロールがリスト表示されます。

    2. 次のように、「自分」および「認証クライアント」を選択して「追加」をクリックし、これらのアプリケーション・ロールをアプリケーションに割り当てます。

      図2-14 トークン発行ポリシーの構成

      図2-14の説明が続きます
      「図2-14 トークン発行ポリシーの構成」の説明
    3. ページの右上の「次」をクリックして続行します。
  7. 「次」ボタンをクリックして「リソース」および「Web層ポリシー」をスキップし、「認可」ページにナビゲートします。
  8. 「権限付与を認可として実施」オプションを有効にします。
  9. 「終了」をクリックします。
    アプリケーションが追加され、「アプリケーションが追加されました」ダイアログ・ボックスが開きます。

    図2-16 確認のダイアログ

    図2-16の説明が続きます
    「図2-16 確認のダイアログ」の説明
  10. 後で構成を完了するために使用する「クライアントID」および「クライアント・シークレット」を書き留めます。

    ヒント:

    アプリケーションのクライアント資格証明は、アプリケーションがアクティブ化されると、「一般情報」セクションの「構成」タブから取得することもできます。
  11. 「閉じる」をクリックします。

    新しいアプリケーションの「詳細」ページが表示されます。

  12. 「アクティブ化」をクリックして、ユーザーにアプリケーションへのアクセス権を付与し、次のプロンプトで操作を確認します。

    図2-17 アプリケーションのアクティブ化の確認

    図2-17の説明が続きます
    「図2-17 アプリケーションのアクティブ化の確認」の説明
  13. 「グループ」タブをクリックして「割当て」をクリックし、次のように「IDCSでのグループとしてのSpatial Studioロールの追加」で作成したグループを追加します。

    図2-18 アプリケーションへのグループの割当て

    図2-18の説明が続きます
    「図2-18 アプリケーションへのグループの割当て」の説明
  14. 必要に応じて、「ユーザー」タブまたは他のグループを使用して、管理者以外のユーザーを追加します。

    図2-19 管理者以外のユーザーの割当て

    図2-19の説明が続きます
    「図2-19 管理者以外のユーザーの割当て」の説明

2.8.4 Spatial Studioの構成ファイルへのIDCS設定のコピー

Spatial StudioIDCSと統合するには、IDCS設定をsgtech_config.json構成ファイルに追加する必要があります。

構成ファイルは~/.sgtech/sgtech_config.jsonパスにあります。IDCS設定は、sgtech_config.jsonファイルに直接追加できます。ただし、ベスト・プラクティスは、IDCS設定を別の構成ファイルにして、このファイルをメインの構成ファイルにインポートします。
次のステップを実行して、IDCS設定用の構成ファイルを作成し、この構成をsgtech_config.jsonにインポートします。
  1. ~/.sgtechディレクトリに新しい空のJSON構成ファイルを作成します。
    たとえば:

    ~/.sgtech/sgtech_config.idcs.json

  2. 作成したファイルを任意のファイル・エディタで編集し、次のようにIDCS設定情報を追加します。
    {
      "idcs" : {
        "Host" : "identity.oraclecloud.com",
        "ClientTenant" : "<tenant_id>",
        "ClientId" : "<client_id>",
        "ClientSecret" : "<client_secret>",
        "redirectURL" : "https://localhost:4040/spatialstudio/idcscallback",
        "postLogoutRedirectURL" : "https://localhost:4040/spatialstudio/"
      }
    }

    前述のファイルでは、次のとおりです。

    • Host: IDCSホスト。
    • Client Tenant: IDCSテナント。
    • ClientId: IDCSアプリケーションの作成時に生成されます。
    • ClientSecret: IDCSアプリケーションの作成時に生成されます。
    • redirectURL: IDCSアプリケーションの作成時に使用されるリダイレクトURLと同じです。
    • postLogoutRedirectURL: IDCSアプリケーションの作成時に使用されるログアウト後のリダイレクトURLと同じです。
  3. sgtech_config.idcs.jsonファイルを保存します。
  4. メインのsgtech_config.jsonファイルを編集し、次のようにインポート構成を追加します。
    {
      "version" : "23.2.0",
      "work_dir" : "",
      ...
      "jobs" : {
        "init_threads_count" : 15
      },
      "imports" : {
        "idcsclient" : {
          "module" : "sgtech_config.idcs.json"
        }
      }

    メインのsgtech_config.jsonファイルに存在できるimportsオブジェクトは1つのみであることに注意してください。したがって、メインのsgtech_config.jsonファイルにimports構成がすでに存在する場合は、次のようにidcsclientエントリをimportsブロックに追加できます:

    {
      "version" : "23.2.0",
      "work_dir" : "",
      ...
      "jobs" : {
        "init_threads_count" : 15
      },
      "imports" : {
        "idcsclient" : {
          "module" : "sgtech_config.idcs.json"
        },
        "rolesmapping" : {
          "module" : "sgtech_config.security.json"  
        }
      }
  5. sgtech_config.jsonファイルを保存します。

2.8.5 IDCSログインのテスト

すべての設定ステップが完了したら、IDCSログインをテストして検証できます。

  1. IDCSからログアウトしたことを確認します。
  2. すべてのSpatial Studioインスタンスが停止していることを確認します。
    Spatial Studioインスタンスを停止するには、Linuxの場合はstop.shを、Windowsの場合はstop.cmdを実行します。
  3. start.sh (Linux)またはstart.cmd (Windows)を実行して、Spatial Studioを実行します。
  4. Spatial Studioが稼働したら、ブラウザでメインURLを開きます。たとえば:
    https://localhost:4040/spatialstudio/
    Spatial Studioの標準ログイン画面ではなく、図2-5に示すIDCSログイン画面が開きます。
  5. 資格証明を入力し、「サイン・イン」をクリックします。
    Spatial Studioインスタンスに自動的にリダイレクトされます。次のように、アバター・アイコンをクリックして、ログイン・ユーザーを確認できます。

    図2-20 「プロファイル」メニュー

    図2-20の説明が続きます
    「図2-20 「プロファイル」メニュー」の説明
  6. 「プロファイル」メニューの「サイン・アウト」をクリックして、Spatial Studioからログアウトします。
    これにより、IDCSで実行されている他のアプリケーションからもログアウトします。

2.9 外部ユーザー・プリンシパルの組込みSpatial Studioロールへのマッピング

Spatial Studioでは、IDCSおよびその他のアイデンティティ・プロバイダ・プリンシパルのSpatial Studio組込みロールへのマッピングがサポートされています。これにより、たとえばカスタム・グループを使用して、ユーザーに権限を動的に付与できます。

プリンシパルをSpatial Studioのロールにマップするには、security設定をsgtech_config.json構成ファイルに追加する必要があります。
構成ファイルは~/.sgtech/sgtech_config.jsonパスにあります。security設定は、sgtech_config.jsonファイルに直接追加できます。ただし、ベスト・プラクティスは、security設定を別の構成ファイルにして、このファイルをメインの構成ファイルにインポートします。
次のステップを実行して、security設定を含む構成ファイルを作成し、この構成をsgtech_config.jsonにインポートします:
  1. ~/.sgtechディレクトリに新しい空のJSON構成ファイルを作成します。
    たとえば:

    ~/.sgtech/sgtech_config.security.json

  2. 作成したファイルを任意のファイル・エディタで編集し、次のようにsecurity設定情報を追加します:
    {
      "security" : {
        "role-assignments" : [
            {
              "role" : "<role_name>",
              "principals" : [
                "<principal_name>"
               ]
            }
        ]
      }
    }

    前述のファイルでは、次のとおりです。

    • role: これは、Spatial Studioの組込みロールの1つ、具体的にはSGTech_SystemAdminまたはSGTech_TenantAdminを指します。ロール名は大/小文字が区別されることに注意してください。
    • principals: 指定したロールにマップする必要があるすべてのプリンシパル名のリスト。たとえば、["Power_User_Members", “IT_Support_Team”] (これはIDCSまたはWebLogic Serverグループの場合があります)、またはQuickStartのconf/jetty-realm.propertiesファイルに指定されたプロパティなどです。
    • role-assignments: ロール・マッピングのリスト。必要な数のエントリを指定できます。
  3. sgtech_config.security.jsonファイルを保存します。
  4. メインのsgtech_config.jsonファイルを編集し、次のようにインポート構成を追加します。
    {
      "version" : "23.1.0",
      "work_dir" : "",
      ...
      "jobs" : {
        "init_threads_count" : 15
      },
      "imports" : {
        "rolesmapping" : {
          "module" : "sgtech_config.security.json"
        }
      }

    メインのsgtech_config.jsonファイルに存在できるimportsオブジェクトは1つのみであることに注意してください。したがって、メインのsgtech_config.jsonファイルにimports構成がすでに存在する場合は、次のようにrolesmappingエントリをimportsブロックに追加できます:

    {
      "version" : "23.2.0",
      "work_dir" : "",
      ...
      "jobs" : {
        "init_threads_count" : 15
      },
      "imports" : {
        "idcsclient" : {
          "module" : "sgtech_config.idcs.json"
        },
        "rolesmapping" : {
          "module" : "sgtech_config.security.json"  
        }
      }
  5. sgtech_config.jsonファイルを保存します。
    これによって、Spatial Studioにログインするときに、principalsに構成されたグループのすべてのユーザーに、role構成で指定された各ロールが付与されます。

2.10 クイック・スタート・インストールでのCA署名SSL証明書の使用

通常、Spatial Studioクイック・スタート・インストールには、SSLまたはHTTPS URL接続の暗号化を処理するための自己署名証明書が付属しています。

ただし、ブラウザが常にセキュアでない接続について警告するようになるため、これは望ましいものではありません。Spatial Studioリリース23.2.0以降では、独自の(CA署名) X.509証明書を使用できます。

次の各項を確認して、目的のシナリオに当てはまるステップを実行してください。

2.10.1 Spatial Studioサーバー用のCA署名証明書と秘密キーの準備

Spatial Studioサーバー用にCA署名証明書と秘密キーを準備できます。

  1. 公的に認められている認証局(CA)からSSL証明書を取得します。

    一般に、証明書はWebサイトのドメインにリンクされた2つのファイルとして提供されます:

    • yourdomain.crt (X.509証明書)
    • yourdomain.key (秘密キー)

    yourdomain.crtファイルは、PEM形式の場合があります。その場合、ファイル名はyourdomain.pemまたはfullchain.pemとして示され、キー・ファイルの名前はprivatekey.pemのようになります。

    ただし、これらのファイルはOpenSSLエコシステムのツールによってのみ生成されサポートされるため、Javaでは、これらのファイルをSSLサポートのために直接使用することはできません。そのため、CA証明書ファイルと秘密キー・ファイルは最初にJavaキー・ストアに変換する必要があります。そうすることで、Spatial Studioクイック・スタートで使用できるようになります。

  2. 次のopensslコマンドを使用して、X.509証明書と秘密キーをPKCS12ファイルに変換します:
    openssl pkcs12 -export -in yourdomain.crt -inkey yourdomain.key \
                   -out yourdomain.p12 -name [some-alias] \
                   -CAfile yourdomain.crt -caname root

    また、前述のコマンドの実行中は、次の点に注意してください:

    • 要求された場合は、パスワードを必ず入力してください。
    • オプションで、このコマンドに-chainオプションを追加すると、実際のCA署名証明書を操作するときに完全な証明書チェーンを保持できます。
    • すべてのCA証明書と秘密キーのファイルの拡張子に対して、同じopensslコマンドを適用します。
  3. 次のJava keytoolコマンドを使用して、PKCS12ファイルをJavaキーストア・ファイルに変換します。
    keytool -importkeystore \
            -deststorepass ChangeIt -destkeypass ChangeIt -destkeystore yourdomain.keystore \
            -srckeystore yourdomain.p12 -srcstoretype PKCS12 -srcstorepass [password_from_step2] \
            -alias [some-alias]

    前述のコマンドにより、パスワードChangeItで保護されたJavaキーストア・ファイルyourdomain.keystoreを生成します。

  4. Javaキーストア・ファイルを使用するように、Spatial Studioサーバーを構成します。

2.10.2 Javaキーストアを使用するためのSpatial Studioサーバーの構成

X.509証明書が含まれているJavaキーストア・ファイルを使用するようにサーバーを構成できます。

この項では、「Spatial Studioサーバー用のCA署名証明書と秘密キーの準備」の説明に従って、すでにX.509証明書と秘密キーから生成したJavaキーストア・ファイル(yourdomain.keystore)があることを前提としています。別の方法で生成したキーストア・ファイルは、Spatial Studioでは機能しないことがある点に注意してください。
  1. Oracle_Spatial_Studioディレクトリにあるconf/server.json構成ファイルを編集して、yourdomain.keystoreファイルの場所とそのパスワードを反映するように、次の3つのSSLフィールドを変更します。
    "sslKeyStorePath": "<path_to_yourdomain.keystore_file>",
    "sslKeyStorePassword": "ChangeIt",
    "sslKeyManagerPassword": "ChangeIt",
  2. オプションで、次のステップを実行して、キーストアの保護パスワード(sslKeyStorePasswordおよびsslKeyManagerPassword)を不明瞭化します。
    1. Oracle_Spatial_Studioディレクトリに移動して、次のコマンドを実行します。
      java -cp ./servletContainer/jetty-util-9.4.51.v20230217.jar org.eclipse.jetty.util.security.Password <
      user> ChangeIt

      userChangeItパスワードは不明瞭化され、出力は次のようになります。

      ChangeIt
      OBF:1pam1o661saj1v9i1v941sar1o4g1pdc
      MD5:72df16e805e7d9c88437b9ea5f8995d6
      CRYPT:blSK4yQrQaaxo
    2. OBFで始まる文字列をコピーし、server.jsonファイルのsslKeyStorePasswordフィールドとsslKeyManagerPasswordフィールドを更新して、プレーン・テキストのパスワードのかわりに不明瞭化されたパスワードを使用するようにします。
  3. Spatial Studioサーバーを再起動して、この変更を有効にします。

    コンソール出力の最初の方に、次のようなログが示されます:

    2023-07-27 01:31:50.740:INFO:oejus.SslContextFactory:main: x509=X509@5e5073ab([followed by some organization name or alias info related to your CA cert]

    この時点で、URL https://yourdomain.com:4040/spatialstudioを使用して、Spatial Studioクイック・スタートに安全にアクセスできるようになりました。

2.10.3 クイック・スタート・インストール用のリバース・プロキシの構成

Spatial Studioクイック・スタート・インストールが、Apache HTTPまたはNGINXサーバーを実行しているホストで実行されている場合は、安全な接続を確保するためにリバース・プロキシを使用できます。

この方法では、Spatial Studioサーバー自体の構成に変更を加える必要はありません。

  1. それぞれのサーバー用の公式ドキュメントに従って、Apache HTTPまたはNGINXサーバーでCA署名証明書を構成します。
  2. Apache HTTPまたはNGINXサーバー構成ファイルで、URL https://youdomain.com/spatialstudioHTTP://localhost:8080/spatialstudioにリバース・プロキシします。
    たとえば、Apache HTTPサーバーがポート80443でリスニングしていて、Spatial Studioクイック・スタートが同じホスト上のポート8080で実行されている場合は、次のようにプロキシ・ディレクティブをApache HTTPサーバー構成ファイルに追加できます。
    <VirtualHost *:443>
        ServerName yourdomain.com
        DirectoryIndex index.html index.php
     
        SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf
     
        ProxyRequests On
        ProxyPass /spatialstudio http://localhost:8080/spatialstudio
        ProxyPassReverse /spatialstudio http://localhost:8080/spatialstudio
     
    </VirtualHost>
     
    <VirtualHost *:80>
        ServerName yourdomain.com
        DirectoryIndex index.html index.php
        RewriteEngine on
        RewriteCond %{SERVER_NAME} =yourdomain.com
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
     
        ProxyRequests On
        ProxyPass /spatialstudio http://localhost:8080/spatialstudio
        ProxyPassReverse /spatialstudio http://localhost:8080/spatialstudio
    </VirtualHost>
  3. Apache HTTPまたはNGINXサーバーを再起動します。
    これで、https://yourdomain.com/spatialstudioのようなURLを使用して、Spatial Studioに安全にアクセスできるようになりました。