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
28
第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
32
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
45
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
73
第173回 雲勉 ノーコードで生成 AI アプリを構築!Google Cloud AI Applications(旧 Vertex AI Agent Builder)入門
iret
0
64
第170回 雲勉 Lyria が切り拓く音楽制作の未来
iret
1
40
第169回 雲勉 AWS WAF 構築 RTA
iret
0
47
第168回 雲勉 JITNAの使い方とハマったポイントについて語る回
iret
0
52
第167回 雲勉 エージェント開発を加速する Agent Development Kit 入門
iret
1
62
第166回 雲勉 コードを読んで理解する AWS Amplify Gen2 Backend
iret
0
60
Other Decks in Technology
See All in Technology
ストレージエンジニアの仕事と、近年の計算機について / 第58回 情報科学若手の会
pfn
PRO
3
770
Introdução a Service Mesh usando o Istio
aeciopires
1
280
MCP ✖️ Apps SDKを触ってみた
hisuzuya
0
350
AWS DMS で SQL Server を移行してみた/aws-dms-sql-server-migration
emiki
0
220
あなたの知らない Linuxカーネル脆弱性の世界
recruitengineers
PRO
3
150
Kubernetes self-healing of your workload
hwchiu
0
500
Azureコストと向き合った、4年半のリアル / Four and a half years of dealing with Azure costs
aeonpeople
1
280
Linux カーネルが支えるコンテナの仕組み / LF Japan Community Days 2025 Osaka
tenforward
1
120
QA業務を変える(!?)AIを併用した不具合分析の実践
ma2ri
0
140
マルチエージェントのチームビルディング_2025-10-25
shinoyamada
0
140
Observability — Extending Into Incident Response
nari_ex
1
240
頭部ふわふわ浄酔器
uyupun
0
110
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
185
22k
Producing Creativity
orderedlist
PRO
347
40k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Fireside Chat
paigeccino
41
3.7k
Why Our Code Smells
bkeepers
PRO
340
57k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
A designer walks into a library…
pauljervisheath
209
24k
Scaling GitHub
holman
463
140k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
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