Microsoft Entra ID から Amazon Quick に SAML SSO ログインする手順

Microsoft Entra ID から Amazon Quick に SAML SSO ログインする手順

2026.05.27

こんにちは、こーへいです。

Amazon Quick を組織で導入する際、ユーザーに個別の AWS アカウントを発行せず、既存の ID 基盤でログインさせたいケースは多いと思います。本記事では Microsoft Entra ID(旧 Azure AD)を使って Quick に SSO ログインする手順を紹介します。

今回はIAM Identity Centerを使用せず、直接連携する方法です。

SSO・SAML をざっくり解説

SSO(シングルサインオン)とは

一度の認証で複数のサービスにアクセスできる仕組みのことです。それを実現する具体的な技術として SAML や OIDC があります。

フェデレーション(認証連携)とは

異なる組織・サービス間で認証情報を信頼し合う仕組みです。

通常、サービスごとにユーザー ID とパスワードを管理しますが、フェデレーションでは IdP(ID プロバイダー)が認証を一手に引き受け、その結果を SP(サービスプロバイダー)が信頼して受け入れます。SP 側にパスワードを持つ必要がなくなります。

今回の例:

  • IdP = Entra ID(ユーザーの認証を担当)
  • SP = AWS(Entra ID の認証結果を信頼して Amazon Quick へのアクセスを許可)

SAML 2.0 とは

Web ブラウザ向けのフェデレーション認証プロトコルです。IdP(Entra ID)がユーザーを認証し、XML 形式の「SAML アサーション」を SP(AWS)に渡すことで、SP 側にパスワードを持たなくてもログインできます。

SAML アサーションとは

IdP が発行する「この人は認証済みです」というデジタル署名付きの証明データ(XML)です。以下の情報が含まれます:

含まれる情報 内容
認証ステートメント いつ、どの方法で認証したか
属性ステートメント ユーザーの属性(ロール、メールアドレスなど)

今回の構成では、SAML アサーションに「このユーザーの IAM ロールは 〇〇」「メールアドレスは user@example.com」といった属性が含まれており、AWS はその情報をもとに一時的な認証情報を発行します。デジタル署名が付いているため、AWS 側は「この情報は確かに信頼している Entra ID が発行したものだ」と検証できます。

フェデレーションメタデータ XML とは

IdP または SP が「自分はこういう者です」と相手に自己紹介するための設定ファイル(XML)です。お互いのメタデータを交換することで、信頼関係が成立します。

今回の構成では 2 つのメタデータ XML が登場します:

メタデータ 発行元 渡す先 含まれる情報
Entra ID のメタデータ Entra ID(IdP) AWS(SP) Entra ID の署名証明書、サインイン URL、エンティティ ID
AWS のメタデータ AWS(SP) Entra ID(IdP) AWS のエンティティ ID(urn:amazon:webservices)、ACS URL、証明書
  • Entra ID → AWS:AWS が「Entra ID からのアサーションは信頼してよい」と判断するために使う
  • AWS → Entra ID:Entra ID が「アサーションの送り先は AWS のこの URL」と知るために使う

今回の構成

本記事では、SAML 2.0 を使って Entra ID から Amazon Quick にブラウザで SSO ログインする構成を紹介します。

アクセス方法 プロトコル 認証フロー
ブラウザ版 Amazon Quick SAML 2.0 Entra ID で認証 → SAML アサーション → sts:AssumeRoleWithSAML で一時認証情報を取得 → Amazon Quick にログイン

やってみた

前提条件

  • AWS アカウントを持っていること
  • Amazon Quick が有効化済みであること(Enterprise Edition)
    • パスワードベースまたはシングルサインオン もしくは シングルサインオンのみ で有効化していること(参考)
  • Microsoft Entra ID(旧 Azure AD)のテナントを持っていること
  • Entra ID でエンタープライズアプリを作成できる権限があること(アプリケーション管理者以上)
  • IAM でプロバイダー・ロールを作成できる権限があること

Entra ID 側

SAMLアプリの作成

