EntraIDをAWSのIdPとして利用して、シングルサインオンする
お仕事で部門のサーバー管理者・クラウド管理者になって気になったものを検証してみたシリーズだよ。EntraIDをAWSのIdPとして利用して、シングルサインオンするための手順をまとめたよ
必要なもの
EntraID(個人のアカウントでAzure契約すると、自動的にEntraIDが作成されるから、それを利用するのがお手軽)AWS
SSO の設定手順
SSOに必要となる手順をまとめていきます。
AWS:SSOのIdPを指定し、設定ファイルを取得するEntraID: Enterprise Applicationの登録EntraID:SSO(SAML連携) の設定EntraID: 連携するClaimの設定EntraID: AWSにログインを許可するユーザー・グループの指定EntraID: Federation設定用のファイルを取得するAWS: Federation設定y設定用のファイルの読み込みAWS: Automatic Provisioningの有効化EntraID: Provisioningの設定EntraID: Provisioningの実施AWS: Permission sets作成AWS: プロビジョニングされたユーザー・グループへの権限割り当て- 動作確認
AWS: SSOのIdPを指定し、設定ファイルを取得する
AWS側にログインし、IAM Identity Centerを開きます。[Settings]をクリックします。下部の[Identity source]をクリックし、右側の[Actions]から、[Change identity source]をクリックします。
IdPの種類として、External identity providerを選択し、[Next]ボタンをクリックします。

AWS側のIdPの設定をまとめたファイルをダウンロードします。図の[Download metadata file]をクリックし、ダウンロードします:

EntraID: Enterprise Applicationの登録
EntraIDにログインして、左側のペインから[Enterprise applications]をクリックします:

表示される画面で[New application]をクリックします。
検索用のテキストボックスに「aws iam」と入力し、表示された「AWS IAM Identity Center (successor to AWS Single Sign-On」をクリックします:

次の画面が表示されます。[Create]ボタンをクリックします:

EntraID: SSO (SAML連携) の設定
SAML連携の設定を行います。作成したAWS IAM Identity Centerをクリックし、左側のペインから[Single sign-on]をクリック、右側に表示されるSAMLをクリックします:
表示される画面でUpload metadata fileをクリックします:

AWSからダウンロードした設定ファイルをアップロードします:

EntraID: 連携するClaimの設定
以下のClaimを追加します:
| # | Type | Claim | Value |
|---|---|---|---|
| 1 | - | Role | user.assignedroles |
| 2 | Group | Security Group | Group ID |
Attributes & Claimsから、Add new claimをクリックします:

Security groupsを選択し、Group IDを選択します。その後、Saveボタンをクリックします:

EntraID: AWSにログインを許可するユーザー・グループの指定
左側のペインのUsers and groupsから、AWSにログインを許可させたいユーザー・グループを指定します:
EntraID: Federation設定用のファイルを取得する
AWS: Federation設定用のファイルの読み込み
EntraIDからダウンロードしたファイルを読み込ませます。先ほどメタデータをダウンロードしたページ下部のIdP SAML metadataのセクションにあるChoose fileをクリックし、EntraIDから取得したファイルをアップロードします:
ファイルを選択すると、次のようになります。Nextボタンをクリックします:

次の画面が表示されます。Change Identity sourceをクリックします:

AWS: Automatic Provisioningの有効化
この段階では、AWS側にアカウントが存在しないため、ログインできません。EntraID側で指定されたユーザー・グループを自動的にAWS側のアカウントとして追加するための設定を実施します。
以下の画面が表示されていると思いますので、Automatic ProvisioningでEnableボタンをクリックします:
EntraID側で指定してあげる必要があるSCIM endpointとAccess tokenが表示されます。メモしておきましょう:

EntraID: Provisioningの設定
EntraID側で必要となるアカウントプロビジョニングの設定を説明します。AWS IAM Identity Centerで表示される、Provision User Accountsをクリックします:
Provisioning ModeをAutomaticに指定します。

EntraID: Provisioningの実施
AWS IAM Identity CenterのProvisioningをクリックします:

しばらく経つと、以下のように表示され、プロビジョニングが完了したことがわかります:

AWS側のユーザーを見ると、プロビジョニングされていることがわかります:

AWS: Permission sets作成
AWSにプロビジョニングされたユーザーに対して、権限 (= Permission sets)を付与します。まずはPermission setsを作成していきます。今回はAdministrator Access用のPermission setsを作成していきます:
AWS: プロビジョニングされたユーザー・グループへの権限割り当て
IAM Identity Center - AWSOrganizations: AWS accountsをクリックします。紐付けたいAWSアカウントを選択し、Assign users or groupsボタンをクリックします:
紐付けるユーザーやグループを指定し、Nextボタンをクリックします:

紐づけるPermission setを指定し、Nextボタンをクリックします:

確認の画面が表示されます。Createボタンをクリックします:

動作確認
EntraIDに表示されるUser access URLをコピーし、ブラウザで接続してみます:
アカウント選択の画面が表示され、SSOが機能しているように見えます:


















