複数ユーザーによる運用
ここでは、Organizationの概要とMaprayを利用して複数人で地図アプリを開発するための仕組みついて説明します。
1. Organizationとは
Mapray Cloudは、地図上に表示するリソースを扱うクラウドサービスです。このサービスではユーザーが持つ地理データのリソース(2D、3D、点群、都市データなど)を自由にアップロードできます。
アップロードされた地理データを他のユーザーと共有するために「Organization」という概念がMapray Cloudにあります。

「Organization」とは組織という意味です。Mapray Cloudのサーバー内に「組織」という区分けを用意し、「組織」にアカウント、リソース(Datasets)やトークン(ClientToken)が紐づいています。アカウント、リソースとトークンについては、それぞれ以下をご参照ください。
Maprayでは、Organizationを以下のように利用することを想定しています。
- チームで地図アプリを開発するので、地図上に表示するリソースを一括で管理したい。そのためOrganizationにチームメンバーを招待して、そこでリソースを管理するようにする。
- 開発チームをいくつかに分けることになった。そのためチームのリーダーの権限を管理者(Admin)にして、チームメンバーの管理やAPI Keyの管理などをできるようにする。
- 誤操作対策やセキュリティ強化のために、Aさんは2D関係をお願いするから2Dデータの変更権限をつけたClientToken、Bさんは3D関係をお願いするから3Dデータの変更権限をつけたClientTokenを利用して開発してもらう。
- 開発状況がslackなどのコミュニケーションアプリ上で確認が簡単に行えるように、webhookを利用して通知するようにする。
Organizationの主な機能は以下のものがあります。
- メンバー招待
- Organizationにアカウントを招待することができます。メンバーになると、Organizationに紐づけられたデータの利用が可能になります。
招待の方法は「メンバーを招待する」をご参照ください。 - 権限設定
アカウントごとに権限を分けることが可能です。管理者権限(Admin)ではメンバーの招待などが行えますが、通常権限(User)では、招待は行えません。
権限と行えることについては以下の表のとおりとなっています。
権限 管理者(Admin) 通常(User) 自アカウント情報の更新 〇 〇 アカウントの招待 〇 × クライアントトークン発行 〇 〇 API Key発行 〇 × データセットの更新、ジョブのリトライなど 〇 〇 - リソースのアップロード
- リソース(2D、3D、点群、都市データなど)をアップロードし、Organizationに紐づけることができます。
- Token生成
- Organizationに紐づけられたリソースにアクセスするためのTokenが生成できます。
また、ClientTokenを利用することで、リソースアクセスの権限を制限できるため、さらに柔軟な運用が可能になります。
詳しくは解説ページをご参照ください。 - webhook生成
- イベントが実行された際、外部サービスにHTTPプロトコルを使用して通知するための、webhookが生成できます。
詳しくは「Webhookを作成する」をご参照ください。
また、 [DEFAULT]
のついた、アカウント作成時に作られるOrganizationは特別なものとなっています。このOrganizattionsでは、アカウントの招待や、権限の変更、Organizationの退会、削除は行えません。
2. Organizationを作成する
Organizationの作成手順について説明します。
- OrganizationはMapray Cloudから生成します。
左上のプルダウンメニューから「Create organizations」をクリックします。
「organization name」に任意の名前を入力します。また、Redirect URLは後ほど設定することも可能です。
詳しくは別項目で説明するため、ここでは省略します。
作成したOrganizationとOrganizationIDを確認します。また、Organizationは左上のプルダウンメニューから切り替えることが可能です。
Organizationを切り替えると、「Manage Organizations」ページが表示されます。
3. メンバーを招待する
ここでは、メンバーの招待の仕方について説明します。
- メンバーの招待は、
[DEFAULT]
以外のOrganizationで管理者権限の場合のみ行えます。 「Manage Organizations」ページの、「Invite member」をクリックします。
招待するアカウントでお使いのEmailアドレスの入力と権限を選択してください。また、権限は後ほど管理者権限で変更することもできます。
- 上記の手順がすべて終わると「Invite」ボタンが有効になりますので、ボタンをクリックすると入力いただいたEmailアドレスへ招待用のメールが配信されます。
招待のメールがご入力いただいたメールアドレスに送信されます。(フィルタリング・スパム設定をされている場合は上記URLを受け入れる設定をお願いします。)
メール中の「Join<Organization名>
」をクリックするか、本文下方の「Button not working? Paste the following link into your browser」以下のURLをコピーしてWebブラウザのURL入力欄にペーストし、直接アクセスをして下さい。
認証確認用のWebサイトに接続され、お使いのEmailアドレスでの招待が受諾されます。受諾するとOrganizationにアカウントが紐づけられ、メンバー登録が完了します。
4. Redirect URLを追加する
Mapray Cloudでは、OAuth認証に対応しています。Redirect URLとは、OAuth認証の際に、認可画面で認可リクエストを受諾したのちにWebブラウザが遷移する (リダイレクトする) URLのことです。
遷移先では認可レスポンスのパラメータ群を受け取ることができます。そのため、あらかじめRedirect URLを設定しておくことで、認可コードを不正に取得した攻撃に対処することができます。詳しくは解説ページをご参照ください。
実際にRedirect URLを追加する手順は以下のようになっています。
「Manage Organizations」ページの、歯車ボタンをクリックします。
- 「Redirect URL for OAuth2.0 Authorization Code」に、作成するRedirect URLを入力します。
「Add URL」をクリックするとRedirect URLが追加されます。また、同様にして複数追加もできます。
5. Webhookを作成する
Webhookとは、Webアプリケーションでイベントが実行された際、外部サービスにHTTPプロトコルを使用して通知するシステムです。
例えば、Mapray Cloudの場合であれば、イベントには2D、3D DatasetesなどのCreate、Update、Deleteが指定できるようになっています。このイベントが発生したときに、指定したURLにPOSTリクエストが行われます。例えば、POSTリクエスト先にDatasetsのCreate情報をSlackに通知するURLを指定することで、DatasetsのCreate情報をリアルタイムでSlackで見ることができるようになります。
実際にWebhookを作成する手順は以下のようになっています。
「Manage Organizations」ページの、「Webhook」タブから、「New Webhook」をクリックします。
- 「Webhook name」に任意の名前を入力します。2文字以上128文字以下で作成してください。
- 「Select trigger events」に、通知したいイベントを選択します。複数選択可能です。
- 「Webhook URL」にPOSTリクエスト先のURLを指定します。
- 「Webhook secret」にシークレットトークンを設定します。8文字以上128文字以下で作成してください。
シークレットトークンは、本当にMapray CloudのWebhookからのリクエストなのか検証するためのものです。セキュリティの観点からなるべく複雑なものを設定してください。 上記の手順が全て終わると「Create」ボタンが有効になりますので、ボタンをクリックするとWebhookが作成されます。
- 一時的に無効化したい場合は、Disableをクリックすると無効化できます。