Select to view content in your preferred language

AWS で SSO を実現! - OpenID Connect で ArcGIS 連携

702
0
11-20-2024 03:43 PM
Labels (1)

AWS で SSO を実現! - OpenID Connect で ArcGIS 連携

はじめに

ArcGIS Enterprise では、OpenID Connect (OIDC) を利用したログインを構成することで、組織内で利用しているシステムと同じ認証情報を使用して ArcGIS Enterprise へサイン インすることが可能となります。今回は、Amazon Cognito のユーザーを使用して ArcGIS Enterprise のポータルへサイン インできるよう構成する手順をご紹介します。

KojiKUROSAWA_0-1732061115746.png

 

本ブログでは、ArcGIS Enterprise 11.3 を使用しています。ArcGIS Enterprise の概要や新機能等については、過去ブログ( ArcGIS Enterprise のコンポーネントを簡単解説 / ArcGIS Enterprise 11.3 の新機能 )を併せてご覧ください。

また、OpenID Connect を利用した ArcGIS との連携についても、過去ブログ ( OpenID Connect を利用した ArcGIS Enterprise と Yahoo との連携 / OpenID Connect を使用した ArcGIS Online と WAGRI との連携 ) を併せてご覧ください。

 

OpenID Connect とは

OpenID Connect (OIDC) は、OAuth 2.0 をベースとした ID 連携の標準仕様です。ログインや認証を複数のサービス間で安全に利用することができます。ユーザーはサービスごとにログイン情報を管理する手間を省くことができ、サービス提供者もセキュリティ対策等の負担を減らすことができます。OpenID Connect の詳細については、以下サイトをご覧ください。

What is OpenID Connect

 

Amazon Cognito とは

Amazon Cognito は、OpenID Connect (OIDC) をサポートした、ユーザー認証とアクセス管理のための Amazon Web Services (AWS) が提供するサービスです。Amazon Cognito の詳細については、以下サイトをご覧ください。

Amazon Cognito とは

 

Amazon Cognito の設定

本章は設定例となります。Amazon Cognito 側の設定の詳細については、弊社では未サポートのため、開発者ガイド (Amazon Cognito user pools) をご覧いただくか、AWS のサポートへご確認ください。それでは、Amazon Cognito 側の設定を見ていきましょう。先ずはユーザー プールを作成します。

 

ユーザー プールの作成 (ステップ1)

サイン イン エクスペリエンスの設定では、プロバイダーのタイプは「Cognito ユーザー プール」を、サイン イン オプションは「E メール」を選択します。

KojiKUROSAWA_1-1732061210545.png

 

ユーザー プールの作成 (ステップ2)

セキュリティ要件の設定では、パスワード ポリシーは「Cognito のデフォルト」を選択し、ここでは多要素認証は「MFA なし」を選択します。また、セルフ サービスのアカウントの復旧はチェックあり、ユーザー アカウント復旧メッセージの配信方法は「E メール」を選択します。

KojiKUROSAWA_2-1732061245565.pngKojiKUROSAWA_3-1732061263586.png

 

ユーザー プールの作成 (ステップ3)

サイン アップ エクスペリエンスの設定では、以下の図の通りの設定としています。必須の属性には「email」が設定されていることを確認します。

 

KojiKUROSAWA_4-1732061317651.pngKojiKUROSAWA_5-1732061336339.pngKojiKUROSAWA_6-1732061353482.png

 

ユーザー プールの作成 (ステップ4)

メッセージ配信の設定は、「Cognito E メールを送信」を選択します。送信元の E メール アドレスはデフォルトのままとします。送信先 E メール アドレスはオプションとなります (ここでは、任意のメールアドレスを設定しています)

KojiKUROSAWA_7-1732061383131.png

 

ユーザー プールの作成 (ステップ5)

アプリケーションの統合の設定では、ユーザー プール名やアプリケーション クライアントの設定を行います。ユーザー プール名およびアプリケーション クライアント名は任意の名称を設定します。クライアント シークレットは、後述する ArcGIS Enterprise 側の設定で使用しますので、「クライアントのシークレットを生成する」を選択します。他は以下の通りの設定としています。

