OpenID Connect を利用した ArcGIS Enterprise と Yahoo との連携

はじめに

OpenID Connectとは、サービス間で、利用者の同意に基づきID情報を流通するための標準仕様であり、OAuth 2.0 をベースとした ID 連携(フェデレーション)の標準プロトコルです。

そのため、OAuth 2.0 による API 認可と合わせてユーザー認証を行うことができるようになっています。詳しい仕様については、OpenID ファウンデーション・ジャパン(OIDF-J)という団体が、OAuth 2.0 や OpenID Connect の標準仕様などのドキュメントを公開しています。また、日本における OpenID 関連技術の普及啓発やエンタープライズ・フェデレーション、安心して ID を利用できる環境の整備、プライバシー保護の推進などの啓発活動を通じて、オープンな API エコシステムの成長を支援するための活動も行っています。

OpenID Connectを利用して、利用者はOpenID提供サイトに登録したID情報を使って、ほかのOpenID対応サイトにログインすることが可能になります。

ArcGIS Enterpriseでは、OpenID Connect 認証プロトコルをサポートしており、Okta や Google などの OpenID Connect をサポートしている IDP (ID プロバイダー) と統合されています。

OpenID Connect 連携により、Yahoo ID を利用して、ArcGIS Enterprise にログインすることが可能です。

OpenID Connect 連携を実現する流れは以下の通りです。

  • Yahoo IDを作成
  • Yahoo アプリケーションの管理にてClient ID を作成
  • ArcGIS EnterpriseにてOpenID Connect の設定

Yahoo IDを作成

Yahoo ID の作成ページより、Yahoo ID を作成します。

詳細は、Yahoo! Japan ID を登録するには、のページを参照ください。

Yahoo アプリケーションの管理にてClient ID を作成

アプリケーションの管理にて、「新しいアプリケーションを開発」を行っていきます。

  1. ID連携利用有無にて、「ID連携を利用する」を選択します。
  2. 属性取得APIにて、「属性取得APIを利用する」を選択します。アプリケーションの種類にて、「サーバーサイド」を選択します。
  3. 属性取得APIで追加して取得する情報にチェックを付けます。(プライバシーポリシーと利用規約の登録が必須となります。)
  4. アプリケーション名は任意で構いませんが、ここではわかりやすいようにArcGIS Enterprise としています。サイトURLにはPortal for ArcGISのサイトのURLを入力します。
  5. プライバシーポリシーURLと利用規約URLには、アプリケーションに関わるプライバシーポリシーと利用規約のURLを指定します。

なお、OpenID Connect の連携検証に直接かかわる項目ではございません。

新しいアプリケーションの作成を行うとClient ID と Client シークレットが生成されます。これらの情報は、ArcGIS Enterprise でのOpenID Connect の設定でも利用します。

なお、コールバックURLは、ArcGIS Enterprise にてOpenID Connect の設定後に生成される [ログイン リダイレクト URI] および [ログアウト リダイレクト URI] (該当する場合) をコピーして、OpenID Connect IDP (Yahoo側) で許可されるリストとして追加します。

ArcGIS  Enterprise にて OpenID Connect の設定

OpenID Connect ログイン設定に必要な情報として、IDP 側で作成するクライアント ID とクライアント シークレット、さらに IDP に関する情報が必要になります。

IDP に関する情報は

・ https://[IdPdomain]/.well-known/openid-configuration

の URL でアクセスすることで、該当の IDP の情報を取得することができます。情報は JSON で返却されます。

Yahoo IDP に関する情報は、https://auth.login.yahoo.co.jp/yconnect/v2/.well-known/openid-configuration にて取得できます。

ArcGIS Enterprise にて、OpenID Connect の設定をしていきます。詳細は、OpenID Connect ログインの構成 ページを参照ください。

まずは事前に 組織 > 設定 > 新しいメンバーのデフォルト設定 にて、

新しいメンバーのデフォルトのユーザー タイプとロールを設定しておきます。

次に、組織 > 設定 > セキュリティのログインセクションにて、[OpenID Connect ログイン] をクリックします。

[新規メンバーの加入を許可]では、自動を選択します。(自動オプションを使用すると、メンバーは OpenID Connect ログインでサイン インすることで、組織サイトに加入できます。)

登録済みクライアントID・登録済みクライアントシークレットには、アプリケーションの管理で作成したIDとシークレットを設定します。[プロバイダーの範囲/権限] ボックスに、認証エンドポイントにリクエストとともに送信する範囲を入力します。

OpenID Connect プロバイダーがサポートしていれば、範囲に openid profile email の標準値を使用できます。Yahoo の openid-configuration でもscopes_supported にて定義されていることが分かります。

OAuth 2.0 認証エンドポイント URL、トークン エンドポイント URL、JSON Web キー セット (JWKS) URL、ユーザー プロファイル エンドポイント URL (推奨)には、Yahoo IDP に関する情報で定義されたURLを指定していきます。

一度、OpenID Connect 設定を行うと[ログイン リダイレクト URI]などが生成されます。

生成された [ログイン リダイレクト URI] および [ログアウト リダイレクト URI] (該当する場合) をコピーして、OpenID Connect IDP の許可されたコールバック URL のリストに追加します。

これらの一連の設定により、ArcGIS Enterprise のサインイン画面より、Yahoo OpenID Connect ボタンが表示され、Yahoo ID にてArcGIS Enterprise にサインインできるようになります。

ArcGIS Enterpriseは、OpenID Connect 認証プロトコルをサポートしており、Okta や Google 、Yahooなどの OpenID Connect をサポートしている IDP と統合されています。

GIS活用の中でのDX推進のヒントにしてみてください。

※参考

フォローする