Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
第177回 雲勉 IdP 移行を楽に!Amazon Cognito でアプリへの影響をゼロに...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
iret.kumoben
October 07, 2025
Technology
110
0
Share
第177回 雲勉 IdP 移行を楽に! Amazon Cognito でアプリへの影響をゼロにするアイデア
下記、勉強会での資料です。
https://youtu.be/R3M4J-_WiTg
iret.kumoben
October 07, 2025
More Decks by iret.kumoben
See All by iret.kumoben
第182回 雲勉 【Gemini 3.0 Pro】AI ベンチマーク徹底比較!他モデルに比べ優れている点まとめ
iret
0
88
第181回 雲勉 WEB制作者のちょっとした面倒をAWSで解決!Amazon S3とAWS Lambda活用術
iret
0
75
第180回 雲勉 Abuse report の調査・確認方法について
iret
0
100
第179回 雲勉 AI を活用したサポートデスク業務の改善
iret
0
140
第178回 雲勉 Amazon EKSをオンプレで! Amazon EKS Anywhere 実践構築ガイド
iret
1
110
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
91
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
130
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
160
第173回 雲勉 ノーコードで生成 AI アプリを構築!Google Cloud AI Applications(旧 Vertex AI Agent Builder)入門
iret
0
140
Other Decks in Technology
See All in Technology
Pythonでベイズモデリング
soogie
0
170
GitHub Copilot CLI の Rubber Duck 機能を使ってコーディングの品質をあげよう #techbaton_findy
stefafafan
1
270
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.6k
その英語学習、AWSで代替できませんか?
suzutatsu
1
200
Fラン学生が考える、AI時代のデザインに執着した突破口
husengs7
1
230
Claude Code で使える DuckDB Skills を試してみた / DuckDB Skills and Claude Code
masahirokawahara
1
2k
はじめてのAI-DLC
yoshidashingo
2
340
ラズパイ & Picoで入門:Zephyr(RTOS)の環境構築からビルドまでの紹介
iotengineer22
0
180
LT準備のToilを削減 〜決定論×確率論のスライド生成CLI〜
shukob
0
120
AsyncStreamでマルチブロードキャストを実装する
1mash0
1
180
実例から学ぶ GuardDuty(SSH BruteForce)調査の全体フローと勘所【SecurityJAWS】
cscengineer
PRO
0
180
ルール・ロール・ツールを創る / Creating Rules, Roles and Tools
ks91
PRO
0
150
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
The Curse of the Amulet
leimatthew05
1
12k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
230
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.3k
Embracing the Ebb and Flow
colly
88
5k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
Transcript
第177回 雲勉 IdP移行を楽に! Amazon Cognitoでアプリへの 影響をゼロにするアイデア
講師自己紹介 ▪ 名前 • 鳥井遼平 • アプリケーション開発一筋です! • アイレット入社後は、インフラ構築も経験。 •
ご質問は YouTubeのコメント欄で受け付けております。 後日回答させていただきます!
アジェンダ 3 1. IdP移行をテーマに選んだ理由 2. IdP移行を楽にする方法を考える 3. 実際に構築しよう 4. まとめ
1. IdP移行をテーマに選んだ理由 4
1.IdP移行をテーマに選んだ理由 5 ▪ IdPとは何? • シングルサインオンで利用する認証基盤。 → IdPで一度認証すれば、追加の認証不要で複数のサービスにログインできる。 → 認証プロトコルとしてSAMLが有名。
IdP 自社アプリ 従業員 1. 認証(ID、パスワード) 2. ログイン 外部サービス
1.IdP移行をテーマに選んだ理由 6 ▪ IdPの切り替え • 今年の初めに、IdPが別会社のシステムに移行した。 → 運用担当者向けの自社アプリにも影響が及ぶ。 → 影響の調査を担当。
IdP(A社) 自社アプリ 従業員 1. 認証 IdP(B社) 移行 2. ログイン
1.IdP移行をテーマに選んだ理由 7 ▪ なぜ、アプリケーションに影響? • SAMLの仕様が要因。 → IdPから返却されたレスポンス(SAMLレスポンス)をアプリが検証する。 IdP 自社アプリ
従業員 2. ログイン 内部に保持する IdPの情報と一致す るか検証 1. 認証
1.IdP移行をテーマに選んだ理由 8 ▪ 発生した作業 • 対応完了までに1週間強の日数を要した。 1. SAMLの理解 2. 関連するアプリケーションコードや設定ファイルの特定・理解
3. 改修 4. テスト(潜在的なバグ発覚→修正) 5. デプロイ もっと楽に対応できないか?という疑問に答えるのが 今回の登壇内容です。
2. IdP移行を楽にする方法を考える 9
2.IdP移行を楽にする方法を考える 10 ▪ IdP移行を難しくした要因は何か? • 認証関連のロジックが複雑。 → 改修担当者は一通り実装を理解せざるを得ない。 → ライブラリの使い方に潜在的なミスがあり、デバッグ+修正の作業も発生。
SAML認証フローをアプリ で実装したくない 要するに・・・
2.IdP移行を楽にする方法を考える 11 ▪ Amazon Cognito ユーザープールという解決策 • SAML認証フローを肩代わり。 • アプリケーションは、シンプルな認証フロー(OIDC)を扱う。
認証のことは Amazon Cognito に聞いて アプリ Amazon Cognito IdP IdPの元で 認証して下さい IDと パスワードは? ① ② ④ ③ 認証フローのイメージ(ユーザー視点) OIDC SAML
2.IdP移行を楽にする方法を考える 12 ▪ 認証フローの詳細 リダイレクト指示 リダイレクト指示 リダイレクト指示(SAMLアサーションを付与) 認可コードを連携 認証画面の要求 IdP認証画面の要求
認証情報の送信 認証情報の検証 SAMLアサーション の検証 User IdP Amazon Cognito user pools App SAMLアサーションを連携 リダイレクト指示(認可コードを付与) 認可コードを送信 トークンを返却 ホーム画面など トークンの情報から ユーザーを識別 認可コード の検証
3. 実際に構築しよう 13
3.実際に構築しよう 14 ▪ 実現すること • Amazon Cognitoユーザープールを通じたシングルサインオン。 • アプリケーションはHTTPS対応が必須。 →
独自ドメインをドメイン取得サービス(お名前.comなど)で発行。 → 証明書をAWS Certificate Managerで発行。
3.実際に構築しよう ▪ IdPの選定 • Okta Developer(https://developer.okta.com/)を使用する。 • アカウントの作成が必須。
3.実際に構築しよう ▪ 構成図 AWS Cloud VPC Public Subnet ACM Amazon
Route 53 Internet Gateway ALB Amazon EC2 Instance Amazon Cognito Attach Amazon Cognitoと Oktaの設定を以降で解説
3.実際に構築しよう ▪ 実演 自作アプリ Amazon Cognito Okta 自作アプリ
3.実際に構築しよう ▪ Amazon Coginito:ユーザープールの作成 項目名 値 アプリケーションタイプ 従来のWebアプリケーション 名前 myUserPool
サインイン識別子のオプション メールアドレス サインアップのための必須属性 email 作成したユーザープール
3.実際に構築しよう ▪ Okta Developer:アプリ統合 • SAML2.0の認証プロトコルを選択する。
3.実際に構築しよう ▪ Okta Developer:アプリ統合 • Amazon Cognito ユーザープールの情報を登録する。 Amazon Cognito
先頭に urn:amazon:cognito:sp: をつける Amazon Cognito 末尾に /saml2/idpresoponse をつける
3.実際に構築しよう ▪ Okta Developer:ユーザー登録 • アプリケーションユーザーを登録する。 ログインに成功すると、 このユーザー情報(emailなど)が Webアプリに連携される。
3.実際に構築しよう ▪ Okta Developer:証明書のダウンロード • Amazon Cognitoの設定で必要なSAML証明書をダウンロードする。 後ほど、ユーザープール に登録します。
3.実際に構築しよう ▪ Amazon Cognito:アイデンティティプロバイダーの追加 • OktaとSAML連携する設定を行う。
3.実際に構築しよう ▪ Amazon Cognito:アイデンティティプロバイダーの追加 • SAML証明書をアップロードする。 先ほどダウンロードした 証明書を選択する。 追加を完了する。
3.実際に構築しよう ▪ Amazon Cognito:コールバックURLの設定 • ログイン成功後にリダイレクトするWebアプリのURLを設定する。
3.実際に構築しよう ▪ ログインページ取得のエンドポイント 1. ユーザーをAmazon Cognitoユーザープールに誘導する。
3.実際に構築しよう ▪ コールバック処理のエンドポイント 1. ユーザーから受信した認可コードを検証する。 → OIDCの規約に従う。 → Amazon Cognitoの「{ドメイン名}/oauth2/token」にPOSTするだけで良い
→ SAMLと異なり、アプリで複雑な検証処理が不要。 2. POSTしたレスポンスからユーザー情報を取り出し、セッションを開始する。 3. ホーム画面などにリダイレクトする。
3.実際に構築しよう 28 ▪ 実現したこと ▪ 実現したこと 解決(After) IdPの移行はAmazon Cognitoが吸収する。 認証ロジックがシンプルになり、保守性が向上。
ライブラリに依存せず、軽量な構成に。 課題(Before) IdPの移行がアプリに影響する。 認証ロジックが複雑で実装ミスが起きやすい。 ライブラリに依存する。
4. まとめ 29
4.まとめ ▪ 振り返り • IdPの移行で苦労したポイントを解説。 • IdPの移行時の負担を軽減するシステム構成を解説。 アプリケーション開発で課題に直面したとき、 インフラの理解が解決へと導いてくれるかもしれません。
ご清聴ありがとうございました 31