エンタープライズアプリとは、Entra ID における「外部サービスとの接続設定を管理するための箇所」です。誰がアクセスできるか、どうやって認証するか、どんな属性を渡すかをまとめて管理します。

今回はノンギャラリー(独自アプリ)として作成します。ギャラリーに AWS 用テンプレートもありますが、Amazon Quick 向けに RelayState などをカスタムしたい場合はノンギャラリーの方が柔軟です。

  1. Microsoft Entra 管理センター →「エンタープライズ アプリ」→「新しいアプリケーション」

alt text

  1. 「独自のアプリケーションの作成」をクリック

alt text

  1. 名前を入力(例:Amazon Quick 検証用)→「ギャラリーに見つからないその他のアプリケーションを統合します」を選択 →「作成」

alt text

基本SAML設定

作成したアプリケーションの「シングル サインオン」→「SAML」を選択し、基本的な SAML 構成を編集します。

ここでは「SAML アサーションをどこに・誰宛に送るか」を定義します。

alt text

項目 意味
識別子(エンティティ ID) urn:amazon:webservices 「この SAML 通信の相手は AWS です」という識別子。AWS が自分宛のアサーションだと判別するために使う。AWS が定めた固定値で、どのアカウント・リージョンでも同じ
応答 URL(ACS URL) https://signin.aws.amazon.com/saml 認証完了後に SAML アサーションを POST で送る先。AWS の SAML 受付窓口
リレー状態(RelayState) https://quicksight.aws.amazon.com ログイン成功後にリダイレクトする最終的な行き先

alt text

属性とクレーム

属性(Attribute)とクレーム(Claim)は同じものを別の視点から呼んだ用語です。

用語 使う側 意味
属性(Attribute) SAML 仕様 / AWS 側 アサーション内のデータ項目
クレーム(Claim) Microsoft Entra ID / ADFS 側 IdP が発行する主張

Entra ID で「クレームを設定する」= SAML アサーションに含める「属性を設定する」ということです。

SAML 設定画面の「属性とクレーム」セクションで「編集」をクリックし、以下のクレームを追加します:

alt text

  1. 「新しいクレームの追加」をクリック

alt text

  1. 名前・名前空間・ソース属性を入力して保存

今回設定するクレーム(属性)は以下の通りです:

クレーム名 名前空間 ソース属性
Role https://aws.amazon.com/SAML/Attributes user.assignedroles
RoleSessionName https://aws.amazon.com/SAML/Attributes user.userprincipalname
PrincipalTag:Email https://aws.amazon.com/SAML/Attributes user.userprincipalname

alt text

フェデレーションメタデータXMLをダウンロード

SAML 設定画面の「SAML 証明書」セクションから「フェデレーション メタデータ XML」の「ダウンロード」をクリックします。このファイルを次の AWS 側の設定で使用します。
alt text

アプリロールの作成(アプリの登録 → アプリのロール)

アプリロールとは、Entra ID の「アプリの登録」で定義できるアプリケーション固有のロールです。ユーザーやグループに割り当てることで、SAML アサーションの Role クレームに値を渡す仕組みとして使います。

今回の構成では、アプリロールの「値」に 後続の手順で作成するAWS 側の IAM ロール ARN と SAML プロバイダー ARN をカンマ区切りで設定します。これにより、ユーザーが SSO ログインした際に「このユーザーは AWS 上でどの IAM ロールを引き受けるか」が SAML アサーションに含まれるようになります。

  1. 「アプリの登録」→ 作成したアプリを選択

alt text

  1. 左メニューの「アプリのロール」→「アプリ ロールの作成」

alt text

  1. 以下を入力して保存:
項目
表示名(何でも良い) Amazon Quick Role
許可されたメンバーの種類 ユーザー/グループ
<IAMロールARN>,<SAMLプロバイダーARN>

alt text

実際のRoleの値は後続のAWS側のリソース作成が完了してから入力してください。

SAML アサーション内の https://aws.amazon.com/SAML/Attributes/Role 属性としてそのまま渡されます。

ユーザー割り当て

