catch-img

[認証・認可] SSO実践:CognitoとEntra IDの連携検証

近年、クラウドサービスの利用拡大に伴い、認証・認可の仕組みはシステム開発における重要な要素となっています。特に企業システムでは、認証基盤の標準化による開発効率の向上や、アクセス制御の強化によるセキュリティ向上が求められています。
こうした背景から、株式会社エヌアイデイでは今後の認証領域の標準モデルを確立し、開発の迅速化とセキュリティ強化を実現することを目的として、Amazon Cognitoを利用した認証・認可の技術検証を実施しました。

今回の検証は、今後の案件での実運用に向け、事前にナレッジを蓄積することを目的として、社内の若手メンバー(当時1年目~3年目)が20257月~10月にかけて実施しました。

本記事はスライドの記載内容をもとに、検証の要点を簡潔にまとめています。詳細な検証内容や技術的な説明は埋め込みのスライド本文をご参照ください。

検証の目的

本検証では、今後の認証領域の標準モデルを確立し、開発の迅速化とセキュリティ強化を実現することを目的に、以下の検証を実施しました。

  • API GatewayCognitoオーソライザー機能を実装し、認証によるAPIへのアクセス制御の可否

  • CognitoEntra ID間のIdP連携を実装し、認証によるAPI Gatewayへのアクセス制御の可否

  • Cognito におけるManaged Login機能によるログインページのカスタマイズ性の確認およびManaged LoginにAWS WAFを利用したアクセス制御の可否

検証方法

検証1:Cognito + API Gateway

検証1では以下の項目を検証しました。

  • トークンの取得

  •  APIリクエストの送信とレスポンスの確認

  • トークン認証の検証

構成図は次の通りです。

Cognito+API Gateway検証の構成図
  1. Client端末よりAmazon Cognitoへ認証情報を送信し、JWT(JSON Web Token)を取得する。
  2. 取得したJWTを含め、APIリクエストを送信する。
  3. API Gatewayは、リクエストに含まれるJWTAmazon Cognitoのオーソライザー機能により認証する。
  4. 認証が成功した場合、Lambda関数が実行される。
  5. Lambda関数が実行結果をClient端末に返す。

検証2:Cognito + Entra ID

検証2では以下の項目を検証しました。

  • Managed Loginページからのサインイン

  • IDトークンの取得

  • トークン認証の検証

構成図は次の通りです。

Cognito+Entra ID検証の構成図
  1. URLからAPI Gatewayにアクセスする。

  2. API GatewayからCognitoにリクエスト許可が行われる。

  3. CognitoからEntra ID IdPにリダイレクトされる。

  4. 端末からEntra ID IdPSAMLリクエスト、サインインを行う。

  5. 認証されるとEntra ID IdPからSAMLレスポンスを返す。

  6. 端末からCognitoSAMLアサーションを行う。

  7. CognitoからJWTトークン発行される。

  8. トークンを付与してAPIへリクエストを行う。

  9. トークンの検証を行う。

  10. 認証が成功した場合、リクエストが転送され、Lambda関数が実行される。

  11. Lambda関数の実行結果をClient端末に返す。

検証3:Cognito Managed Login + AWS WAF

検証3では以下の項目を検証しました。

  • Managed Login画面の作成

  • レート制限による大量アクセスからの防御

  • IP制御によるネットワーク制御

構成図は次の通りです。検証1の構成で、Cognitoの前段にWAFを追加しています。

Cognito Managed Login+WAF検証の構成図

各検証における詳細な設定内容についてはスライド本文をご参照ください。

検証結果

検証1:Cognito + API Gateway

認証されたAPIリクエストのみ、Lambda関数のレスポンスを正常に受け取れることを確認しました。IDトークンが無効、あるいは付与されていないリクエストには認証エラーが返されることから、Cognitoオーソライザー機能がAPIへのアクセスを適切に制御できることを確認しました。
また、検証を通じて、API Gatewayで認証を行うためには適切なIDトークンが必要であることを確認できました。

検証2:Cognito + Entra ID

Entra IDとのSSO連携では、SAML認証やリダイレクト処理をほとんど意識せずにシングルサインオンが行えることを確認しました。一方で、IDトークンを付与せずにアクセストークンを利用してAPIリクエストを送信した場合には認証エラーとなることを確認できました。
また、CognitoManaged Login設定が未実施だったことによるサインイン画面のエラーも発生し、Managed Loginが単なるログイン画面ではなく、SSOの応答処理を担う重要なコンポーネントであることを確認できました。

検証3:Cognito Managed Login + AWS WAF

Managed Loginについては、ロゴの挿入や配色変更、フォーム配置変更などの基本的なデザイン調整が可能であることを確認しました。一方で、表示文言の変更や独自フォームの追加、独自の画面遷移などには対応しておらず、UIカスタマイズには一定の制約があることも分かりました

AWS WAFについては、レート制限による大量アクセスからの防御、およびIP制限によるアクセス制御が有効に機能することを確認しました。許可していないネットワークからのアクセス時には、WAFによって403エラーが返されることも確認しています。

まとめ

今回の検証を通じて、CognitoオーソライザーによるAPIアクセス制御、Entra IDとのSSO連携、Managed LoginAWS WAFを利用した認証基盤の実現性を確認することができました。
今後は、Cognitoのグループ機能やカスタムスコープ機能の活用、Entra IDの条件付きアクセスポリシーやIntuneとの連携検討を進めるとともに、「Managed Login + WAF」と「独自UI実装 + WAF」の標準モデル化を通じて、案件対応における開発速度の向上を目指していきます。

エヌアイデイでは引き続き技術検証を通じて知見の蓄積を行い、認証・認可領域における提案力向上につなげていきます。

T.T.
T.T.
クラウドインフラ(AWS/Azure)からデータ分析(Power BI)まで、幅広く技術習得に励むプロジェクトメンバー。 現場参画を機に、Snowflakeのガバナンス設計にゼロから挑戦、BIの知見を活かしてマネージドログインの画面チューニングを検証するなど、プロダクト改善にも主体的に取り組んでいる。

関連記事

おすすめの資料

「『解決力』で選ぶべきアウトソーシングとは」のサムネイル

「【入門編】失敗しないシステム運用監視を実現!」のサムネイル

サイト内検索


カテゴリ一覧

タグ一覧


人気記事ランキング


サービス

運用監視サービスサイトへのバナーリンク
脆弱性診断サービスサイトへのバナーリンク
創業50年以上の実績でIT課題を一気通貫でサポートします