2022年3月16日に弊社サービス「YubiOn Portal」にシングルサインオン(SSO)の機能が追加されました。私自身はよくAWSを使用するため、今回はYubiOn PortalのSSO機能を利用してAWSにシングルサインオンする手順をご紹介しようと思います。
【前提条件】
・AWSのアカウントを持っており、管理者操作ができること。
・Yubico OTP機能が付いたYubiKeyを持っていること。
・YubiOn Portalに登録し、操作者にYubiKeyを紐付けておくこと。
・SSOの初期登録が済んでいること。
YubiOn Portalの登録やSSO機能の利用は無料で開始することができるので、お気軽に登録してみてください。
【SSOを使用するまでの流れ】
ざっくり流れを説明すると、YubiOn Portal (IdP)とAWS (SP)との間でメタデータ等のやり取りで信頼関係を構築し、IdP側からSPへシングルサインオンする流れとなります。
App (AWS)の作成とメタデータのダウンロード
2. AWS側の設定
プロバイダ設定 (IdPメタデータの取り込み )、ロール設定、AWS (SP)メタデータダウンロード
AWS側メタデータの取り込み、AWSのロールとプロバイダARNの設定、セッション名の設定、アクセス可能なメンバーを設定
【SSO設定手順】
YubiOn Portalにログインし、サイドバーから「SSO App設定」にアクセスします。
![](https://static.wixstatic.com/media/32aed4_785e4626d65f40128858f9bc584037aa~mv2.png/v1/fill/w_49,h_32,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_785e4626d65f40128858f9bc584037aa~mv2.png)
「Appを選択して追加」ボタンをクリックします。
![](https://static.wixstatic.com/media/32aed4_fcb4237523df462aaba68143c02307c8~mv2.png/v1/fill/w_49,h_19,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_fcb4237523df462aaba68143c02307c8~mv2.png)
アプリケーション登録モーダルで「AWS Management Console」をクリックし、登録を行います。
![](https://static.wixstatic.com/media/32aed4_d2c349a6ada249dc8522e37152503c0c~mv2.png/v1/fill/w_49,h_20,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_d2c349a6ada249dc8522e37152503c0c~mv2.png)
登録が完了するとApp一覧に「AWS Management Console」が表示されます。
続いて「AWS Management Console」をクリックします。
![](https://static.wixstatic.com/media/32aed4_b6f9396f1a774f409c2663c3c6df2c4d~mv2.png/v1/fill/w_49,h_26,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_b6f9396f1a774f409c2663c3c6df2c4d~mv2.png)
AWS側のSSO設定で使用するYubiOn Portalのメタデータを「メタデータダウンロード」をクリックしてダウンロードします。
![](https://static.wixstatic.com/media/32aed4_eed9958f79d941219d85a743016bb0fb~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_eed9958f79d941219d85a743016bb0fb~mv2.png)
YubiOn Portal側のメタデータは次の「AWSの設定」に使用するため、任意の場所に保存しておきます。
2. AWS側の設定
シングルサインオンを利用するために、IDプロバイダの設定とロールの設定を行います。まずはYubiOn Portalのプロバイダを設定するため、AWSの管理コンソールにアクセスします。
画面上部の検索ボックスに「IAM」と入力し、サービス一覧から「IAM」を選択します。
![](https://static.wixstatic.com/media/32aed4_f7d1a6d76abc4938b665a0c38461d3ee~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_f7d1a6d76abc4938b665a0c38461d3ee~mv2.png)
画面左側の「IDプロバイダ」をクリックします。
![](https://static.wixstatic.com/media/32aed4_66b45038ff15485ea49731e4dd5f113b~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_66b45038ff15485ea49731e4dd5f113b~mv2.png)
「プロバイダを追加」ボタンをクリックします。
![](https://static.wixstatic.com/media/32aed4_44ddc689e7fd41e6891e9e47ca82bfa2~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_44ddc689e7fd41e6891e9e47ca82bfa2~mv2.png)
プロバイダの設定で下記を設定します。
プロバイダのタイプ: SAMLを選択します。
プロバイダ名: わかりやすい名前をつけます (例では、YubiOnPortal)
メタデータドキュメント: YubiOn Portalからダウンロードしたメタデータをアップロードします。
![](https://static.wixstatic.com/media/32aed4_adb19e8025cf40689db69591d190c7c6~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_adb19e8025cf40689db69591d190c7c6~mv2.png)
最後に「プロバイダを追加」ボタンからプロバイダを追加します。
![](https://static.wixstatic.com/media/32aed4_0e94070bbc9d4a62a80bff2f77cac8cf~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_0e94070bbc9d4a62a80bff2f77cac8cf~mv2.png)
追加したプロバイダをクリックします。(ここではYubiOnPortal)
![](https://static.wixstatic.com/media/32aed4_acffbc233af34c61a8ad484cbfdc4bb7~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_acffbc233af34c61a8ad484cbfdc4bb7~mv2.png)
プロバイダのARN情報をコピーし、テキストエディタに貼り付けておきます。
※後のYubiOn Portal側の設定で使用します。
![](https://static.wixstatic.com/media/32aed4_3a77c5fa52ba4f7fa83a5809b7cb612b~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_3a77c5fa52ba4f7fa83a5809b7cb612b~mv2.png)
次に、AWSにログインするためのロールを設定します。
※AWSのSAMLを利用したSSOでは、各ユーザーを用意するのではなく、ある権限をもったロールを指定してログインするイメージです。
画面左側の「ロール」をクリックします。
![](https://static.wixstatic.com/media/32aed4_303c8e73ce124cb48349feea26af3a14~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_303c8e73ce124cb48349feea26af3a14~mv2.png)
「ロールを作成」ボタンをクリックします。
![](https://static.wixstatic.com/media/32aed4_46972514e7fb4c1c9e3736572cbdcb6e~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_46972514e7fb4c1c9e3736572cbdcb6e~mv2.png)
下記を設定します。
信頼されたエンティティタイプ: SAML2.0フェデレーション
SAML2.0プロバイダー: 作成したプロバイダを選択 (ここではYubiOn Portal)
アクセスレベル ここでは管理コンソールアクセス時のSSOを設定するため、「プログラムによるアクセスとAWSマネジメントコンソールによるアクセスを許可する」を選択します。 ※条件 必要に応じて条件を追加してください。ここでは特に設定しません。
最後に「次へ」ボタンをクリックします。
![](https://static.wixstatic.com/media/32aed4_649fea1598cf40cf8f8ae3427bab7894~mv2.png/v1/fill/w_49,h_20,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_649fea1598cf40cf8f8ae3427bab7894~mv2.png)
![](https://static.wixstatic.com/media/32aed4_31678cce67f3486297c87762d5301349~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_31678cce67f3486297c87762d5301349~mv2.png)
最後の画面で下記の設定をします。
ロール名: わかりやすいロール名を入力します。
説明: ロールの説明を入力します。
信頼されたエンティティを選択する: 必要であれば修正します。
許可を追加する: 必要であれば追加します。
タグを追加: 必要であれば追加します。
最後に「ロールを作成」ボタンをクリックします。
![](https://static.wixstatic.com/media/32aed4_05771ed5cb054184821b112b6f5c10ae~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_05771ed5cb054184821b112b6f5c10ae~mv2.png)
![](https://static.wixstatic.com/media/32aed4_17d8341c8b214f28afafd19601cc4659~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_17d8341c8b214f28afafd19601cc4659~mv2.png)
作成したロールを選択します。
![](https://static.wixstatic.com/media/32aed4_c2a4eb5ebb644728b9053f1a1e3f9ed8~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_c2a4eb5ebb644728b9053f1a1e3f9ed8~mv2.png)
ロールのARN情報をコピーし、テキストエディタに貼り付けておきます。
※後のYubiOn Portal側の設定で使用します。
![](https://static.wixstatic.com/media/32aed4_99bec1d14c9844bdbd56ca9662504bc5~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_99bec1d14c9844bdbd56ca9662504bc5~mv2.png)
最後にAWS (SP)側のメタデータを下記URLからダウンロードしておきます。
AWS側の操作は以上です。
次にYubiOn Portal側の設定に移ります。
YubiOn Portalの「SSO App設定」画面に戻り、AWS (SP)メタデータを取り込みます。
「SPメタデータアップロード」タブをクリックします。
![](https://static.wixstatic.com/media/32aed4_cc9b7e2f40234a44889226996cf3923e~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_cc9b7e2f40234a44889226996cf3923e~mv2.png)
SPメタデータアップロードから、AWS (SP)側のメタデータをアップロードします。
![](https://static.wixstatic.com/media/32aed4_03ad776cb9574c5780ba5604453df6ae~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_03ad776cb9574c5780ba5604453df6ae~mv2.png)
確認モーダルが表示されるので、「アップロード」ボタンからアップロードします。
![](https://static.wixstatic.com/media/32aed4_3cd437df153f40589a593500e7470a97~mv2.png/v1/fill/w_49,h_23,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_3cd437df153f40589a593500e7470a97~mv2.png)
次に、AWSのSSO設定に最低必要なアトリビュートを設定します。
【必須項目は以下】
Role: ロールARNとプロバイダARNをカンマ区切りで指定します。
RoleSessionName: 名前やメールアドレスなどのログインしているアカウントを表すもの。
画面左下の「アトリビュート設定」タブをクリックします。
![](https://static.wixstatic.com/media/32aed4_4fdfd79954ad49d0903e9d057f92124e~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_4fdfd79954ad49d0903e9d057f92124e~mv2.png)
AWSのロールを指定するため「Role」アトリビュートを設定します。
テンプレートアトリビュートの「Role」右側にある「編集」アイコンをクリックします。
![](https://static.wixstatic.com/media/32aed4_91aa947fa7eb4c1581705ab7e2793633~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_91aa947fa7eb4c1581705ab7e2793633~mv2.png)
アトリビュート値に下記を設定します。
設定方法: 「直接入力」を選択します。
設定値: AWS側の設定で控えていたロールのARNとプロバイダのARNをカンマ区切りで入力します。 設定値の入力例) 「ロールのARN,プロバイダのARN」
最後に「更新」ボタンをクリックし、情報を更新します。
![](https://static.wixstatic.com/media/32aed4_d6a91f32bdbe43d481c26c23145e6d22~mv2.png/v1/fill/w_49,h_30,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_d6a91f32bdbe43d481c26c23145e6d22~mv2.png)
次に、AWSログイン後に表示される「RoleSessionName」アトリビュートの設定を行います。
「RoleSessionName」右側の「編集」アイコンをクリックします。
![](https://static.wixstatic.com/media/32aed4_8550a626083e42779fbc99bf7ff13bf1~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_8550a626083e42779fbc99bf7ff13bf1~mv2.png)
下記のアトリビュート値を設定します。
※本記事ではメンバー名を設定する手順で説明します。
設定方法: 「メンバー情報」を選択します。
設定値: 「メンバー名」を選択します。
最後に「更新」ボタンをクリックし、情報を更新します。
![](https://static.wixstatic.com/media/32aed4_6dc9169f93ef473796010088d3eff96e~mv2.png/v1/fill/w_49,h_28,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_6dc9169f93ef473796010088d3eff96e~mv2.png)
アトリビュートの設定は以上です。
引き続き、AWSにアクセスできるメンバーを設定します。
※グループ機能を使用してグループに所属するメンバーを一括で割り当てる方法もありますが、ここではメンバー個別の割り当て方法で説明します (グループ機能は有料の機能です)
画面右下の「メンバー割当」をクリックします。
![](https://static.wixstatic.com/media/32aed4_dd272faf37d148b0b651c8446e6527b0~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_dd272faf37d148b0b651c8446e6527b0~mv2.png)
割り当てたいメンバーを選択し、「登録」ボタンから登録します。
![](https://static.wixstatic.com/media/32aed4_6342840f85d04abeb40b976ca259f91d~mv2.png/v1/fill/w_49,h_27,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_6342840f85d04abeb40b976ca259f91d~mv2.png)
以上でSSOの設定は完了です。
実際にYubiOn Portal SSOを利用してAWSにログインしてみましょう。
サイドメニューの「SSO」アイコンをクリックし、「SSO Appログイン」にアクセスします。
![](https://static.wixstatic.com/media/32aed4_27fe6935cba046a59e3514f53e5765c3~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_27fe6935cba046a59e3514f53e5765c3~mv2.png)
「AWS Management Console」をクリックします。
![](https://static.wixstatic.com/media/32aed4_49deb2b948c5430ab268d09b9325b12b~mv2.png/v1/fill/w_49,h_22,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_49deb2b948c5430ab268d09b9325b12b~mv2.png)
AWSの管理コンソールにログインできました。
![](https://static.wixstatic.com/media/32aed4_5479216fcb0f4d2f801a8e82d76ec1ec~mv2.png/v1/fill/w_49,h_20,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/32aed4_5479216fcb0f4d2f801a8e82d76ec1ec~mv2.png)
最後に
AWSの運用に合わせたロールを作成し、YubiOn Portal側でアクセス設定を行うだけで簡単にSSOを実現することができます。AWSに個々のユーザーを用意する必要はないので、管理も楽になると思います。SSO有料版に切り替えたい場合はお問い合わせフォームよりお問い合わせください。