Amazon Web Services ブログ

Okta Universal Directory と AWS 間のシングルサインオン



AWS クラウドを採用している企業は、ID を効果的に管理したいと考えています。ID を一元的に管理することで、ポリシーの適用、アクセス許可の管理が容易になり、複数の ID サイロ間でユーザーとユーザー許可をレプリケートする必要がなくなるため、オーバーヘッドを削減できます。一意の ID を使用すると、ユーザーである私たち全員のアクセスも簡素化されます。私たちは皆、複数のシステムにアクセスできます。また、複数のパスワードを覚えておくのに苦労しています。ユーザー名とパスワードの単一の組み合わせを使用して複数のシステムに接続できれば、日々のセキュリティと生産性が向上します。あるシステムの ID を別の信頼できるシステムで管理されている ID にリンクできることを「ID フェデレーション」といいます。これは、シングルサインオンのサブセットです。ID フェデレーションは、セキュリティアサーションマークアップランゲージ (SAML)、OAuthOpenID などの業界標準のおかげで可能になりました。

最近、AWS Single Sign-On が進化したことを発表しました。これにより、AWS ID を Azure Active Directory ID とリンクできるようになりました。進化はそこで止まりませんでした。今日、AWS Single Sign-OnOkta Universal Directory の統合を発表します。

この記事では、システム管理者向けのエクスペリエンスを紹介してから、ユーザー向けのシングルサインオンエクスペリエンスをご紹介します。

まず、私がすでに Okta Universal Directory を使って従業員 ID を管理している企業の管理者であるとします。次に、ユーザーのために、その既存の ID を使用して、AWS 環境へシンプルで難なくアクセスできるようにしたいと考えています。ほとんどの企業と同じように、私は複数の AWS アカウントを管理しています。シングルサインオンソリューションだけでなく、AWS アカウントへのアクセスを一元管理したいと考えています。Okta グループとユーザーメンバーシップを手動で複製したり、複数の ID システム (Okta Universal Directory と、管理している AWS アカウントごとに 1 つ) を維持したりしたくはありません。Okta と AWS 間の自動ユーザー同期を有効にしたいと思います。ユーザーは、Okta ですでに慣れているエクスペリエンスを使用して AWS 環境にサインインします。

Okta を AWS Single Sign-On の ID ソースとして接続する
最初のステップは、Okta ユーザーが接続できる「アプリケーション」として AWS Single Sign-On を追加することです。Okta マネジメントコンソールに移動し、Okta 管理者の資格情報でログインしてから、[Applications] タブに移動します。

Okta マネジメントコンソール緑色の [Add Application] ボタンをクリックして、AWS SSO アプリケーションを検索します。[Add] をクリックします。

Okta add applicationアプリに名前を入力し (好きな名前を選択できます)、[Done] をクリックします。

次の画面で、AWS Single Sign-On と Okta の間の相互合意を設定します。まず、青いリンクの [Identity Provider Metadata] をクリックして、Okta によって生成された SAML メタデータファイルをダウンロードします。後で、シングルサインオンの AWS 側を設定するのに必要になるため、このファイルを保持します。

Okta ID プロバイダーメタデータ

メタデータファイルを取得したので、新しいタブで AWS マネジメントコンソールを開きます。手順はまだ完了していないので、Okta のタブは開いたままにしておきます。[ AWS Single Sign-On] に移動し、[AWS SSO を有効にする] をクリックします。

ナビゲーションパネルで [設定] をクリックします。まず、[変更] リンクをクリックし、オプションのリストから [外部 ID プロバイダー] を選択して、ID ソースを設定します。次に、[ID プロバイダーのメタデータ] セクションで Okta からダウンロードした XML ファイルを参照して選択します。

SSO メタデータの設定

[次へ: 確認] をクリックし、表示されたフィールドに「 CONFIRM」と入力し、最後に [ID ソースを変更] をクリックしてプロセスの AWS Single Sign-On 側の設定を完了します。AWS SSO ACS URL と AWS SSO 発行者 URL の 2 つの値をメモします。Okta コンソール でこれらの値を入力する必要があるからです。

