本記事では、AWS Organizations によりアカウント管理をしている方を対象としたSAML連携設定手順をご紹介します。AWS SSOの設定を行うにはAWS Organizationsの組織作成及びアカウント追加が必要です。
本記事では、OneLogin から AWS IAM Identity Center へのSAML シングルサインオン(SSO)およびユーザープロビジョニングの設定手順をご案内します。OneLoginとAWSのSAML連携は、環境に応じて4つのシナリオが想定されます。どの方法を選択すべきかご不明な場合は、AWSのSAML連携を始める前に をご参照ください。
目次
前提条件
- OneLoginのライセンスプラン が Professional または旧ライセンスプラン Unlimited のいずれかであること
- OneLoginの Super User または Account Owner 権限を持つアカウントを所有していること
- AWS Organizations - 事前準備 の アカウントをOrganizationsに追加する までが完了していること
- AWS Organizationsの管理アカウント(旧マスターアカウント)におけるルートユーザーをお持ちであること
SAML連携の設定
1. OneLogin側の操作
- OneLoginに管理者でログインし、[管理]をクリックします
-
Applications メニューから[Applications]を選択します
- [Add App]をクリックします
-
AWS Single Sign-on と検索し、該当コネクタを選択します
- [Save]をクリックします
- More Actions > SAML Metadata を選択します
2. AWS側の設定(前半)
- AWS側の管理アカウント(旧マスターアカウント)にログインします
-
IAM Identity Center (Single Sign-Onの後継サービス) を選択します
- IAM Identity Center を有効化 >[有効にする]をクリックします
-
アイデンティティソースを選択 をクリックします
- アクション > アイデンティティソースを変更 を選択します
-
外部 ID プロバイダー を選択し、[次へ]をクリックします
- [ファイルを選択]をクリックし、1. OneLogin側の操作 で取得した
onelogin_metadata_xxxxxxx.xmlを選択します
- メタデータファイルがアップロードされたことを確認し、[次へ]をクリックします
- 画面の指示に従い文字を入力し、[アイデンティティソースを変更]をクリックします
- 設定 > 自動プロビジョニング >[有効にする]をクリックします
- アクセストークン > [トークンを表示]をクリックします
-
SCIM エンドポイント と アクセストークン をクリップボードへコピーし、[閉じる]をクリックします
- アクション > 認証の管理 を選択します
-
IAM Identity Center Assertion Consumer Service(ACS)のURL と IAM Identity Center の発行者 URL をクリップボードへコピーします
3. OneLogin側の設定
-
Configuration タブに移動し、2. AWS側の設定(前半)で取得した内容を以下の通りに設定します
項目 入力値 AWS SSO issuer URL 手順2.14 にてコピーした
IAM Identity Center の発行者 URLAWS SSO ACS URL 手順2.14 にてコピーした IAM Identity Center Assertion Consumer Service(ACS)のURL SCIM Base URL 手順2.12 にてコピーした SCIM エンドポイント SCIM Bearer Token 手順2.12 にてコピーした アクセストークン
-
API Connection >[Enable]をクリックします
-
Enabled と表示されたことを確認し、[Save]をクリックします
-
SSO タブに移動し、SAML Signature Algorithm を SHA-265 に変更します
-
Access タブに移動し、割り当てたいユーザーが属するロールを選択します
-
Provisioning タブに移動し、Enable provisioning にチェックを入れます
-
Require admin approval before this action is performed のチェックを全て外し、[Save]をクリックします
- More Actions > Reapply entitlement mappings を選択します
- [OK]をクリックし、ページを再読みします
-
Users タブに移動し、Provisioning State が Provisioned に変更されたことを確認します
- ユーザーが作成されていることを確認します
グループのプロビジョニング
複数のユーザーをまとめてグループとして扱うことで、アクセス許可セットの設定を簡易化することができます。本章では、プロビジョニングによりAWS側にグループを作成し、ユーザーを追加する方法をご紹介します。
ここでは例として、AWS上にdevelopment,sales 2つのグループをプロビジョニングにより作成し、developmentに田中 太郎, salesに 山田 花子を追加します。※なお、グループ名は日本語・半角英数字どちらにも対応しています
- OneLoginで、AWS_{AWS上に作成したいグループの名前}というロールを作成します。今回は development, sales の2グループを作成するため、作成するロールはAWS_development,AWS_salesとなります
- 手順1で作成したロールにユーザーを割り当てます。今回は、田中 太郎に AWS_development、山田 花子にAWS_salesを割り当てます
-
Applicationsタブ > 作成したコネクタ に移動し、手順1で作成したAWS_development, AWS_sales ロールが割りあたっていることを確認します。
-
Parametersタブ > Optional ParametersでGroupsがDisabledになっていることを確認し、
[Disabled]をクリックします
- プロビジョニングにおいてGroupをParameterとして使用するためにInclude in User Provisioningにチェックを入れ、[Save]します
- Groups が Enabled になっていることを確認します
-
Rules タブ に移動し、[Add Rule]をクリックします
-
New mappingというポップアップが表示されますので、各項目を設定します
Name にて、Ruleの名前を設定します(例:AWS_groups)
-
Conditionsを設定します
Conditions : Ruleを割り当てるユーザーの設定で、今回の場合は何も設定しません
*Conditionsを設定しない場合はAccess権が付与された全ユーザーにRuleが適用されます。
-
Actionsを設定します
Actionsでは、Conditionsで割り当てられたユーザーに対して行う処理を設定します。今回はGroupsを対象とするため、Set Groups in AWS Single SIgn-on を選択します
-
Map from OneLogin にチェックを入れます。
From Existing: AWS 側に存在するGroupにユーザーを作成します
Map from OneLogin: 新たにGroup 及びユーザーを作成します
-
For each 以降は、Conditionsで割り当てられたユーザーのどの要素に基づいてグループを作成するかを設定します
今回はロールを使用するので、roleを選択します
-
matches 以降は、正規表現を使用して作成するAWS側のグループ名を設定します。
今回は、ロール名の AWS_ 以降(development,sales)をグループ名とするので、AWS_([^,]+)と指定し、[Update]をクリックします
*AWS_([^,]+) と記入することにより、Conditionsで指定した2つのロール(AWS_development, AWS_sales)の、development, salesという部分を取り出しています。
- Ruleが作成されたことを確認し、[Save]をクリックします
- More Actions > Reapply entitlement mappings を選択します
- [OK]をクリックします
- ルートアカウントとしてAWSの管理アカウント(旧マスターアカウント)にログインし、IAM Identity Center > グループ にてグループが作成されます
- グループにユーザーが所属されていれば完了です
例)sales グループに山田 花子 さんが所属している
4. AWS側の設定(後半)
1. アクセス許可セットの作成
- AWS側 の管理アカウント(旧マスターアカウント)にログインします
-
IAM Identity Center (Single Sign-Onの後継サービス) を選択します
- マルチアカウント許可 > [許可セット]を選択します
- [許可セットを作成]をクリックします
- 許可セットタイプを選択します
例)事前定義された許可セット
- ポリシーを選択し、[次へ]をクリックします
権限の詳細については、AWSサポートへお問い合わせください
例)AdministratorAccess
- 許可セット名を入力し、許可セットの詳細を設定した後[次へ]をクリックします
- [作成]をクリックします
-
許可セットが正常に作成されました と表示されれば完了です
2. 作成したアクセス許可セットの割り当て
- マルチアカウント許可 > AWS アカウント を選択します
- アクセスを許可するアカウントにチェックを入れ、[ユーザーまたはグループを割り当て]をクリックします
例)Developper_Account
- アクセス権を割り当てる単位を選択します
例)グループ
- 対象とするグループあるいはユーザーにチェックを入れ、[次へ]をクリックします
例)development グループを割り当てる
- 割り当てる許可セットを選択し、[次へ]をクリックします
- 内容を確認し、[送信]をクリックします
-
AWS アカウントが正常に再プロビジョニングされ、更新された許可セットがアカウントに適用されました。 と表示されれば完了です
SAML連携の設定は以上です。
SAML SSOの動作確認
- OneLoginに対象ユーザーでログインし、設定した AWS Single Sign-on を選択します
- アクセスするアカウントをクリックします
- 権限を確認し、[Management console]をクリックします
- SAML認証が完了し、AWS IAM Identity CenterにSSOされることを確認します
SAML SSOの動作確認は以上です。
SAML SSOの無効化
- IAM Identity Centerに管理者でSSOし、アイデンティティソースを選択 をクリックします
- アクション > アイデンティティソースを変更 を選択します
-
Identity Center ディレクトリ を選択します
SAML SSOの無効化は以上です。