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
500
今年一番支援させていただいたのは認証系サービスでした
Satoshi Kaneyasu
December 13, 2024
Tweet
Share
More Decks by Satoshi Kaneyasu
See All by Satoshi Kaneyasu
変化の激しい時代における、こだわりのないエンジニアの強さ
satoshi256kbyte
1
1.2k
密集、ドキュメントのコロケーション with AWS Lambda
satoshi256kbyte
1
240
【PHP】破壊的バージョンアップと戦った話〜決断と説得
satoshi256kbyte
0
180
今更聞けないセキュリティ用語の基礎知識 2025新春
satoshi256kbyte
0
140
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
260
おもにクラウドの話してます#4 OPスライド
satoshi256kbyte
0
68
AWS認定資格を勉強した先に何があったか
satoshi256kbyte
2
280
Amazon Aurora Serverless v2のアプデと、Amazon Aurora PostgreSQL Limitless DatabaseのGAについて
satoshi256kbyte
0
200
GitHub Actionsのキャッシュと手を挙げることの大切さとそれに必要なこと
satoshi256kbyte
5
500
Other Decks in Programming
See All in Programming
보일러플레이트 코드가 진짜 나쁜 건가요?
gaeun5744
0
370
Scala 3 で GLSL のための c-like-for を実装してみた
exoego
1
180
AtCoder Heuristic First-step Vol.1 講義スライド(山登り法・焼きなまし法編)
takumi152
3
980
AtCoder Heuristic First-step Vol.1 講義スライド
terryu16
2
1k
아직도 SOLID 를 '글'로만 알고 계신가요?
sh1mj1
0
360
snacks.nvim内のセットアップ不要なプラグインを紹介 / introduce_snacks_nvim
uhooi
0
330
複雑なフォームと複雑な状態管理にどう向き合うか / #newt_techtalk vol. 15
izumin5210
4
2.9k
AHC 044 混合整数計画ソルバー解法
kiri8128
0
300
PHPでお金を扱う時、終わりのない 謎の1円調査の旅にでなくて済む方法
nakka
3
990
SQL Server ベクトル検索
odashinsuke
0
110
新卒から4年間、20年もののWebサービスと 向き合って学んだソフトウェア考古学
oguri
7
6.5k
複数ドメインに散らばってしまった画像…! 運用中のPHPアプリに後からCDNを導入する…!
suguruooki
0
430
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.3k
The Cult of Friendly URLs
andyhume
78
6.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.4k
Building Applications with DynamoDB
mza
94
6.3k
KATA
mclloyd
29
14k
Why Our Code Smells
bkeepers
PRO
336
57k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Testing 201, or: Great Expectations
jmmastey
42
7.4k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
118
51k
Bash Introduction
62gerente
611
210k
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