Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第177回 雲勉 IdP 移行を楽に! Amazon Cognito でアプリへの影響をゼロに...

第177回 雲勉 IdP 移行を楽に! Amazon Cognito でアプリへの影響をゼロにするアイデア

下記、勉強会での資料です。
https://youtu.be/R3M4J-_WiTg

Avatar for iret.kumoben

iret.kumoben

October 07, 2025
Tweet

More Decks by iret.kumoben

Other Decks in Technology

Transcript

  1. 講師自己紹介 ▪ 名前 • 鳥井遼平 • アプリケーション開発一筋です! • アイレット入社後は、インフラ構築も経験。 •

    ご質問は YouTubeのコメント欄で受け付けております。 後日回答させていただきます!
  2. 1.IdP移行をテーマに選んだ理由 8 ▪ 発生した作業 • 対応完了までに1週間強の日数を要した。 1. SAMLの理解 2. 関連するアプリケーションコードや設定ファイルの特定・理解

    3. 改修 4. テスト(潜在的なバグ発覚→修正) 5. デプロイ もっと楽に対応できないか?という疑問に答えるのが 今回の登壇内容です。
  3. 2.IdP移行を楽にする方法を考える 11 ▪ Amazon Cognito ユーザープールという解決策 • SAML認証フローを肩代わり。 • アプリケーションは、シンプルな認証フロー(OIDC)を扱う。

    認証のことは Amazon Cognito に聞いて アプリ Amazon Cognito IdP IdPの元で 認証して下さい IDと パスワードは? ① ② ④ ③ 認証フローのイメージ(ユーザー視点) OIDC SAML
  4. 2.IdP移行を楽にする方法を考える 12 ▪ 認証フローの詳細 リダイレクト指示 リダイレクト指示 リダイレクト指示(SAMLアサーションを付与) 認可コードを連携 認証画面の要求 IdP認証画面の要求

    認証情報の送信 認証情報の検証 SAMLアサーション の検証 User IdP Amazon Cognito user pools App SAMLアサーションを連携 リダイレクト指示(認可コードを付与) 認可コードを送信 トークンを返却 ホーム画面など トークンの情報から ユーザーを識別 認可コード の検証
  5. 3.実際に構築しよう 14 ▪ 実現すること • Amazon Cognitoユーザープールを通じたシングルサインオン。 • アプリケーションはHTTPS対応が必須。 →

    独自ドメインをドメイン取得サービス(お名前.comなど)で発行。 → 証明書をAWS Certificate Managerで発行。
  6. 3.実際に構築しよう ▪ 構成図 AWS Cloud VPC Public Subnet ACM Amazon

    Route 53 Internet Gateway ALB Amazon EC2 Instance Amazon Cognito Attach Amazon Cognitoと Oktaの設定を以降で解説
  7. 3.実際に構築しよう ▪ Amazon Coginito:ユーザープールの作成 項目名 値 アプリケーションタイプ 従来のWebアプリケーション 名前 myUserPool

    サインイン識別子のオプション メールアドレス サインアップのための必須属性 email 作成したユーザープール
  8. 3.実際に構築しよう ▪ Okta Developer:アプリ統合 • Amazon Cognito ユーザープールの情報を登録する。 Amazon Cognito

    先頭に urn:amazon:cognito:sp: をつける Amazon Cognito 末尾に /saml2/idpresoponse をつける
  9. 3.実際に構築しよう ▪ コールバック処理のエンドポイント 1. ユーザーから受信した認可コードを検証する。 → OIDCの規約に従う。 → Amazon Cognitoの「{ドメイン名}/oauth2/token」にPOSTするだけで良い

    → SAMLと異なり、アプリで複雑な検証処理が不要。 2. POSTしたレスポンスからユーザー情報を取り出し、セッションを開始する。 3. ホーム画面などにリダイレクトする。
  10. 3.実際に構築しよう 28 ▪ 実現したこと ▪ 実現したこと 解決(After) IdPの移行はAmazon Cognitoが吸収する。 認証ロジックがシンプルになり、保守性が向上。

    ライブラリに依存せず、軽量な構成に。 課題(Before) IdPの移行がアプリに影響する。 認証ロジックが複雑で実装ミスが起きやすい。 ライブラリに依存する。