OpenID Connectを使用したSSO設定
OpenID Connectを使用したSSO設定について説明します。
設定の概要については、「設定の流れ」をご確認ください。
具体的な操作については、「操作手順」をご確認ください。
各手順タイトルの先頭にあるアイコンは、以下の設定先を示しています。
|
: |
SSOプロバイダで設定する手順を示す。 |
|
: |
HULFT10 for Container Servicesで設定する手順を示す。 |
|
: |
AWSで設定または操作する手順を示す。 |
設定の流れ
OpenID Connectを使用したSSO設定の流れは、以下のとおりです。
SSOプロバイダ |
HULFT10 for Container Services |
AWS |
---|---|---|
手順1.「管理者ユーザーの作成」 |
||
管理者ユーザーを作成(*1) |
管理者ユーザーを作成(*1) |
- |
HULFT10 for Container ServicesのOpenID Connect用のクライアントを作成
ユーザー認証設定に必要な以下の値を取得
→手順3.で設定 |
- |
- |
手順3.「ユーザー認証設定の変更」 |
||
- |
ログインリダイレクトURLを取得 →手順4.で設定 |
- |
手順3.で取得したログインリダイレクトURLを登録 |
- |
- |
手順5.「管理コンテナの再起動」 |
||
- |
- |
管理コンテナを再起動 |
手順6.「アクセストークンの取得」 |
||
転送コンテナユーザーを作成 |
アクセストークンの取得(*2) →手順7.で登録 |
- |
手順7.「アクセストークンの登録」 |
||
- |
- |
手順6.で取得したアクセストークンを登録 |
手順8.「転送コンテナの再起動」 |
||
- |
- |
転送コンテナを再起動 |
*1 |
: |
SSOが有効な場合、ID/パスワードを使用したログインはできません。 |
*2 |
: |
SSOが有効になると、パスワードを使用した認証によるログインが無効となるため、転送コンテナの再起動ができません。このため、アクセストークンを使用した認証が必要となります。 |
操作手順
OpenID Connectを使用したSSO設定の操作手順を、SSOプロバイダに「okta」を使用した例で説明します。
「okta」以外に利用できるSSOプロバイダについては、「利用可能なシングルサインオン(SSO)プロバイダ」を参照してください。
管理者ユーザーの作成
SSOが有効になると、HULFT10 for Container Servicesへパスワードによるログインはできなくなります
SSOを有効にした後に管理者権限でHULFT10 for Container Servicesにログインできるよう、事前にSSOプロバイダでの管理者ユーザーと同期させるHULFT10 for Container Servicesの管理者ユーザーを作成します。
SSOプロバイダのokta開発環境での操作は以下のとおりです。
-
okta開発環境に管理者ユーザーを作成します。
okta開発環境で作成した管理者ユーザーを、以降の手順でHULFT10 for Container Servicesに設定してください。
HULFT10 for Container Servicesでの操作は以下のとおりです。
以下の手順は管理者権限のユーザーで実施していますが、存在しない場合はrootユーザーで実施してください。
-
HULFT10 for Container Servicesの管理画面に管理者権限のユーザーIDでログインします。
-
ホーム>Settings>ユーザー設定>ユーザー管理をクリックします。
-
新規作成ボタンをクリックします。
-
ユーザー新規作成画面で以下の値を設定します。
表3.12 設定内容
項目名
設定内容
ユーザーID
okta開発環境に登録したHULFT10 for Container Services管理者のEメールアドレス
表示名
(例)okta開発環境に登録したHULFT10 for Container Services管理者のEメールアドレス
メールアドレス
okta開発環境に登録したHULFT10 for Container Services管理者のEメールアドレス
初期パスワード
任意の初期パスワード(*1)
ユーザーの権限
管理者
その他の項目の設定は任意です。
*1
:
ユーザー新規作成画面で設定する初期パスワードはHULFT10 for Container Servicesの管理画面にログインするためのものです。
SSOの設定が有効になった後はこちらの初期パスワードではなく、SSOプロバイダに登録したパスワードでログインしてください。
-
保存ボタンをクリックします。
管理者ユーザーが作成されました。
HULFT10 for Container Servicesの管理画面は「ユーザー認証設定の変更」の手順で使用します。閉じないで次の手順に進んでください。
ユーザー認証設定に必要な情報の取得
okta開発環境で、HULFT10 for ContainerのOpenID Connectクライアントを以下のとおり作成します。
-
okta開発環境のApplications-Applicationsをクリックします。
-
Applications画面でCreate App Integrationボタンをクリックします。
-
Create a new app integrationダイアログで以下を選択し、Nextボタンをクリックします。
表3.13 設定内容
項目名
設定内容
Sign-in method
OIDC - OpenID Connect
Application type
Web Application
-
New Web App Integration画面で、以下を設定しSaveボタンをクリックします。
表3.14 設定内容
項目名
設定内容
App integration name
任意のクライアント名(例として、“hulft10-oidc”)を指定
Controlled access
Allow everyone in your organization to access
Enable immediate access
Enable immediate access with Federation Broker Mode
HULFT10 for ContainerのOpenID Connectクライアントが作成されました。
ユーザー認証設定に必要な値を取得します。
-
HULFT10 for Container Servicesでのユーザー認証設定に必要な値を取得します。
作成したOpenID Connectクライアント“hulft10-oidc”(例)のGeneralタブで、以下の値をコピーして控えておきます。
ここでコピーした値は、「ユーザー認証設定の変更」で使用します。
ユーザー認証に必要な値が取得できました。
ユーザー認証設定の変更
HULFT10 for Container Servicesのユーザー認証設定で、ユーザー認証方式に“OpenID Connect”を指定し、「ユーザー認証設定に必要な情報の取得」で取得した値を設定する手順は以下のとおりです。
-
ホーム>Settings>ユーザー設定>ユーザー認証設定をクリックします。
-
ユーザー認証方式に“OpenID Connect”を指定します。
-
OpenID Connect認証設定で以下の値を設定します。
表3.15 設定内容
項目名
設定内容
OpenID Connect Issuer URL
クライアントID
クライアントシークレット
-
OpenID Connect認証設定で表示されている以下の値をコピーして控えておきます。
SSOプロバイダによってログインリダイレクトURLの名称が異なる場合があります。詳細はSSOプロバイダのマニュアルでご確認ください。
ログインリダイレクトURLの値は、「ログインリダイレクトURLの登録」で使用します。
-
保存ボタンをクリックします。
-
ユーザー認証設定の保存ダイアログで、ユーザー認証設定を変更するチェックボックスをチェックします。
ユーザー認証設定が変更されました。
ログインリダイレクトURLの登録
SSOプロバイダはSSOプロバイダに登録されていないサービスを認証しません。
このため、SSOプロバイダにHULFT10 for Container ServicesのログインリダイレクトURLを登録します。
okta開発環境では以下の手順となります。
-
okta開発環境のGeneralタブで、General SettingsのEditボタンをクリックします。
-
General Settingsダイアログで、LOGINのSign-in redirect URLsに「ユーザー認証設定の変更」で取得した「ログインリダイレクトURL」の値を設定します。
-
Saveボタンをクリックします。
oktaはHULFT10 for Container Servicesのユーザーを認証できるようになりました。
管理コンテナの再起動
HULFT10 for Container Servicesでのユーザー認証設定を有効にするために、管理コンテナを再起動します。
EC2の場合
EC2を使用している場合、以下の手順で管理コンテナを再起動します。
-
CloudFormation NewDeployTemplate2の実行スタックを開き、リソースタブをクリックします。
-
論理IDがECSSummary1となっている行の物理IDをクリックします。
ECSSummary1でネストされたスタックのリソースの画面が開きます。
-
論理IDがECS1となっている行の物理IDをクリックします。
ECS1でネストされたスタックの情報画面が開きます。
-
リソースタブをクリックしてEcsClusterおよびEcsServiceの値を取得します。
CLIまたはECSのページでサービスの更新を行います。
管理コンテナを再起動するコマンドの例
aws ecs update-service --cluster EcsCluster --service EcsService --force-new-deployment
このコマンドの--clusterには、本手順で取得したEcsClusterの値を指定します。
このコマンドの--serviceには、本手順で取得したEcsServiceの値を指定します。
管理コンテナを再起動すると、HULFT10 for Container Servicesでのユーザー認証設定が有効になります。
Fargateの場合
Fargateを使用している場合、以下の手順で管理コンテナを再起動します。
-
CloudFormation NewDeployTemplate1の実行スタックを開き、リソースタブをクリックします。
-
論理IDがECSSummary1となっている行の物理IDをクリックします。
ECSSummary1でネストされたスタックのリソースの画面が開きます。
-
論理IDがFargateECSとなっている行の物理IDをクリックします。
FargateECSでネストされたスタックの情報画面が開きます。
-
リソースタブをクリックしてFargateEcsClusterおよびFargateEcsServiceForControlの値を取得します。
CLIまたはECSのページでサービスの更新を行います。
管理コンテナを再起動するコマンドの例
aws ecs update-service --cluster FargateEcsCluster --service FargateEcsServiceForControl --force-new-deployment
このコマンドの--clusterには、本手順で取得したFargateEcsClusterの値を指定します。
このコマンドの--serviceには、本手順で取得したFargateEcsServiceForControlの値を指定します。
管理コンテナを再起動すると、HULFT10 for Container Servicesでのユーザー認証設定が有効になります。
アクセストークンの取得
SSOが有効になると、パスワードを使用した認証によるログインが無効となるため、転送コンテナの再起動ができません。このため、アクセストークンを使用した認証が必要となります。
ユーザー認証によるログインを有効化する前にアクセストークンを使用した認証を設定済みの場合でも、ユーザー認証によるログインを有効化後にアクセストークンを使用した認証を再設定してください。
アクセストークンは、転送コンテナユーザーでログインしたHULFT10 for Container Servicesのユーザー管理画面で取得できます。
転送コンテナユーザーの作成は、SSOが有効となった後はパスワードの認証とは異なる手順となります。
転送コンテナ用のユーザーはSSOプロバイダで作成しますが、そのユーザーはHULFT10 for Container Servicesでは“メンバー”の権限が付与されています。
HULFT10 for Container Servicesのプロファイル画面でそのユーザーに“転送コンテナ”の権限を付与する必要があります。
以下の手順で、転送コンテナユーザーを作成し、ユーザーの権限が“メンバー”となっていることを確認します。
-
HULFT10 for Container ServicesのログインリダイレクトURLをWebブラウザに入力し、ログイン画面を開きます。
-
OpenID Connectでログインボタンをクリックします。
-
手順1. で作成したユーザーのユーザー名およびパスワードを入力してサインインボタンをクリックします。
-
oktaパスワードが失効していますダイアログが表示された場合は、新しいパスワードとパスワードを再入力してくださいにパスワードを入力して、パスワード変更ボタンをクリックします。
ここで入力したパスワードは仮パスワードになります。
-
ホーム>Settings>個人設定>プロファイルをクリックします。
-
プロファイル画面で、ユーザーの権限が“メンバー”となっていることを確認します。
-
HULFT10 for Container Servicesの管理画面からログアウトします。
-
SSOプロバイダからログアウトするため、WebブラウザのCookieを削除します。
以下の手順で、ユーザーの権限を“メンバー”から“転送コンテナ”に変更します。
-
HULFT10 for Container ServicesのログインリダイレクトURLをWebブラウザに入力し、ログイン画面を開きます。
-
管理者ユーザーの作成で作成した管理者ユーザーのユーザー名およびパスワードを入力してサインインボタンをクリックします。
-
ホーム>Settings>ユーザー設定>ユーザー管理をクリックします。
-
ユーザー管理の一覧から、転送コンテナユーザーとして作成したユーザーのユーザーIDをクリックします。
-
ユーザー管理画面で、以下を設定します。
表3.17 設定内容
項目名
設定内容
メールアドレス
「ユーザーID」と同じメールアドレスを指定
ユーザーの権限
転送コンテナ
その他の項目の設定は任意です。
-
保存をクリックします。
ユーザーの権限が“メンバー”から“転送コンテナ”に変更されました。
アクセストークンを取得する手順は以下のとおりです。
-
ユーザー管理の一覧から、ユーザーの権限を“メンバー”から“転送コンテナ”に変更したユーザーのユーザーIDをクリックします。
-
転送コンテナユーザーのユーザー管理画面でアクセストークンを発行ボタンをクリックします。
-
アクセストークンの発行ダイアログで、アクセストークンを発行ボタンをクリックします。
-
アクセストークンの発行ダイアログに表示されたアクセストークンをコピーします。
-
OKボタンをクリックします。
アクセストークンを取得しました。
アクセストークンの登録
転送コンテナでアクセストークンを使用できるようにするには、 スタックの出力タブのTransferControlTokenに記載されているSecrets Managerの値に、取得したアクセストークンを登録する必要があります。 CLIで登録、または、Secrets Managerのページで登録します。
Secrets Managerのページで登録する手順は以下のとおりです。
CLIで登録する手順については、「アクセストークンを使用した認証の設定」の「アクセストークンをSecrets Managerに登録」を参照してください。
-
AWS Secrets Manager>シークレットをクリックします。
-
シークレット画面で、シークレットの名前に以下のスタックの出力タブのTransferControlTokenが表示されているリンクをクリックします。
- EC2使用の場合
-
: CloudFormation NewDeployTemplate2
- Fargate使用の場合
-
: CloudFormation NewDeployTemplate1
-
概要タブのシークレットの値に表示されているシークレットの値を取得するボタンをクリックします。
-
シークレットの値の編集するボタンをクリックします。
-
シークレットの値を編集ダイアログのプレーンテキストタブに、アクセストークンの値を入力します。
-
保存ボタンをクリックします。
アクセストークンが有効になりました。
転送コンテナの再起動
登録したアクセストークンを転送コンテナで使用するためには、転送コンテナの再起動が必要です。
EC2の場合
EC2を使用している場合、以下の手順で転送コンテナを再起動します。
-
CloudFormation NewDeployTemplate2の実行スタックのリソースタブをクリックします。
-
論理IDがECSSummary1の行の物理IDをクリックします。
ECSSummary1でネストされたスタックのリソースの画面が開きます。
-
リソースタブをクリックして、論理IDがECS1の行の物理IDをクリックします。
ECS1でネストされたスタックの情報画面が開きます。
-
リソースタブをクリックしてEcsClusterおよびEcsService2の値を取得します。
CLIまたはECSのページでサービスの更新を行います。
転送コンテナを再起動するコマンドの例
aws ecs update-service --cluster EcsCluster --service EcsService2 --force-new-deployment
このコマンドの--clusterには、本手順で取得したEcsClusterの値を指定します。
このコマンドの--serviceには、本手順で取得したEcsService2の値を指定します。
転送コンテナを再起動すると、アクセストークンが有効になります。
Fargateの場合
Fargateを使用している場合、以下の手順で転送コンテナを再起動します。
-
CloudFormation NewDeployTemplate1の実行スタックのリソースタブをクリックします。
-
論理IDがECSSummary1の行の物理IDをクリックします。
ECSSummary1でネストされたスタックのリソースの画面が開きます。
-
リソースタブをクリックして、論理IDがFargateECSの行の物理IDをクリックします。
FargateECSでネストされたスタックの情報画面が開きます。
-
リソースタブをクリックしてFargateEcsClusterおよびFargateEcsServiceForTransferの値を取得します。
CLIまたはECSのページでサービスの更新を行います。
転送コンテナを再起動するコマンドの例
aws ecs update-service --cluster FargateEcsCluster --service FargateEcsServiceForTransfer --force-new-deployment
このコマンドの--clusterには、本手順で取得したFargateEcsClusterの値を指定します。
このコマンドの--serviceには、本手順で取得したFargateEcsServiceForTransferの値を指定します。
転送コンテナを再起動すると、アクセストークンが有効になります。
以上で、OpenID Connectを使用したSSO設定が完了です。