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
49
第173回 雲勉 ノーコードで生成 AI アプリを構築!Google Cloud AI Applications(旧 Vertex AI Agent Builder)入門
iret
0
52
第170回 雲勉 Lyria が切り拓く音楽制作の未来
iret
1
35
第169回 雲勉 AWS WAF 構築 RTA
iret
0
38
第168回 雲勉 JITNAの使い方とハマったポイントについて語る回
iret
0
46
第167回 雲勉 エージェント開発を加速する Agent Development Kit 入門
iret
1
61
第166回 雲勉 コードを読んで理解する AWS Amplify Gen2 Backend
iret
0
49
Other Decks in Technology
See All in Technology
KMP の Swift export
kokihirokawa
0
330
AIが書いたコードをAIが検証する!自律的なモバイルアプリ開発の実現
henteko
1
340
データエンジニアがこの先生きのこるには...?
10xinc
0
440
いま注目しているデータエンジニアリングの論点
ikkimiyazaki
0
590
E2Eテスト設計_自動化のリアル___Playwrightでの実践とMCPの試み__AIによるテスト観点作成_.pdf
findy_eventslides
0
110
職種別ミートアップで社内から盛り上げる アウトプット文化の醸成と関係強化/ #DevRelKaigi
nishiuma
2
130
Flaky Testへの現実解をGoのプロポーザルから考える | Go Conference 2025
upamune
1
420
o11yで育てる、強い内製開発組織
_awache
3
120
Goにおける 生成AIによるコード生成の ベンチマーク評価入門
daisuketakeda
2
100
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
9k
ZOZOのAI活用実践〜社内基盤からサービス応用まで〜
zozotech
PRO
0
170
AI ReadyなData PlatformとしてのAutonomous Databaseアップデート
oracle4engineer
PRO
0
170
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
How to Think Like a Performance Engineer
csswizardry
27
2k
Building Adaptive Systems
keathley
43
2.8k
Scaling GitHub
holman
463
140k
Gamification - CAS2011
davidbonilla
81
5.5k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Bash Introduction
62gerente
615
210k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
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