OpenID Connectを使用したSSO設定

OpenID Connectを使用したSSO設定について説明します。

設定の概要については、「設定の流れ」をご確認ください。

具体的な操作については、「操作手順」をご確認ください。

 

各手順タイトルの先頭にあるアイコンは、以下の設定先を示しています。

:

SSOプロバイダで設定する手順を示す。

:

HULFT10 for Container Servicesで設定する手順を示す。

:

AWSで設定または操作する手順を示す。

設定の流れ

OpenID Connectを使用したSSO設定の流れは、以下のとおりです。

表3.11 OpenID Connectを使用したSSO設定の流れ

SSOプロバイダ

HULFT10 for Container Services

AWS

手順1.「管理者ユーザーの作成」

管理者ユーザーを作成(*1)

管理者ユーザーを作成(*1)

-

手順2.「ユーザー認証設定に必要な情報の取得」

HULFT10 for Container ServicesのOpenID Connect用のクライアントを作成

ユーザー認証設定に必要な以下の値を取得

  • OpenID Connect Issuer URL

  • クライアントID

  • クライアントシークレット

→手順3.で設定

-

-

手順3.「ユーザー認証設定の変更」

-

  • ユーザー認証設定をOpenID Connectに変更

  • 手順2.で取得した以下の値を設定

    • OpenID Connect Issuer URL

    • クライアントID

    • クライアントシークレット

ログインリダイレクトURLを取得

→手順4.で設定

-

手順4.「ログインリダイレクトURLの登録」

手順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開発環境での操作は以下のとおりです。

  1. okta開発環境に管理者ユーザーを作成します。

    okta開発環境で作成した管理者ユーザーを、以降の手順でHULFT10 for Container Servicesに設定してください。

 

HULFT10 for Container Servicesでの操作は以下のとおりです。

= 備考 =

以下の手順は管理者権限のユーザーで実施していますが、存在しない場合はrootユーザーで実施してください。

  1. HULFT10 for Container Servicesの管理画面に管理者権限のユーザーIDでログインします。

  2. ホーム>Settings>ユーザー設定>ユーザー管理をクリックします。

  3. 新規作成ボタンをクリックします。

  4. ユーザー新規作成画面で以下の値を設定します。

    表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プロバイダに登録したパスワードでログインしてください。

  5. 保存ボタンをクリックします。

 

管理者ユーザーが作成されました。

= 備考 =

HULFT10 for Container Servicesの管理画面は「ユーザー認証設定の変更」の手順で使用します。閉じないで次の手順に進んでください。

ユーザー認証設定に必要な情報の取得

okta開発環境で、HULFT10 for ContainerのOpenID Connectクライアントを以下のとおり作成します。

  1. okta開発環境のApplicationsApplicationsをクリックします。

  2. Applications画面でCreate App Integrationボタンをクリックします。

  3. Create a new app integrationダイアログで以下を選択し、Nextボタンをクリックします。

    表3.13 設定内容

    項目名

    設定内容

    Sign-in method

    OIDC - OpenID Connect

    Application type

    Web Application

  4. 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クライアントが作成されました。

 

 

ユーザー認証設定に必要な値を取得します。

  1. HULFT10 for Container Servicesでのユーザー認証設定に必要な値を取得します。

    作成したOpenID Connectクライアント“hulft10-oidc”(例)のGeneralタブで、以下の値をコピーして控えておきます。

    ここでコピーした値は、「ユーザー認証設定の変更」で使用します。

     

    クライアントID

    :

    Client CredentialsClient IDの値

    クライアントシークレット

    :

    CLIENT SECRETSの値

    OpenID Connect Issuer URL

    :

    oktaの場合は、oktaの認証に使用するURLが該当

    OpenID Connect Issuer URLは、OpenID Connectクライアント画面ではなく、SSOプロバイダのマニュアルに記載されていることがあります。詳しくは、SSOプロバイダのマニュアルを参照してください。

 

ユーザー認証に必要な値が取得できました。

ユーザー認証設定の変更