AWS SSO Save URLOkta コンソールに開いたままのタブに戻り、AWS SSO ACS URLAWS SSO Issuer URL の値をコピーします。

OKTA ACS URL[保存] をクリックして設定を完了します

自動プロビジョニングの設定
これで、ユーザーが AWS Single Sign-On を使用して接続するように、Okta をシングルサインオン用に設定したので、次はユーザーアカウントの自動プロビジョニングを有効にします。新しいアカウントが Okta に追加され、AWS SSO アプリケーションに割り当てられると、対応する AWS Single Sign-On ユーザーが自動的に作成されます。管理者として、AWS で対応するアカウントを設定して Okta ユーザーにマッピングする作業を行う必要はありません。

AWS Single Sign-On コンソールから [設定] に移動し、[ID 同期を有効にする] リンクをクリックします。これにより、SCIM エンドポイントと OAuth ベアラーアクセストークン (デフォルトでは非表示) の値を含むダイアログが開きます。Okta アプリケーションの設定でこれらの値の両方を使用する必要があります。

AWS SSO SCIMOkta コンソールで開いているタブに戻り、AWS SSO アプリケーションの下の [Provisioning] タブをクリックします。[Enable API Integration] を選択します。次に、値 Base URL ( AWS Single Sign-On コンソール SCIM エンドポイント でコピーした値) と API Token ( AWS Single Sign-On コンソール アクセストークン) をコピーして貼り付けます。

Okta API 統合[Test API Credentials] をクリックして、すべてが期待どおりに機能することを確認します。次に [To App] をクリックして、ユーザーの作成、更新、非アクティブ化を有効にします。

アプリへの Okta プロビジョニング

プロビジョニングを有効になったところで、最後のタスクは、同期するユーザーとグループを Okta から AWS Single Sign-On に割り当てることです。[Assignments] タブをクリックして、Okta のユーザーとグループを追加します。[Assign] をクリックし、AWS へのアクセスを許可する Okta ユーザーとグループを選択します。

OKTA Assignmentsユーザーは AWS Single Sign-On に同期され、AWS Single Sign-On アプリケーションが Okta ポータルに表示されるようになります。

Okta Portal User Viewユーザーの同期が機能していることを確認するには、AWS Single Sign-On コンソールに切り替えて、[ユーザー] タブを選択します。Okta コンソールで割り当てたユーザーが表示されています。

AWS SSO User View

シングルサインオンを設定しました、次は?
現在、Okta はユーザー ID とグループへの割り当ての唯一の信頼できるソースで、定期的な同期により、AWS Single Sign-On に対応する ID が自動的に作成されます。ユーザーは、Okta の認証情報を使って AWS アカウントとアプリケーションにサインインします。他にユーザー名やパスワードを覚える必要はありません。ただし、現状ではユーザーはサインインのアクセス権しか持っていません。AWS にサインインした後にアクセスできるものに関してアクセス許可を管理するには、AWS Single Sign-On でアクセス許可を設定する必要があります。

AWS SSO コンソールに戻り、左側のタブバーで [AWS アカウント] をクリックして、AWS Organizations からアクセス権を与えるアカウントを選択します。複数のアプリケーションまたは環境に複数のアカウントがある企業の場合、これにより、AWS アカウントのサブセットへのアクセス権を細かく与えることができます。

AWS SSO Select AWS Account[ユーザーの割り当て] をクリックして、SSO ユーザーまたはグループを一連の IAM アクセス許可に割り当てます。この例では、@ example.com のメールアドレスを持つユーザーを 1 人だけ割り当てます。

Assign SSO Users[次へ: アクセス許可セット]、[新しいアクセス許可セットを作成] の順にクリックして、IAM ポリシーのセットを作成します。これにより、Okta ユーザーに付与するアクセス許可のセットを記述します。この例では、すべての AWS のサービスに読み取り専用のアクセス許可を付与しています。SSO アクセス許可セットこれで、このセットアップをテストする準備ができました。

