MENU

AzureとAWSでSSO!Entra IDとCognito連携手順

当ページのリンクには広告が含まれています。

「社内のMicrosoftアカウント(Entra ID)を使って、AWS上の社内システムにログインさせたい」

これを実現するには、IDプロバイダー(IdP)であるMicrosoft Entra IDと、サービスプロバイダー(SP)となるAmazon Cognitoを連携させる必要があります。この記事では、両者をSAML認証で接続し、AWS ALB(ロードバランサー)経由でのシングルサインオン(SSO)を完成させる手順を解説します。

目次

前提条件と構成

本記事は、以下の設定が完了していることを前提としています。

1. Azure (Entra ID) 側の仕上げ設定

Azureのエンタープライズアプリケーション設定画面に戻り、AWS Cognitoと連携するための識別子とURLを設定します。

識別子と応答URLの入力

「基本的なSAML構成」の編集画面を開き、以下のフォーマットで入力します。これにより、Azureは「どのCognitoユーザープールに対して認証情報を渡せばよいか」を認識します。

項目入力値のフォーマット
識別子 (エンティティ ID)urn:amazon:cognito:sp:{CognitoユーザープールID}urn:amazon:cognito:sp:ap-northeast-1_xxxxxxx
応答 URL (ACS URL)https://{Cognitoドメイン}/saml2/idpresponsehttps://auth.example.com/saml2/idpresponse

属性とクレームの確認

Cognito側でユーザーのメールアドレスなどを正しく受け取るために、「属性とクレーム」の設定を確認します。Eメールアドレスなどが正しくマッピングされているか確認してください。

接続テスト

設定が完了したら、Azureの画面下部にある「テスト」ボタンをクリックし、現在ログインしているユーザーでサインインを試行します。成功すると、トークンに含まれる属性情報が表示されます。

2. AWS ALBとCognitoの最終連携

Azure側の設定が完了したので、AWS側でこれを受け入れる設定を有効化します。

ALBリスナールールの設定

EC2インスタンスの前段にあるALB(Application Load Balancer)のリスナールールを編集します。

HTTPS (443) リスナーのルールで、認証アクションとして作成済みのCognitoユーザープールを指定します。

  • アクションの追加: 認証 (Authenticate)
  • 認証プロバイダー: Amazon Cognito
  • ユーザープール: (作成したプールを選択)
  • アプリクライアント: (作成したアプリクライアントを選択)

3. 動作確認

全ての設定が完了しました。実際にブラウザからALBのドメイン(例:https://app.example.com)にアクセスしてみましょう。

  1. ALBのURLにアクセスすると、Cognitoのログイン画面(またはAzureのログイン画面)にリダイレクトされます。
  2. Azure(Microsoftアカウント)でログインを行います。
  3. 認証が成功すると、ALB配下のEC2(Difyなどのアプリケーション)の画面が表示されます。

まとめ

これで、Azure AD (Entra ID) で管理されているユーザーアカウントを使って、AWS上のアプリケーションにセキュアにアクセスできる環境が整いました。

この構成により、ユーザーは新たなID/パスワードを覚える必要がなくなり、管理者はAzure側でアカウントを一元管理できるため、利便性とセキュリティの両方が向上します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次