Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
62
第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
第181回 雲勉 WEB制作者のちょっとした面倒をAWSで解決!Amazon S3とAWS Lambda活用術
iret
0
32
第180回 雲勉 Abuse report の調査・確認方法について
iret
0
57
第179回 雲勉 AI を活用したサポートデスク業務の改善
iret
0
62
第178回 雲勉 Amazon EKSをオンプレで! Amazon EKS Anywhere 実践構築ガイド
iret
1
57
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
51
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
80
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
130
第173回 雲勉 ノーコードで生成 AI アプリを構築!Google Cloud AI Applications(旧 Vertex AI Agent Builder)入門
iret
0
98
第170回 雲勉 Lyria が切り拓く音楽制作の未来
iret
1
50
Other Decks in Technology
See All in Technology
ActiveJobUpdates
igaiga
1
310
M&Aで拡大し続けるGENDAのデータ活用を促すためのDatabricks権限管理 / AEON TECH HUB #22
genda
0
230
Authlete で実装する MCP OAuth 認可サーバー #CIMD の実装を添えて
watahani
0
160
AWS運用を効率化する!AWS Organizationsを軸にした一元管理の実践/nikkei-tech-talk-202512
nikkei_engineer_recruiting
0
170
Lookerで実現するセキュアな外部データ提供
zozotech
PRO
0
200
「もしもデータ基盤開発で『強くてニューゲーム』ができたなら今の僕はどんなデータ基盤を作っただろう」
aeonpeople
0
240
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
760
New Relic 1 年生の振り返りと Cloud Cost Intelligence について #NRUG
play_inc
0
230
Introduce marp-ai-slide-generator
itarutomy
0
110
まだ間に合う! Agentic AI on AWSの現在地をやさしく一挙おさらい
minorun365
17
2.7k
Bedrock AgentCore Evaluationsで学ぶLLM as a judge入門
shichijoyuhi
2
240
[2025-12-12]あの日僕が見た胡蝶の夢 〜人の夢は終わらねェ AIによるパフォーマンスチューニングのすゝめ〜
tosite
0
170
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
710
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
0
22
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
New Earth Scene 8
popppiees
0
1.2k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
2
3.8k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
0
44
Designing Experiences People Love
moore
143
24k
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