コンソールの SSO ユーザーエクスペリエンス
統合を設定するためにシステム管理者が実行する手順を説明したので、ユーザーエクスペリエンスはどうかをお見せします。

AWS アカウントユーザーとして、Okta にサインインして、 AWS マネジメントコンソールにアクセスできます。AWS Single Sign-On ユーザーポータルから開始できます (URL は AWS Single Sign-On 設定ページにあります)。 または、Okta ユーザーポータルページから、AWS SSO アプリを選択して開始することもできます。

ここでは、AWS SSO ユーザーポータルから開始することにします。Okta のログインページにリダイレクトされます。Okta の認証情報を入力し、AWS アカウントとロールの選択ページに移動します。AWS アカウントをクリックし、ログインするアカウントを選択して、マネジメントコンソールをクリックします。いくつかの追加リダイレクトの後、私は AWS コンソールページに移動します。

SSO ユーザーエクスペリエンス

CLI の SSO ユーザーエクスペリエンス
システム管理者、DevOps エンジニア、開発者、および自動化スクリプトは AWS コンソールを使用しない代わりに、AWS コマンドラインインターフェイス (CLI) を使用します。コマンドラインのための SSO を設定するには、ターミナルを開いて、「aws configure sso」と入力します。AWS SSO ユーザーポータルの URL とリージョンを入力します。

$aws configure sso
SSO start URL [None]: https://d-0123456789.awsapps.com/start
SSO Region [None]: eu-west-1
Attempting to automatically open the SSO authorization page in your default browser.
Attempting to automatically open the SSO authorization page in your default browser.

https://device.sso.eu-west-1.amazonaws.com/

Then enter the code:

AAAA-BBBB

この段階で、デフォルトのブラウザがポップアップし、Okta のログインページで Okta の認証情報を入力します。CLI で SSO を有効にすることを確認します。

SSO for the CLIそして次のメッセージが表示されたらブラウザを閉じます。

AWS SSO CLI ブラウザを閉じるメッセージ

CLI は自動的に設定を再開します。デフォルトのリージョン、デフォルトの出力形式、および使用する CLI プロファイルの名前を入力します。

The only AWS account available to you is: 012345678901
Using the account ID 012345678901
The only role available to you is: ViewOnlyAccess
Using the role name "ViewOnlyAccess"
CLI default client Region [eu-west-1]:
CLI default output format [None]:
CLI profile name [okta]:

To use this profile, specify the profile name using --profile, as shown:

aws s3 ls --profile okta

これで、SSO で CLI を使用する準備ができました。端末で、次のように入力します。

aws --profile okta s3 ls
2020-05-04 23:14:49 do-not-delete-gatedgarden-audit-012345678901
2015-09-24 16:46:30 elasticbeanstalk-eu-west-1-012345678901
2015-06-11 08:23:17 elasticbeanstalk-us-west-2-012345678901

CLI SSO を設定するマシンにグラフィカルユーザーインターフェイスがない場合は、CLI が提供する URL およびコードを使用して、ヘッドレスモードで SSO を設定できます (上記の例では、https://device.sso.eu-west-1.amazonaws.com/ および AAAA-BBBB)。

この記事では、新しい AWS Single Sign-On 機能を利用して、ユーザーシングルサインオンのために Okta ID を AWS アカウントにリンクする方法を示しました。また、自動プロビジョニングサポートを利用して、ID を管理および使用する際の複雑さを軽減しました。管理者はユーザーの管理で信頼できる唯一のソースを使用できるようになり、ユーザーは AWS アカウントとアプリケーションにサインインするために追加の ID とパスワードを管理する必要がなくなりました。

AWS Single Sign-On と Okta は無料で使用でき、 AWS Single Sign-On が利用できるすべてのリージョンでご利用いただけます。完全なリストはこちらです。

操作を動画で確認するには、次のデモ動画で、開始方法の詳細をご確認ください。

— seb