IDaaSのOneLoginでAWSアカウントにシングルサインオンする
ども、大瀧です。 AWSのユーザー管理、皆さんどうしていますか?扱うアカウントが増えてくると、アカウントごとにユーザーやパスワード、権限を管理するのが手間になってくると思います。 そこで今回はIDaaS(ID as a Service)のOneLoginをAWSと連携させ、シングルサインオンを試してみたいと思います。
1. OneLoginのサインアップ
OneLoginは、様々なWebサービスと連携する認証プロバイダとしての機能を持つサービスです。AWSとの連携機能もあり、AWSユーザー向けの無償プランが用意されているので、今回はこちらを利用してみます。
下記ページ右下のフォームに記入し、[START USING ONELOGIN]ボタンをクリックしてアカウントを作成します。
AWS Single Sign On (SSO) - Amazon AWS Active Directory Integration - LDAP - SAML
2. OneLoginの初期セットアップ
続いて、アカウントのセットアップウィザードが表示されます。まずはパスワードを入力し、[SAVE]をクリックします。
ウィザードの画面をサブドメイン設定に切り替えます。
OneLoginのログインURLに利用する、一意なサブドメインを設定します。
設定したサブドメインから成る[Example URL]が、OneLoginのログインURLになるので控えておきましょう。
画面左上のロゴをクリックしてウィザードを進め、ユーザーのインポート画面を表示します。OneLoginにはActive Directoryと連携しユーザーを同期する機能がありますが、今回はお試しなので手動でユーザーを定義して動作を確認してみます。[ADD USERS MANUALLY]をクリックします。
[First Name]、[Last Name]、[Email] (Emailがログイン名になります)をそれぞれ適当に入力し、[SAVE]でユーザーを作成します。
右上の[MORE ACTIONS] - [Change Password]でパスワードを設定しておきましょう。
画面左上のロゴをクリックしてウィザードを進め、アプリケーションの追加画面を表示します。
3. アプリケーションの追加
OneLoginでは連携するシステムをアプリケーションと呼び、今回のAWSもこれに含まれます。[ADD APPS]ボタンをクリックします。
上部の検索フォームに「aws」と入力すると幾つか候補が表示されるので、「Amazon Web Services(AWS)」をクリックします。 *1
特に変更する項目はないので、右上の[SAVE]をクリックしてアプリケーションを追加します。
4. AWS連携(SAML)設定
4-1. OneLoginのSAMLメタデータ生成
アプリケーション設定画面に遷移するので、[SSO]タブをクリックし[Issuer URL]のクリップボードのアイコンをクリックしてURLをクリップボードにコピーします。
Webブラウザの別タブないしウィンドウを開き、コピーしたURLにアクセスするとXMLファイル(SAMLメタデータドキュメント)がダウンロードされます。
4-2. AWSのSAMLプロバイダ追加
ここからはAWSのWeb管理画面(Management Console)で操作します。IAM(Identity and Access Management)管理画面を開き、[IDプロバイダ] - [プロバイダの作成]をクリックします。
プロバイダの追加画面では、[プロバイダーのタイプ]から[SAML]を選択、任意のプロバイダ名を入力し、[メタデータドキュメント]に、先ほどダウンロードした XMLファイルを選択します。
[次のステップ]、[作成]とクリックするとOneLoginがIDプロバイダとして登録されます。
4-2. AWSのIAMロール追加
続いてシングルサインオンしたユーザーに付与するIAMロールを定義します。IAM管理画面の左側のメニューから[ロール] - [新しいロールの作成]をクリックします。
任意のロール名(今回は「oneLogin」)を入力し[次のステップ]をクリック、ロールタイプの一覧の一番下、[IDプロバイダアクセス用のロール]のアコーディオンメニューを開き、[SAML プロバイダへのウェブシングルサインオン(WebSSO)アクセスを付与]の[選択]ボタンをクリックします。
SAMLプロバイダの選択画面では、先ほど作成した「oneLogin」が選択されていることを確認 *2し、[次のステップ]ボタンを2回クリックします。
ポリシーのアタッチでは、ロールに割り当てる任意の権限ポリシーを選択します。今回はReadOnlyAccessポリシーを割り当ててみます。リストの表示数がかなり多いので、検索フォームをうまく使いましょう。
[次のステップ]、[ロールの作成]とクリックすればロールが作成されます。ロールの一覧から作成したロールを選択します。
このあとのOneLogin側のロールの割り当てのために、ロールのARNをコピーしておきます。
また、SAMLプロバイダのARN(メニューのIDプロバイダからIDプロバイダを選択、プロバイダのARN)も控えておきます。
4-3. OneLoginのロール割り当て
OneLoginでのSSO時のパラメータを調整し、作成したIAMロールの割り当てを設定します。OneLoginのAWSアプリケーション設定画面に戻り、[Parameters]タブをクリックします。
各行をそれぞれクリックし、以下の通り設定します。
- Amazon Username : Email
- Role : [Macro]を選択し、<IAMロールのARN>,<SAMLプロバイダのARN>(カンマ区切り)を入力
- RoleSessionName : Email
4-4. OneLoginユーザーのアプリケーション割り当て
最後に、作成したOneLoginユーザーからAWSアプリケーションの使用を許可します。OneLogin管理画面の上部のメニューから[USERS] - [All Users]を選択し、先ほど作成したユーザーをクリック、[Applications]タブの右端にある+をクリックします。
[Select Application]に「Amazon Web Services(AWS)」が選択されていることを確認し、[CONTINUE]ボタンをクリックします。
アプリケーション設定の編集画面になりますが、特に変更しないので、[CANCEL]ボタンをクリックして設定完了です。
動作確認
では、実際にOneLoginにログインし、AWSの管理画面にシングルサインオンできるか試してみましょう。 設定したOneLoginサブドメインのURLにアクセスし、作成したOneLoginユーザーのメールアドレス、パスワードでログインします。
ログインするとアプリけーしょん一覧にAmazon Web Servicesが表示されるので、クリックします。
AWSの管理画面が表示されました!
シングルサインオンが動作していますね!
まとめ
IDaaSのOneLoginをAWSのSAMLプロバイダとして設定し、シングルサインオンする様子を紹介しました。手順は多めでしたが、SAMLによって設定が簡略化されていて、Webブラウザ上の操作で完結するのは非常に手軽で良いと思います。AWSの複数アカウント管理や他のWebサービスとの統合認証のほか、OneLoginにはたくさんの機能があるので活用してみてください!