IDaaSのOneLoginでAWSアカウントにシングルサインオンする

2015.07.07

ども、大瀧です。 AWSのユーザー管理、皆さんどうしていますか?扱うアカウントが増えてくると、アカウントごとにユーザーやパスワード、権限を管理するのが手間になってくると思います。 そこで今回はIDaaS(ID as a Service)のOneLoginをAWSと連携させ、シングルサインオンを試してみたいと思います。

1. OneLoginのサインアップ

OneLoginは、様々なWebサービスと連携する認証プロバイダとしての機能を持つサービスです。AWSとの連携機能もあり、AWSユーザー向けの無償プランが用意されているので、今回はこちらを利用してみます。

onelogin00

下記ページ右下のフォームに記入し、[START USING ONELOGIN]ボタンをクリックしてアカウントを作成します。

AWS Single Sign On (SSO) - Amazon AWS Active Directory Integration - LDAP - SAML

onelogin01

2. OneLoginの初期セットアップ

続いて、アカウントのセットアップウィザードが表示されます。まずはパスワードを入力し、[SAVE]をクリックします。

onelogin02

ウィザードの画面をサブドメイン設定に切り替えます。

onelogin03

OneLoginのログインURLに利用する、一意なサブドメインを設定します。

onelogin04

設定したサブドメインから成る[Example URL]が、OneLoginのログインURLになるので控えておきましょう。

画面左上のロゴをクリックしてウィザードを進め、ユーザーのインポート画面を表示します。OneLoginにはActive Directoryと連携しユーザーを同期する機能がありますが、今回はお試しなので手動でユーザーを定義して動作を確認してみます。[ADD USERS MANUALLY]をクリックします。

onelogin05_2

[First Name]、[Last Name]、[Email] (Emailがログイン名になります)をそれぞれ適当に入力し、[SAVE]でユーザーを作成します。

onelogin06

右上の[MORE ACTIONS] - [Change Password]でパスワードを設定しておきましょう。

画面左上のロゴをクリックしてウィザードを進め、アプリケーションの追加画面を表示します。

3. アプリケーションの追加

OneLoginでは連携するシステムをアプリケーションと呼び、今回のAWSもこれに含まれます。[ADD APPS]ボタンをクリックします。

onelogin07

上部の検索フォームに「aws」と入力すると幾つか候補が表示されるので、「Amazon Web Services(AWS)」をクリックします。 *1

onelogin08

特に変更する項目はないので、右上の[SAVE]をクリックしてアプリケーションを追加します。

onelogin09

4. AWS連携(SAML)設定

4-1. OneLoginのSAMLメタデータ生成

アプリケーション設定画面に遷移するので、[SSO]タブをクリックし[Issuer URL]のクリップボードのアイコンをクリックしてURLをクリップボードにコピーします。

onelogin10

Webブラウザの別タブないしウィンドウを開き、コピーしたURLにアクセスするとXMLファイル(SAMLメタデータドキュメント)がダウンロードされます。

onelogin11

4-2. AWSのSAMLプロバイダ追加

ここからはAWSのWeb管理画面(Management Console)で操作します。IAM(Identity and Access Management)管理画面を開き、[IDプロバイダ] - [プロバイダの作成]をクリックします。

onelogin12

プロバイダの追加画面では、[プロバイダーのタイプ]から[SAML]を選択、任意のプロバイダ名を入力し、[メタデータドキュメント]に、先ほどダウンロードした XMLファイルを選択します。

onelogin13

[次のステップ]、[作成]とクリックするとOneLoginがIDプロバイダとして登録されます。

4-2. AWSのIAMロール追加

続いてシングルサインオンしたユーザーに付与するIAMロールを定義します。IAM管理画面の左側のメニューから[ロール] - [新しいロールの作成]をクリックします。

onelogin14

任意のロール名(今回は「oneLogin」)を入力し[次のステップ]をクリック、ロールタイプの一覧の一番下、[IDプロバイダアクセス用のロール]のアコーディオンメニューを開き、[SAML プロバイダへのウェブシングルサインオン(WebSSO)アクセスを付与]の[選択]ボタンをクリックします。

onelogin15

SAMLプロバイダの選択画面では、先ほど作成した「oneLogin」が選択されていることを確認 *2し、[次のステップ]ボタンを2回クリックします。

onelogin16

ポリシーのアタッチでは、ロールに割り当てる任意の権限ポリシーを選択します。今回はReadOnlyAccessポリシーを割り当ててみます。リストの表示数がかなり多いので、検索フォームをうまく使いましょう。

onelogin17

[次のステップ]、[ロールの作成]とクリックすればロールが作成されます。ロールの一覧から作成したロールを選択します。

onelogin18

このあとのOneLogin側のロールの割り当てのために、ロールのARNをコピーしておきます。

onelogin19

また、SAMLプロバイダのARN(メニューのIDプロバイダからIDプロバイダを選択、プロバイダのARN)も控えておきます。

onelogin21

4-3. OneLoginのロール割り当て

OneLoginでのSSO時のパラメータを調整し、作成したIAMロールの割り当てを設定します。OneLoginのAWSアプリケーション設定画面に戻り、[Parameters]タブをクリックします。

onelogin20

各行をそれぞれクリックし、以下の通り設定します。

  • Amazon Username : Email
  • Role : [Macro]を選択し、<IAMロールのARN>,<SAMLプロバイダのARN>(カンマ区切り)を入力
  • RoleSessionName : Email

4-4. OneLoginユーザーのアプリケーション割り当て

最後に、作成したOneLoginユーザーからAWSアプリケーションの使用を許可します。OneLogin管理画面の上部のメニューから[USERS] - [All Users]を選択し、先ほど作成したユーザーをクリック、[Applications]タブの右端にある+をクリックします。

onelogin22

[Select Application]に「Amazon Web Services(AWS)」が選択されていることを確認し、[CONTINUE]ボタンをクリックします。

onelogin23

アプリケーション設定の編集画面になりますが、特に変更しないので、[CANCEL]ボタンをクリックして設定完了です。

onelogin24

動作確認

では、実際にOneLoginにログインし、AWSの管理画面にシングルサインオンできるか試してみましょう。 設定したOneLoginサブドメインのURLにアクセスし、作成したOneLoginユーザーのメールアドレス、パスワードでログインします。

onelogin25

ログインするとアプリけーしょん一覧にAmazon Web Servicesが表示されるので、クリックします。

onelogin26

AWSの管理画面が表示されました!

onelogin27

シングルサインオンが動作していますね!

まとめ

IDaaSのOneLoginをAWSのSAMLプロバイダとして設定し、シングルサインオンする様子を紹介しました。手順は多めでしたが、SAMLによって設定が簡略化されていて、Webブラウザ上の操作で完結するのは非常に手軽で良いと思います。AWSの複数アカウント管理や他のWebサービスとの統合認証のほか、OneLoginにはたくさんの機能があるので活用してみてください!

参考URL

脚注

  1. 候補には、任意のロールをAssumeRoleで割り当てるMulti Roleも表示されますが、今回は割愛します。
  2. 「するには」という項目は英語画面だと「SAML Provider」でした。日本語訳がおかしいですね。