🐪

Azureアカウントを新規に作ってAWSアカウントのSSOログイン(IdP)用設定してみた

2024/11/23に公開

AWSアカウントにSSOでログインするため、IdP(Identity Provider)としてMicrosoft Entra ID(旧Azure AD)を利用することにしました。
この記事では、その際のAzureアカウントおよびEntraIDのセットアップ手順を紹介します。
AWS側の設定手順は別記事でご紹介します。
※↓(追記)公開しました
https://zenn.dev/shuk/articles/a3ff08cb2c8a13

Azure側セットアップ手順

1. Azureアカウントの作成

まずは、Azureポータル(https://portal.azure.com)にアクセスし、新規アカウントを作成します。すでにMicrosoftアカウントをお持ちの方は、そちらでログインすることもできます。

今回は新規アカウントを作成したいと思います。
※ちなみにGmailのメールエイリアスは使えませんでした..
ログインパスワードや生年月日などを入力し、無事初期画面が表示されました。

ツアーはスキップして設定を進めていこう!...と思ったのですが、先に進めようとすると下記のようなメッセージが出てアクセスできないといわれてしまいました。
選択されたユーザー アカウントは、テナント 'Microsoft Services' に存在しないため、 そのテナントのアプリケーション 'xxxx-xxxxx-xxxxx-xxxxx' に アクセスできません。

そこで再度Azureポータルにアクセスすると下記画面が表示されました。
よく考えたら最初のアカウント作成はあくまでMicrosoftアカウントを作成しただけで、Azureアカウントはまだ作成できてなかったということだったみたいです。先走ってしまいました...。

ということで、必要事項を記入してAzureアカウント作成を進めます。
クレジットカード情報を入力して、アグリーメントに同意したりして無事アカウント作成できました。
クイックスタートセンターという画面になりました。

2. 初期ドメインの確認

アカウント作成後、自動的に「{組織名}.onmicrosoft.com」というドメインが割り当てられます。検証用なので、このドメインをそのまま使用します。
ちなみにAzure ポータルでドメイン名を確認する手順は下記です。

  1. 左側メニューから「Microsoft Entra ID」を選択してEntra IDにアクセスします
  2. メニューの「概要」-「基本情報」セクションの「プライマリドメイン」に表示

3. AWS SSO連携の準備

AWSとSSO連携するための設定をおこないます。

3-1. グループとユーザーの作成

グループとユーザーの作成をおこないます。
まず、AWSにアクセスするためのグループを作成し、そこにユーザーを追加していきます。

3-1-1. グループ作成手順

  1. Azureポータルの左メニューから「Microsoft Entra ID」を選択
  2. 左メニューから「グループ」を選択
  3. 「新しいグループ」をクリック
  4. 以下情報を入力します。
  • グループの種類:セキュリティ
  • グループ名:AWS-Admins
  • グループの説明:AWS管理者用アクセスグループ
  • 所有者:(自分のアカウントを選択)
  • メンバー:(後でユーザーを追加するため、ここでは空のまま)
    <>br

3-1-2. ユーザーの作成手順

  1. 「Microsoft Entra ID」の左メニューから「ユーザー」を選択
  2. 「新しいユーザー」をクリック
  3. 「新しいユーザーの作成」を選択
  4. 基本情報の設定
  • ユーザープリンシパル名:awstest
  • 表示名:AWS Test User
  • パスワード:パスワード自動生成(チェックを入れる)
  • 有効なアカウント(チェックを入れる)
  1. プロパティの設定
  • 名:Test
  • 姓:User
  • ユーザーの種類:メンバー
  1. 割り当ての設定
  • 「グループの追加」で「AWS-Admins」を選択(先ほど作成したグループ)
  • 「ロールの追加」は不要
  1. 確認と作成
  • ユーザープリンシパル名もメモしておきます
  • 初期パスワードをメモしておきます
    ※この画面を閉じると二度と初期パスワードは表示されません
  • 「作成」をクリック
  1. グループのメンバーシップ確認
  • 「Microsoft Entra ID」の「グループ」メニューから「すべてのグループ」を選択し、「AWS-Admins」を選択
  • 「ユーザー」をクリック
  • 作成したユーザーが表示されていることを確認

3-1-3. 初回サインインとパスワード変更

  1. Chromeのシークレットウィンドウなどでhttps://portal.azure.com にアクセス
  2. 先ほど作成したユーザーアカウントでサインイン
  • ユーザー名:awstest@{テナント名}.onmicrosoft.com
  • パスワード:(保存しておいた初期パスワード)
  1. 初回サインイン時にパスワード変更を求められるので、新しいパスワードを設定:

これでAWS SSOで使用するユーザーの準備が整いました。このユーザーは後ほどAWS側の設定で使用します。

3-2. エンタープライズアプリケーションの設定

AWS SSOを構成するために、EntraIDにAWS用のアプリケーションを追加し、SAML認証の設定を行います。

3-2-1. AWS Single Sign-onアプリケーションの追加

  1. 「Microsoft Entra ID」の「エンタープライズアプリケーション」メニューを開く
  2. 「新しいアプリケーション」から、AWSを選択

  3. 「AWS Single-Account Access」を選択
  4. 「作成」をクリック

3-2-2. シングルサインオン設定

  1. 作成したアプリケーション画面に遷移するので、「シングルサインオン」を選択
  2. 「SAML」を選択

    「シングルサインオン設定の保存」の確認をするウィンドウが表示されるので「はい」を選択
  3. 「基本的なSAML構成」セクションの編集をクリック
  • 識別子(エンティティID):必須(https://signin.aws.amazon.com/saml)
  • 応答URL(アサーション コンシューマー サービス URL):
    https://signin.aws.amazon.com/saml
  • サインオンURL:空欄のまま
  • リレー状態:空欄のまま
  • ログアウトURL:空欄のまま
    「保存」をクリック(変更がない場合は×をクリック)
  1. 「属性とクレーム」セクションの編集をクリック
  • 「必要な要求」-「クレーム名」の一意のユーザー識別子(名前ID)を確認
    user.userprincipalname [nameid-format:emailAddress]
  • https://aws.amazon.com/SAML/Attributes/SessionDurationをクリック
    ソース属性を43200に変更
    ※セッション時間を12時間に設定
  • 保存をクリック
  1. 「SAML証明書」セクションの「証明書(Base64)」をダウンロードし、安全な場所に保存
  2. 「AWS Single-Account Access のセットアップ」セクションで以下の情報をメモしておく
  • ログインURL
  • Microsoft Entra識別子
    ※これらの情報はAWS側の設定で使用します
    ※「AWS Single-Account Access でシングル サインオンをTest」はAWS側を設定してから使用します

3-2-3. ユーザーとグループの割り当て

  1. 左メニューの「ユーザーとグループ」メニューを開く
  2. 「ユーザーまたはグループの追加」をクリック
    残念ながら、今のプランではグループの割り当てはできませんでした。。

    しょうがないので、一旦ユーザーを割り当てます。
  • ユーザーをクリックして、AWS Test Userにチェックを入れて「選択」をクリック
  • 「割り当て」をクリック
無料プランの制限事項について

Entra ID無料プランには以下の制限があるようです

  • グループベースのアプリケーションアクセス制御不可
  • カスタムロール作成不可
  • 条件付きアクセスポリシー設定不可

まとめ

AWSにSSO連携するための準備として、Azureアカウント新規作成、シングルサインオン設定を実施しました。
AWS側で設定するためには下記が必要となります。

  1. SAML証明書がダウンロードできていること
  2. Entra識別子とログインURLをメモしていること
  3. テストユーザーが正しく割り当てられていること

また、注意点としては下記となります

  • SAMLの設定値は後でAWS側の設定と合わせる必要があります
  • 証明書とアプリケーション情報は安全に保管してください
  • セッション時間(SessionDuration)は必要に応じて調整可能です
  • 本番環境では、セキュリティ要件に応じてより短いセッション時間を設定することを検討してください

Discussion