KojiKUROSAWA_8-1732061411777.pngKojiKUROSAWA_0-1732074889095.png

 

認証フローについては、実際に利用する認証フローのみを選択する方がよいでしょう。

KojiKUROSAWA_1-1732074921186.pngKojiKUROSAWA_2-1732074944684.png

 

 

ユーザー プールの作成 (ステップ6)

ユーザー プールの作成における設定値の確認を行います。

KojiKUROSAWA_3-1732074970871.png

 

 

設定値の表示と確認のみとなるため、途中の画面は省略します。最後に [ユーザー プールを作成] を押下すれば、ユーザー プールの作成は完了です。

KojiKUROSAWA_4-1732075002908.png

 

 

ドメインの作成

[Amazon Cognito] → [ユーザー プール] で作成したユーザー プールを選択し、[アプリケーションの統合] タブ → [ドメイン] のアクションから [Cognito ドメインの作成] を選択します。その後、Cognito ドメインを入力し作成します。

KojiKUROSAWA_5-1732075025544.png

 

 

ホストされた UI の編集

[Amazon Cognito] → [ユーザー プール] で作成したユーザー プールを選択し、[アプリケーションの統合] タブ → [アプリ クライアントと分析] から作成されたアプリケーション クライアントを選択します。

KojiKUROSAWA_6-1732075047392.png

 

 

[ホストされた UI] [編集] からホストされた UI を編集します。

KojiKUROSAWA_7-1732075063072.png

 

 

[許可されているコールバック URL] および [許可されているサイン アウト URL] には、適当な「仮の URL」を入れておきます (あとで書き換えます)[ID プロバイダー] は「Cognito ユーザー プール」を選択し、[OAuth 2.0 許可タイプ] は「認証コード付与」を選択します。[OpenID Connect のスコープ] は「E メール」と「OpenID」、「プロファイル」を選択し、編集を保存します。

KojiKUROSAWA_8-1732075092697.png

 

 

上記の URL 以外は、Amazon Cognito 側の設定は以上となります。

 

ArcGIS Enterprise 側の設定

次は ArcGIS Enterprise 側の設定を見ていきましょう。管理者ロールを持つユーザーで ArcGIS Enterprise へサイン インします。

 

OpenID Connect ログインの編集

[組織] タブ → [設定] タブ → [セキュリティ] [ログイン] [新しい OpenID Connect ログイン] から OpenID Connect ログインの編集を行います。

KojiKUROSAWA_9-1732075121617.png

 

 

 [ログイン ボタン ラベル] に「任意の名称」を設定し、[新規メンバーの加入を許可] を「自動」としておきます。自動としておくことで、新規メンバーが ArcGIS Enterprise OpenID Connect を利用してサイン インしたとき、アカウントが自動で組織サイトに登録されます。詳細は 組織アカウントの自動登録の構成 をご覧ください。

KojiKUROSAWA_10-1732075137499.png

 

 

[登録済みクライアント ID] は、Amazon Cognito 側の設定にて作成した 「アプリケーションのクライアント ID( 1 ) を設定します。[認証方法] は、「クライアント シークレット」を選択し、「登録済みクライアント シークレット」 ( 2 ) を設定します。

 

1 : [Amazon Cognito] [ユーザー プール] から作成したユーザー プールを選択し、[アプリケーション クライアントのリスト] で作成したアプリ クライアントを選択します。[アプリケーション クライアントに関する情報] から「クライアント ID」をコピーします。

2 : 上記と同様に [アプリケーション クライアントに関する情報] から「クライアント シークレット」をコピーします。

KojiKUROSAWA_11-1732075165962.png

 

 

[プロバイダーの範囲/権限] は、「email openid profile」を設定します。[プロバイダー発行者 ID] 以降は、以下に示す通りの内容で設定します。

 

[プロバイダー発行者 ID]

https://cognito-idp.{aws_region}.amazonaws.com/{userpool_id}  ( 3 )

(例) https://cognito-idp.ap-northeast-1.amazonaws.com/ap-northeast-1_eItxSlcda

 

[OAuth 2.0 認証エンドポイント URL]

