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
今年一番支援させていただいたのは認証系サービスでした
Search
Satoshi Kaneyasu
December 13, 2024
Programming
1
230
今年一番支援させていただいたのは認証系サービスでした
Satoshi Kaneyasu
December 13, 2024
Tweet
Share
More Decks by Satoshi Kaneyasu
See All by Satoshi Kaneyasu
おもにクラウドの話してます#4 OPスライド
satoshi256kbyte
0
44
AWS認定資格を勉強した先に何があったか
satoshi256kbyte
2
210
Amazon Aurora Serverless v2のアプデと、Amazon Aurora PostgreSQL Limitless DatabaseのGAについて
satoshi256kbyte
0
110
GitHub Actionsのキャッシュと手を挙げることの大切さとそれに必要なこと
satoshi256kbyte
5
450
Amazon Neptuneで始めてみるグラフDB-OpenSearchによるグラフの全文検索-
satoshi256kbyte
4
430
【5分LT】フロントエンドとバックエンドを繋ぐ認証サービス Amazon Cognito
satoshi256kbyte
2
85
AWS認定資格を受験するにあたり、気づいたこと・実践していたことのまとめ
satoshi256kbyte
2
190
[LT]Amazon Neptuneで始める初めてのグラフDB ー グラフDBを使う意味を考える ー
satoshi256kbyte
2
370
おもにクラウドの話してます#3 OPスライド
satoshi256kbyte
1
34
Other Decks in Programming
See All in Programming
iOS18とヘルスケアの睡眠対応
takuyaosawa
0
110
TypeScript でバックもやるって実際どう? 実運用で困ったこと3選
yuichiro_serita
17
7.7k
わたしの星のままで一番星になる ~ 出産を機にSIerからEC事業会社に転職した話 ~
kimura_m_29
0
160
From Translations to Multi Dimension Entities
alexanderschranz
2
110
Semantic Kernelのネイティブプラグインで知識拡張をしてみる
tomokusaba
0
170
Java 23の概要とJava Web Frameworkの現状 / Java 23 and Java web framework
kishida
2
390
クリエイティブコーディングとRuby学習 / Creative Coding and Learning Ruby
chobishiba
0
3.8k
42 best practices for Symfony, a decade later
tucksaun
1
160
Jakarta EE meets AI
ivargrimstad
0
180
layerx_20241129.pdf
kyoheig3
2
270
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
110
Cloudflare MCP ServerでClaude Desktop からWeb APIを構築
kutakutat
1
390
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Site-Speed That Sticks
csswizardry
1
170
The Pragmatic Product Professional
lauravandoore
32
6.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Transcript
今年一番支援させていただいたのは 認証系サービスでした 2024.12.14 SATOSHI KANEYASU
2 自己紹介 氏名:兼安 聡 所属:株式会社サーバーワークス(中途2年目) アプリケーションサービス部 在住:広島(フルリモート) 担当:DevOps、技術支援、PM、SM 2024 Japan
AWS Top Engineers (Database) 2024 Japan AWS All Certifications Engineers 認定スクラムマスター X:@satoshi256kbyte
3 今回のお話 ➢業務でPoC、サービス開発、アーキテクチャ見直しなどの技術支援をしています。 ➢今年はどの案件でも認証系サービスは必ず支援対象に入っていたので、その話をします。 ➢最初から最後までAWSの話しかしてないのでご容赦を
目次 1. サービス分割を進めるためのAmazon Cognitoの導入 2. AWS外にある認証プロバイダーとの連携 3.2025年はAWS IAM Identity Centerが肝になりそう
4. まとめ
サービス分割を進めるためのAmazon Cognitoの導入
6 サービス分割を進めるためのAmazon Cognitoの導入 ➢モノリシックなシステムのアーキテクチャの見直しで、認証周りに手を入れる ➢この時にAmazon Cognitoが出てくる
7 Amazon Cognitoとは ➢AWSのマネージドな認証認可サービス ➢ID管理 ➢Cognito側でユーザー情報を管理することが可能 ➢必ずしもシステム側でユーザー情報をDBに持つ必要はない ➢ユーザー認証 ➢すぐ使えるログイン画面、パスワード変更画面が提供されている ➢自前で作ることも可能
➢ソーシャルログイン(Google、Facebook、Amazon、Apple)に対応 ➢他の認証・認可サービスとしては、Auth0、OneLogin、Oktaなどがある ➢サービスではなくインストールするものなら、Keycloakもある
8 サービス分割(マイクロサービス)におけるAmazon Cognitoの役割 ➢サービスを分割する理由は、デザインを外部に 依頼したい、一部の機能に引っ張られて全体 が遅くなるのを防ぐ、拡張性を得る、などがある ➢サービスを分割する場合、認証に関する情報 は外出しにしないとサービスが繋がらない (都度ログインが必要になってしまう) ➢「認証も一個のサービスなんですよ」
という説明にAmazon Cognitoは都合がよい ➢この方式では以下の質問をよくいただく ➢ セッションに溜めていた情報をどこに持たせるのか ➢ ユーザーマスタの結合はどうするのか ログインしてるかどうか をここで管理する
9 【よくある質問】セッションに溜めていた情報をどこに持たせるのか ➢セッションに、ログインしてるかどうかだけでなく、 ショッピングサイトにおけるカートのような、 ユーザーごとの情報を格納しているケースがある ➢これらの情報はCognitoに持たせるのは難しい ので、Cognitoとはまた別の格納先を設けるよ う勧めている ➢Cognitoへの過剰アクセスを軽減する意味も ある
➢ Cognitoへの過剰アクセスはクォータ(上限)に引っ かかることがある ユーザーごとの キャッシュやカート情報な どはここへ
10 【よくある質問】ユーザーマスタとの結合はどうするのか ➢Amazon Cognitoにユーザー情報を作らな いと、Cognitoでログインできないが、ここに全 部持たせると他のデータとの結合に困るパター ンが多い ➢割り切ってフルのユーザーマスタはDBに持たせ て、Cognitoにはログインに必要な最低限の 情報だけ持たせるあえての二重管理方式を勧
めている ユーザーマスタは DBに持たせる アプリはDBと Cognito両方に更新をかける ログインに必要な 最低限の情報を持たせる
11 アプリケーションサーバーのリクエストごとの処理 ① Cognitoにログイン済かどうか問い合わせる ➢ 未ログインならCognitoのログイン画面に転 送 ② ログイン済みならインメモリデータベースからユー ザー情報取得
③ インメモリデータベースからデータが得られないな ら、RDBに問い合わせてユーザー情報取得 ④ RDBから得たユーザー情報などはインメモリデー タベースに格納、次回以降の高速化に繋げる ① ② ③
12 【余談】LINEログインの需要が高い ➢技術支援をして初めて分かったが、LINEログインの需要がかなり高い ➢LINEはCognitoでフォローしてないので独自実装になる ➢普段LINEログインを使わないので気にしていなかった、まだまだ顧客に聞かないとわからないこ とは多いなと感じた
AWS外にある認証プロバイダーとの連携
14 AWS外にある認証プロバイダーとの連携 ➢こちらは2024年の前半によく挙がっていたパターン ➢AWSにはAmazon API Gatewayというサービスがあり、これを使ってAPIを公開することが 可能 ➢この時、APIに認証をかけることができ、認証プロバイダーにはAmazon Cognitoや外部の認 証プロバイダーを使うことができる
15 認証プロバイダーからユーザーの権限を得て生成AIに渡す ➢このパターンは認証プロバイダーからユーザーの権限を得て生成AIに渡し、生成AIにユーザー の権限で見える範囲のデータから回答を作成・返却するために求められた ➢2024年の後半は、私の営業力のせいかあまり出会わなくなった
16 ディレクトリ・サービスの技術者不足 ➢私のところに話が回ってきたのは、外部認証プロバイダーがディレクトリ・サービスだったので、知 識を持ってる人、もしくはやり切れる人がいなかったという背景がある ➢ディレクトリ・サービスの知識がある技術は現在も不足している印象
2025年はAWS IAM Identity Centerが肝になりそう
18 AWSは2024年も多数の新サービスやアップデートをリリース ➢AWS App Studio ➢Amazon Q Developer ➢Amazon CodeCatalyst
これらは、AWS IAM Identity Centerを利用することが前提、もしくは推奨され るようになっいる。 AWS IAM Identity Centerは、AWSサービスの認証・認可を一元管理するサービ スで、Amazon Cognitoとは別のサービス。 AWS IAM Identity Centerを使わないとAWSの特にAIを使ったサービスの恩恵を 受けにくくなる状況が考えられる。
19 AWS IAM Identity Centerとは 画像引用:サーバーワークスエンジニアブログ ➢AWS IAM Identity CenterはAWSアカウ
ントやアプリケーションへのアクセス制御を一元 的に管理するサービス ➢マルチアカウント上で有益なサービス ➢現状、広くノウハウが知れ渡ってるとは言えな いサービス 2025年はこれの運用方法確立が肝になりそ う ➢個人的にはマルチアカウントをするほどでもない 事業者ほどAIの恩恵を受けるべきと思うので なんとかしたい
まとめ
21 まとめ ➢その昔、認証はそれだけでご飯食べれると聞いていたが、今も変わらないなと感じた一年だった ➢Amazon Cognitoを軸としたサービス分割の支援は、まだしばらく需要が続くと考えられる ➢生成AIのための認証系の需要は小休止かも ➢AWSの新サービスやアップデートを見る限り、AWS IAM Identity Centerを利用することが
前提のサービスが増加しているため、2025年はIAM Identity Centerについての深い理解 と運用方法の確立が重要となりそう
22 ありがとうございました
None