作成したアプリロールをユーザーまたはグループに割り当てます。ここで割り当てられたユーザーだけが、このエンタープライズアプリ経由で AWS に SSO ログインできるようになります。

  1. 「エンタープライズ アプリ」→ 作成したアプリを選択

alt text

  1. 左メニューの「ユーザーとグループ」→「ユーザーまたはグループの追加」

alt text

  1. 割り当てるユーザーを選択 →「ロールの選択」で先ほど作成したアプリロール(Amazon Quick Role)を選択 →「割り当て」

alt text

割り当てが完了すると、そのユーザーの user.assignedroles に値がセットされ、SAML アサーションの Role クレームとして AWS に送信されます。

AWS側の設定

IAM に ID プロバイダーを登録

IAM の ID プロバイダーとは、外部の IdP(Entra ID など)を AWS に登録するためのリソースです。「この外部の認証基盤を信頼します」という宣言を IAM 上で表現したものであり、Entra ID のメタデータ XML(署名証明書・エンティティ ID・サインイン URL)を AWS に預けることで、受け取った SAML アサーションが確かに Entra ID が署名したものだと検証できるようになります。

登録後、arn:aws:iam::<アカウントID>:saml-provider/EntraID-Quick という ARN が発行され、IAM ロールの信頼ポリシーで「この IdP からの認証を信頼する」と指定する際に使います。

  1. AWS マネジメントコンソール → IAM →「ID プロバイダー」→「プロバイダを追加」
  2. プロバイダーのタイプ:「SAML」を選択
  3. プロバイダ名を入力(例:EntraID-Quick
  4. メタデータドキュメント:先ほど Entra ID からダウンロードしたフェデレーションメタデータ XML をアップロード
  5. 「プロバイダを追加」をクリック

alt text

IAMロールの作成

SAML フェデレーション用の IAM ロールには、信頼ポリシー権限ポリシーの 2 つを設定します。

  1. IAM →「ロール」→「ロールを作成」
  2. 信頼されたエンティティタイプ:「SAML 2.0 フェデレーション」を選択
  3. SAML 2.0 ベースのプロバイダー:先ほど作成した EntraID-Quick を選択
  4. 次へ進み、権限ポリシーをアタッチ(今回は検証のためAdmin権限を付与)
  5. ロール名を入力(例:QuickSAMLRole)→「ロールを作成」
信頼ポリシー

「Entra ID で認証されたユーザーがこのロールを引き受けてよい」という許可です。

{
  "Statement": [{
    "Effect": "Allow",
    "Principal": {
      "Federated": "arn:aws:iam::<アカウントID>:saml-provider/EntraID-Quick"
    },
    "Action": ["sts:AssumeRoleWithSAML", "sts:TagSession"],
    "Condition": {
      "StringEquals": {
        "SAML:aud": "https://signin.aws.amazon.com/saml"
      }
    }
  }]
}
参考:権限ポリシー

Amazon Quick へのアクセスに必要な最小限の権限です。このポリシーにより、初回 SSO ログイン時にユーザーが自動プロビジョニングされます。

管理者としてプロビジョニングする場合:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": ["quicksight:CreateAdmin"],
      "Effect": "Allow",
      "Resource": ["arn:aws:quicksight::<アカウントID>:user/${aws:userid}"]
    }
  ]
}
アクション プロビジョニングされるロール
quicksight:CreateAdmin 管理者
quicksight:CreateUser 作成者(Author)
quicksight:CreateReader 閲覧者(Reader)

ポリシーに複数のアクションが含まれる場合、最上位の権限レベルで自動プロビジョニングされます(手動招待は不要)。

Entra ID に戻ってアプリロールの値を入力

IAM ID プロバイダーと IAM ロールの作成が完了したら、Entra ID のアプリロールに実際の値を入力します。

  1. Microsoft Entra 管理センター →「アプリの登録」→ 作成したアプリ →「アプリのロール」
  2. 先ほど作成したロール(Amazon Quick Role)を編集
  3. 「値」に以下の形式で入力:
arn:aws:iam::<アカウントID>:role/QuickSAMLRole,arn:aws:iam::<アカウントID>:saml-provider/EntraID-Quick

SSO ログインの確認

