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設定」にアクセスします。
「Appを選択して追加」ボタンをクリックします。
アプリケーション登録モーダルで「AWS Management Console」をクリックし、登録を行います。
登録が完了するとApp一覧に「AWS Management Console」が表示されます。
続いて「AWS Management Console」をクリックします。
AWS側のSSO設定で使用するYubiOn Portalのメタデータを「メタデータダウンロード」をクリックしてダウンロードします。
YubiOn Portal側のメタデータは次の「AWSの設定」に使用するため、任意の場所に保存しておきます。
2. AWS側の設定
シングルサインオンを利用するために、IDプロバイダの設定とロールの設定を行います。まずはYubiOn Portalのプロバイダを設定するため、AWSの管理コンソールにアクセスします。
画面上部の検索ボックスに「IAM」と入力し、サービス一覧から「IAM」を選択します。
画面左側の「IDプロバイダ」をクリックします。
「プロバイダを追加」ボタンをクリックします。
プロバイダの設定で下記を設定します。
プロバイダのタイプ: SAMLを選択します。
プロバイダ名: わかりやすい名前をつけます (例では、YubiOnPortal)
メタデータドキュメント: YubiOn Portalからダウンロードしたメタデータをアップロードします。
最後に「プロバイダを追加」ボタンからプロバイダを追加します。
追加したプロバイダをクリックします。(ここではYubiOnPortal)
プロバイダのARN情報をコピーし、テキストエディタに貼り付けておきます。
※後のYubiOn Portal側の設定で使用します。
次に、AWSにログインするためのロールを設定します。
※AWSのSAMLを利用したSSOでは、各ユーザーを用意するのではなく、ある権限をもったロールを指定してログインするイメージです。
画面左側の「ロール」をクリックします。
「ロールを作成」ボタンをクリックします。
下記を設定します。
信頼されたエンティティタイプ: SAML2.0フェデレーション
SAML2.0プロバイダー: 作成したプロバイダを選択 (ここではYubiOn Portal)
アクセスレベル ここでは管理コンソールアクセス時のSSOを設定するため、「プログラムによるアクセスとAWSマネジメントコンソールによるアクセスを許可する」を選択します。 ※条件 必要に応じて条件を追加してください。ここでは特に設定しません。
最後に「次へ」ボタンをクリックします。
最後の画面で下記の設定をします。
ロール名: わかりやすいロール名を入力します。
説明: ロールの説明を入力します。
信頼されたエンティティを選択する: 必要であれば修正します。
許可を追加する: 必要であれば追加します。
タグを追加: 必要であれば追加します。
最後に「ロールを作成」ボタンをクリックします。
作成したロールを選択します。
ロールのARN情報をコピーし、テキストエディタに貼り付けておきます。
※後のYubiOn Portal側の設定で使用します。
最後にAWS (SP)側のメタデータを下記URLからダウンロードしておきます。
AWS側の操作は以上です。
次にYubiOn Portal側の設定に移ります。
YubiOn Portalの「SSO App設定」画面に戻り、AWS (SP)メタデータを取り込みます。
「SPメタデータアップロード」タブをクリックします。
SPメタデータアップロードから、AWS (SP)側のメタデータをアップロードします。
確認モーダルが表示されるので、「アップロード」ボタンからアップロードします。
次に、AWSのSSO設定に最低必要なアトリビュートを設定します。
【必須項目は以下】
Role: ロールARNとプロバイダARNをカンマ区切りで指定します。
RoleSessionName: 名前やメールアドレスなどのログインしているアカウントを表すもの。
画面左下の「アトリビュート設定」タブをクリックします。
AWSのロールを指定するため「Role」アトリビュートを設定します。
テンプレートアトリビュートの「Role」右側にある「編集」アイコンをクリックします。
アトリビュート値に下記を設定します。
設定方法: 「直接入力」を選択します。
設定値: AWS側の設定で控えていたロールのARNとプロバイダのARNをカンマ区切りで入力します。 設定値の入力例) 「ロールのARN,プロバイダのARN」
最後に「更新」ボタンをクリックし、情報を更新します。
次に、AWSログイン後に表示される「RoleSessionName」アトリビュートの設定を行います。
「RoleSessionName」右側の「編集」アイコンをクリックします。
下記のアトリビュート値を設定します。
※本記事ではメンバー名を設定する手順で説明します。
設定方法: 「メンバー情報」を選択します。
設定値: 「メンバー名」を選択します。
最後に「更新」ボタンをクリックし、情報を更新します。
アトリビュートの設定は以上です。
引き続き、AWSにアクセスできるメンバーを設定します。
※グループ機能を使用してグループに所属するメンバーを一括で割り当てる方法もありますが、ここではメンバー個別の割り当て方法で説明します (グループ機能は有料の機能です)
画面右下の「メンバー割当」をクリックします。
割り当てたいメンバーを選択し、「登録」ボタンから登録します。
以上でSSOの設定は完了です。
実際にYubiOn Portal SSOを利用してAWSにログインしてみましょう。
サイドメニューの「SSO」アイコンをクリックし、「SSO Appログイン」にアクセスします。
「AWS Management Console」をクリックします。
AWSの管理コンソールにログインできました。
最後に
AWSの運用に合わせたロールを作成し、YubiOn Portal側でアクセス設定を行うだけで簡単にSSOを実現することができます。AWSに個々のユーザーを用意する必要はないので、管理も楽になると思います。SSO有料版に切り替えたい場合はお問い合わせフォームよりお問い合わせください。