OktaとAWS Single Sign-Onを連携してみた

OktaとAWS Single Sign-Onの連携をためしてみました。
2022.01.26

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

OktaとAWS Single Sign-Onの連携をためしてみました。

ユーザーの利用イメージ

OktaとAWS SSOの設定が完了し、ユーザーが利用するイメージを紹介します。OktaコンソールにAWS Single Sign-onアプリが表示されています。

アプリを選択すると、AWS SSOの画面に遷移します。キャプチャ中のAdministratorAccessとViewOnlyAccessは事前に設定しておいたアクセス権限セットです。それぞれ選択することで、AWSコンソールを開いたり、キーを表示できます。

AWS Single Sign-onアプリの追加

ここからは設定方法をご紹介します。Okta管理コンソール>Application>Applicationsから、Browse App Catalogを選びます。

AWS Single Sign-onで検索します。

アプリをAddします。

一般設定はそのままにDoneを選択します。

SSOアプリのSign Onタブ>Identity Provider metadataを右クリックし、metadataファイルをxml形式で保存します。

AWS SSOの有効化

AWS SSOコンソールを開き、「AWS SSO を有効にする」を選びます。設定からID ソースの変更を選びます。

IDソースを外部IDプロバイダーにします。

個々のメタデータ値を表示を選択し、AWS SSO サインイン URL、AWS SSO ACS URL、AWS SSO 発行者 URLをメモしておきます。

Oktaコンソールでダウンロードしていたメタデータファイルをアップロードします。ACCEPTを入力し、IDソースを変更します。

OktaコンソールのAWS SSOアプリのSign Onタブに、メモしておいたAWS SSO ACS URLとAWS SSO issuer URLを入力しSaveします。

AWS SSOでプロビジョニングを有効化

AWS SSOコンソールの設定から、自動プロビジョニングを有効化します。

SCIM エンドポイントとアクセストークンが表示されるので、メモしておきます。

Oktaでプロビジョニングを設定

OktaでAWS SSOアプリを選択し、Provisioningタブを選択しEnable API integrationを有効にします。Base URLにSCIM エンドポイントを、API Tokenにアクセストークンの値を入力します。注意点として、SCIM エンドポイントの末尾のスラッシュ(/)は削除した上で入力します。Test API Credentialsを選択し、成功することを確認してからSaveします。

Provisioning>To AppをEditし、Create Users、Update User Attributes、Deactivate UsersにチェックしSaveします。

Oktaのユーザーにアクセス件をアサイン

SSOアプリのAssignmentsから、Assign to Peopleを選びます。

Assignし、Saveします。

割り当てられました。Oktaでグループを作っておけば、グループ単位でのアサインも可能です。

AWS SSOでのユーザーアクセスのアサイン

AWS SSOコンソール>ユーザーに、Oktaのユーザーが連携されています。

AWS SSOコンソール>AWSアカウント>AWS組織から、AWSアカウントにチェックをいれ、ユーザーの割り当てを選択します。

ユーザーを選択し、アクセス権限セットと紐付けます。

今回はAdministratorAccessを指定します。実運用ではメンバーの役割ごとにアクセス権限セットを検討することになると思います。

ここまでで「ユーザーの利用イメージ」に記載した動作ができるようになります。

おわりに

OktaとAWS Single Sign-Onの連携を試してみました。AWS SSOを使わない方法も以前ブログにしました。AWSアカウント数が多い場合はOktaのアプリの設定が煩雑になるため、AWS SSO連携する方法が適しているかなという印象です。Oktaで設定したユーザー属性に応じて、アクセス権を設定することもできるようなのでまた試してみたいと思います。

参考