HULFT10 for Container Servicesのユーザー認証設定で、ユーザー認証方式に“OpenID Connect”を指定し、「ユーザー認証設定に必要な情報の取得」で取得した値を設定する手順は以下のとおりです。

  1. ホーム>Settings>ユーザー設定>ユーザー認証設定をクリックします。

  2. ユーザー認証方式に“OpenID Connect”を指定します。

  3. OpenID Connect認証設定で以下の値を設定します。

    表3.15 設定内容

    項目名

    設定内容

    OpenID Connect Issuer URL

    「ユーザー認証設定に必要な情報の取得」で取得した「OpenID Connect Issuer URL」の値

    クライアントID

    「ユーザー認証設定に必要な情報の取得」で取得した「クライアントID」の値

    クライアントシークレット

    「ユーザー認証設定に必要な情報の取得」で取得した「クライアントシークレット」の値

  4. OpenID Connect認証設定で表示されている以下の値をコピーして控えておきます。

    表3.16 表示内容

    項目名

    表示内容

    ログインリダイレクトURL

    (例)https://external-control-example.com/login/processing

    SSOプロバイダによってログインリダイレクトURLの名称が異なる場合があります。詳細はSSOプロバイダのマニュアルでご確認ください。

    ログインリダイレクトURLの値は、「ログインリダイレクトURLの登録」で使用します。

  5. 保存ボタンをクリックします。

  6. ユーザー認証設定の保存ダイアログで、ユーザー認証設定を変更するチェックボックスをチェックします。

 

ユーザー認証設定が変更されました。

ログインリダイレクトURLの登録

SSOプロバイダはSSOプロバイダに登録されていないサービスを認証しません。

このため、SSOプロバイダにHULFT10 for Container ServicesのログインリダイレクトURLを登録します。

okta開発環境では以下の手順となります。

  1. okta開発環境のGeneralタブで、General SettingsEditボタンをクリックします。

  2. General Settingsダイアログで、LOGINSign-in redirect URLs「ユーザー認証設定の変更」で取得した「ログインリダイレクトURL」の値を設定します。

  3. Saveボタンをクリックします。

 

oktaはHULFT10 for Container Servicesのユーザーを認証できるようになりました。

管理コンテナの再起動

HULFT10 for Container Servicesでのユーザー認証設定を有効にするために、管理コンテナを再起動します。

EC2の場合

EC2を使用している場合、以下の手順で管理コンテナを再起動します。

  1. CloudFormation NewDeployTemplate2の実行スタックを開き、リソースタブをクリックします。

  2. 論理IDECSSummary1となっている行の物理IDをクリックします。

    ECSSummary1でネストされたスタックのリソースの画面が開きます。

  3. 論理IDECS1となっている行の物理IDをクリックします。

    ECS1でネストされたスタックの情報画面が開きます。

  4. リソースタブをクリックして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を使用している場合、以下の手順で管理コンテナを再起動します。

  1. CloudFormation NewDeployTemplate1の実行スタックを開き、リソースタブをクリックします。

  2. 論理IDECSSummary1となっている行の物理IDをクリックします。

    ECSSummary1でネストされたスタックのリソースの画面が開きます。

  3. 論理IDFargateECSとなっている行の物理IDをクリックします。

    FargateECSでネストされたスタックの情報画面が開きます。

  4. リソースタブをクリックして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のプロファイル画面でそのユーザーに“転送コンテナ”の権限を付与する必要があります。

 

以下の手順で、転送コンテナユーザーを作成し、ユーザーの権限が“メンバー”となっていることを確認します。

  1. okta開発環境で転送コンテナ用のユーザーを作成します。

  2. HULFT10 for Container ServicesのログインリダイレクトURLをWebブラウザに入力し、ログイン画面を開きます。

  3. でログインボタンをクリックします。

  4. 手順1. で作成したユーザーのユーザー名およびパスワードを入力してサインインボタンをクリックします。

  5. oktaパスワードが失効していますダイアログが表示された場合は、新しいパスワードパスワードを再入力してくださいにパスワードを入力して、パスワード変更ボタンをクリックします。

    ここで入力したパスワードは仮パスワードになります。

  6. ホーム>Settings>個人設定>プロファイルをクリックします。

  7. プロファイル画面で、ユーザーの権限が“メンバー”となっていることを確認します。

  8. HULFT10 for Container Servicesの管理画面からログアウトします。

  9. SSOプロバイダからログアウトするため、WebブラウザのCookieを削除します。

 

以下の手順で、ユーザーの権限を“メンバー”から“転送コンテナ”に変更します。

  1. HULFT10 for Container ServicesのログインリダイレクトURLをWebブラウザに入力し、ログイン画面を開きます。

  2. 管理者ユーザーの作成で作成した管理者ユーザーのユーザー名およびパスワードを入力してサインインボタンをクリックします。

  3. ホーム>Settings>ユーザー設定>ユーザー管理をクリックします。

  4. ユーザー管理の一覧から、転送コンテナユーザーとして作成したユーザーのユーザーIDをクリックします。

  5. ユーザー管理画面で、以下を設定します。

    表3.17 設定内容

    項目名

    設定内容

    メールアドレス

    「ユーザーID」と同じメールアドレスを指定

    ユーザーの権限

    転送コンテナ

    その他の項目の設定は任意です。

  6. 保存をクリックします。