https://{domain_prefix}.auth.{aws_region}.amazoncognito.com/oauth2/authorize  ( 4 )

(例) https://arcgisenterprise.auth.ap-northeast-1.amazoncognito.com/oauth2/authorize

 

[トークン エンドポイント URL]

https://{domain_prefix}.auth.{aws_region}.amazoncognito.com/oauth2/token

(例) https://arcgisenterprise.auth.ap-northeast-1.amazoncognito.com/oauth2/token

 

[JSON Web キー セット (JWKS) URL]

https://cognito-idp.{aws_region}.amazonaws.com/{userpool_id}/.well-known/jwks.json

(例) https://cognito-idp.ap-northeast-1.amazonaws.com/ap-northeast-1_eItxSlcda/.well-known/jwks.json

 

※ 3 : {aws_region} は、AWS リージョン コード から確認ができます。「アジア パシフィック (東京)」の場合は「ap-northeast-1」となります。{userpool_id} は、[Amazon Cognito] [ユーザー プール] から作成したユーザー プールを選択し、[ユーザー プールの概要] からユーザー プール ID をコピーします。

4 : {domain_prefix} は、[Amazon Cognito] [ユーザー プール] から作成したユーザー プールを選択し、[アプリケーションの統合] タブの [ドメイン] で設定された Cognito ドメインのプレフィックスをコピーします。

KojiKUROSAWA_12-1732075189156.png

 

 

[ユーザー プロファイル エンドポイント URL] および、[ログアウト エンドポイント URL][ArcGIS ユーザー名フィールド/請求名] は何も設定はせず空のままとし、[ヘッダーのアクセス トークンを送信] にチェックを入れます。

KojiKUROSAWA_13-1732075208293.png

 

 

Amazon Cognito 側の設定において、仮で設定した URL を書き換えるため、「ログイン リダイレクト URL」と「ログアウト リダイレクト URL」を控えておきます。[保存] ボタンを押下して設定を保存します。

KojiKUROSAWA_14-1732075223848.png

 

 

ログイン / ログアウト URL の設定

Amazon Cognito 側の設定における「ホストされた UIの編集」において、仮で設定した URL を前章にて控えておいた URL へ書き換えます。[許可されているコールバック URL] には「ログイン リダイレクト URL」を、[許可されているサイン アウト URL] には「ログアウト リダイレクト URL」を設定し保存します。

KojiKUROSAWA_15-1732075239592.png

 

 

ログイン構成の有効化

最後に「ログインの構成」にチェックを入れてすべての設定は完了です。

KojiKUROSAWA_16-1732075259100.png

 

 

ArcGIS Enterprise へのサイン イン

設定が完了したら、ArcGIS Enterprise からサイン アウトし、Amazon Cognito で作成したユーザーで ArcGIS Enterprise へサイン インしてみましょう。

サイン イン画面へアクセスすると、OpenID Connect ログインの編集で設定した [Amazon Cognito サイン イン] ボタンが表示されていることが分かります。ボタンを押下すると、Amazon Cognito 側のログイン画面へリダイレクトされるので、Amazon Cognito 側で設定した E メール アドレスを入力します (初回ログインの場合はパスワード設定を求められます)

KojiKUROSAWA_17-1732075274905.png

 

KojiKUROSAWA_18-1732075289689.png

 

 

ArcGIS Enterprise へのサイン インができました。Amazon Cognitoで作成したユーザーの「ユーザー ID」と「E メール アドレス (@より前)」を使用して、ArcGIS Enterprise のユーザー アカウントが登録されていることが分かります。

 

まとめ

今回は、OpenID Connect を利用して Amazon Cognito のユーザーで ArcGIS Enterprise へサイン インする方法を紹介しました。ArcGIS Enterprise ArcGIS Online は、OpenID Connect 認証プロトコルをサポートしています。OpenID Connect をサポートしているシステムであれば、ArcGIS Enterprise ArcGIS Online との連携が容易にできます。是非ご活用ください。

 

関連リンク

ArcGIS Enterprise

ArcGIS ブログ:

 

Labels (1)
Version history
Last update:
‎11-20-2024 03:47 PM
Updated by:
Contributors