ここまでの設定が完了したら、実際に SSO ログインできるか確認します。

手順

  1. ブラウザで https://myapps.microsoft.com/ にアクセスし、Entra ID のユーザーでログイン

  2. 作成したエンタープライズアプリ(例:「Amazon Quick 検証用」)のタイルをクリック

alt text

  1. Entra ID が SAML アサーションを生成し、AWS のサインインエンドポイント(https://signin.aws.amazon.com/saml)に POST される

  2. RelayState により Amazon Quick(https://quicksight.aws.amazon.com)にリダイレクトされる

alt text

  1. 初回ログイン時は、権限ポリシーに基づいてユーザーが自動プロビジョニングされる

alt text

  1. ログインが完了する

alt text

Amazon Quick

SSO の設定

オプションではありますが、この設定により、Amazon Quick のログイン画面から直接 Entra ID にリダイレクトされる SP-initiated SSO(Amazon Quick 起点の SSO)が有効になります。先ほどの myapps.microsoft.com からのログインは IdP-initiated SSO(Entra ID 起点)であり、両方向からのログインが可能になります。

  1. Amazon Quick コンソール → 右上のアイコン →「Quick の管理」
  2. 左メニューの「シングルサインオン (SSO)」を選択
  3. 以下を設定して保存:
項目 設定値
ステータス オン
IdP URL エンタープライズアプリ →「プロパティ」→「ユーザーのアクセス URL」の値(下記画像参照)
RelayState パラメータ名 RelayState

alt text

同じ「シングルサインオン (SSO)」画面内にある「フェデレーティッドユーザーの E メール同期」をオンにして保存します。

これをオンにすると、SAML アサーションに含まれる E メール属性(PrincipalTag:Email)が Amazon Quick ユーザーのメールアドレスとして同期されます。オフのままだと、ユーザーのメールアドレスが空になり、共有やメール通知が正しく動作しません。

下記は設定例となります。

alt text

ハマりポイント:SP-initiated SSO で AADSTS750054 エラー

Amazon Quick の SSO 設定を有効にして https://quicksight.aws.amazon.com からログインしようとすると、以下のエラーが出る場合があります:

AADSTS750054: SAMLRequest or SAMLResponse must be present as query string parameters in HTTP request for SAML Redirect binding.

原因: Amazon Quick の SP-initiated SSO は、Entra ID に SAMLRequest を直接送るのではなく、launcher.myapps.microsoft.com 経由でリダイレクトする仕組みです。IdP URL に Entra ID の SAML エンドポイント(https://login.microsoftonline.com/.../saml2)を直接指定すると、SAMLRequest なしでアクセスしてしまいエラーになります。

対処: Quick の SSO 設定の「IdP URL」には、エンタープライズアプリ →「プロパティ」に表示されるユーザーのアクセス URL を指定してください。この URL は launcher.myapps.microsoft.com 経由で IdP-initiated フローを起動するため、SAMLRequest なしでも正常に動作します。

まとめ

本記事で行った設定フローの全体像です:

  1. Entra ID:エンタープライズアプリ作成 — ノンギャラリーアプリとして作成
  2. Entra ID:基本 SAML 設定 — エンティティ ID・ACS URL・RelayState を設定
  3. Entra ID:属性とクレーム — Role / RoleSessionName / PrincipalTag:Email を設定
  4. Entra ID:メタデータ XML ダウンロード — AWS にアップロードするファイルを取得
  5. Entra ID:アプリロール作成 — IAM ロール ARN と SAML プロバイダー ARN のペアを値に設定
  6. Entra ID:ユーザー割り当て — SSO を許可するユーザーにアプリロールを割り当て
  7. AWS:IAM ID プロバイダー登録 — Entra ID のメタデータ XML をアップロード
  8. AWS:IAM ロール作成 — 信頼ポリシー(Entra ID を信頼)+ 権限ポリシー(Quick へのアクセス)
  9. 確認:IdP-initiated SSO — myapps.microsoft.com からログイン
  10. (オプション)Amazon Quick:SSO 設定 — SP-initiated SSO を有効化

この記事をシェアする

関連記事