ユーザーの権限が“メンバー”から“転送コンテナ”に変更されました。

 

アクセストークンを取得する手順は以下のとおりです。

  1. ユーザー管理の一覧から、ユーザーの権限を“メンバー”から“転送コンテナ”に変更したユーザーのユーザーIDをクリックします。

  2. 転送コンテナユーザーのユーザー管理画面でアクセストークンを発行ボタンをクリックします。

  3. アクセストークンの発行ダイアログで、アクセストークンを発行ボタンをクリックします。

  4. アクセストークンの発行ダイアログに表示されたアクセストークンをコピーします。

  5. OKボタンをクリックします。

 

アクセストークンを取得しました。

アクセストークンの登録

転送コンテナでアクセストークンを使用できるようにするには、 スタックの出力タブのTransferControlTokenに記載されているSecrets Managerの値に、取得したアクセストークンを登録する必要があります。 CLIで登録、または、Secrets Managerのページで登録します。

 

Secrets Managerのページで登録する手順は以下のとおりです。

CLIで登録する手順については、「アクセストークンを使用した認証の設定」「アクセストークンをSecrets Managerに登録」を参照してください。

  1. AWS Secrets Manager>シークレットをクリックします。

  2. シークレット画面で、シークレットの名前に以下のスタックの出力タブのTransferControlTokenが表示されているリンクをクリックします。

    EC2使用の場合

    : CloudFormation NewDeployTemplate2

    Fargate使用の場合

    : CloudFormation NewDeployTemplate1

  3. 概要タブのシークレットの値に表示されているシークレットの値を取得するボタンをクリックします。

  4. シークレットの値編集するボタンをクリックします。

  5. シークレットの値を編集ダイアログのプレーンテキストタブに、アクセストークンの値を入力します。

  6. 保存ボタンをクリックします。

 

アクセストークンが有効になりました。

転送コンテナの再起動

登録したアクセストークンを転送コンテナで使用するためには、転送コンテナの再起動が必要です。

EC2の場合

EC2を使用している場合、以下の手順で転送コンテナを再起動します。

  1. CloudFormation NewDeployTemplate2の実行スタックのリソースタブをクリックします。

  2. 論理IDECSSummary1の行の物理IDをクリックします。

    ECSSummary1でネストされたスタックのリソースの画面が開きます。

  3. リソースタブをクリックして、論理IDECS1の行の物理IDをクリックします。

    ECS1でネストされたスタックの情報画面が開きます。

  4. リソースタブをクリックしてEcsClusterおよびEcsService2の値を取得します。

CLIまたはECSのページでサービスの更新を行います。

 

転送コンテナを再起動するコマンドの例

aws ecs update-service --cluster EcsCluster --service EcsService2 --force-new-deployment

このコマンドの--clusterには、本手順で取得したEcsClusterの値を指定します。

このコマンドの--serviceには、本手順で取得したEcsService2の値を指定します。

 

転送コンテナを再起動すると、アクセストークンが有効になります。

 

Fargateの場合

Fargateを使用している場合、以下の手順で転送コンテナを再起動します。

  1. CloudFormation NewDeployTemplate1の実行スタックのリソースタブをクリックします。

  2. 論理IDECSSummary1の行の物理IDをクリックします。

    ECSSummary1でネストされたスタックのリソースの画面が開きます。

  3. リソースタブをクリックして、論理IDFargateECSの行の物理IDをクリックします。

    FargateECSでネストされたスタックの情報画面が開きます。

  4. リソースタブをクリックしてFargateEcsClusterおよびFargateEcsServiceForTransferの値を取得します。

CLIまたはECSのページでサービスの更新を行います。

 

転送コンテナを再起動するコマンドの例

aws ecs update-service --cluster FargateEcsCluster --service FargateEcsServiceForTransfer --force-new-deployment

このコマンドの--clusterには、本手順で取得したFargateEcsClusterの値を指定します。

このコマンドの--serviceには、本手順で取得したFargateEcsServiceForTransferの値を指定します。

 

転送コンテナを再起動すると、アクセストークンが有効になります。

 

 

以上で、OpenID Connectを使用したSSO設定が完了です。