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
300
今年一番支援させていただいたのは認証系サービスでした
Satoshi Kaneyasu
December 13, 2024
Tweet
Share
More Decks by Satoshi Kaneyasu
See All by Satoshi Kaneyasu
密集、ドキュメントのコロケーション with AWS Lambda
satoshi256kbyte
0
190
【PHP】破壊的バージョンアップと戦った話〜決断と説得
satoshi256kbyte
0
140
今更聞けないセキュリティ用語の基礎知識 2025新春
satoshi256kbyte
0
110
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
200
おもにクラウドの話してます#4 OPスライド
satoshi256kbyte
0
60
AWS認定資格を勉強した先に何があったか
satoshi256kbyte
2
270
Amazon Aurora Serverless v2のアプデと、Amazon Aurora PostgreSQL Limitless DatabaseのGAについて
satoshi256kbyte
0
170
GitHub Actionsのキャッシュと手を挙げることの大切さとそれに必要なこと
satoshi256kbyte
5
480
Amazon Neptuneで始めてみるグラフDB-OpenSearchによるグラフの全文検索-
satoshi256kbyte
4
540
Other Decks in Programming
See All in Programming
『GO』アプリ データ基盤のログ収集システムコスト削減
mot_techtalk
0
120
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
46
17k
ARA Ansible for the teams
kksat
0
150
CNCF Project の作者が考えている OSS の運営
utam0k
6
710
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
890
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
210
How mixi2 Uses TiDB for SNS Scalability and Performance
kanmo
36
14k
ファインディの テックブログ爆誕までの軌跡
starfish719
2
1.1k
AWSマネコンに複数のアカウントで入れるようになりました
yuhta28
2
160
ファインディLT_ポケモン対戦の定量的分析
fufufukakaka
0
690
Honoのおもしろいミドルウェアをみてみよう
yusukebe
1
210
Multi Step Form, Decentralized Autonomous Organization
pumpkiinbell
1
730
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
427
64k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Adopting Sorbet at Scale
ufuk
74
9.2k
4 Signs Your Business is Dying
shpigford
182
22k
A better future with KSS
kneath
238
17k
Building Your Own Lightsaber
phodgson
104
6.2k
A designer walks into a library…
pauljervisheath
205
24k
Typedesign – Prime Four
hannesfritz
40
2.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
What's in a price? How to price your products and services
michaelherold
244
12k
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