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
iret.kumoben
October 07, 2025
Technology
0
15
第177回 雲勉 IdP 移行を楽に! Amazon Cognito でアプリへの影響をゼロにするアイデア
下記、勉強会での資料です。
https://youtu.be/R3M4J-_WiTg
iret.kumoben
October 07, 2025
Tweet
Share
More Decks by iret.kumoben
See All by iret.kumoben
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
23
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
36
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
45
第173回 雲勉 ノーコードで生成 AI アプリを構築!Google Cloud AI Applications(旧 Vertex AI Agent Builder)入門
iret
0
52
第170回 雲勉 Lyria が切り拓く音楽制作の未来
iret
1
33
第169回 雲勉 AWS WAF 構築 RTA
iret
0
38
第168回 雲勉 JITNAの使い方とハマったポイントについて語る回
iret
0
46
第167回 雲勉 エージェント開発を加速する Agent Development Kit 入門
iret
1
59
第166回 雲勉 コードを読んで理解する AWS Amplify Gen2 Backend
iret
0
49
Other Decks in Technology
See All in Technology
Green Tea Garbage Collector の今
zchee
PRO
2
390
関係性が駆動するアジャイル──GPTに人格を与えたら、対話を通してふりかえりを習慣化できた話
mhlyc
0
130
Optuna DashboardにおけるPLaMo2連携機能の紹介 / PFN LLM セミナー
pfn
PRO
1
870
Pythonによる契約プログラミング入門 / PyCon JP 2025
7pairs
5
2.5k
Shirankedo NOCで見えてきたeduroam/OpenRoaming運用ノウハウと課題 - BAKUCHIKU BANBAN #2
marokiki
0
110
Railsアプリケーション開発者のためのブックガイド
takahashim
14
6.1k
業務自動化プラットフォーム Google Agentspace に入門してみる #devio2025
maroon1st
0
190
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
コンテキストエンジニアリングとは? 考え方と応用方法
findy_eventslides
4
890
「AI駆動PO」を考えてみる - 作る速さから価値のスループットへ:検査・適応で未来を開発 / AI-driven product owner. scrummat2025
yosuke_nagai
4
570
AWSにおけるTrend Vision Oneの効果について
shimak
0
120
AI ReadyなData PlatformとしてのAutonomous Databaseアップデート
oracle4engineer
PRO
0
160
Featured
See All Featured
Building Applications with DynamoDB
mza
96
6.6k
Designing for humans not robots
tammielis
254
25k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Agile that works and the tools we love
rasmusluckow
331
21k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
The Invisible Side of Design
smashingmag
301
51k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
The Power of CSS Pseudo Elements
geoffreycrofte
79
6k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
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