Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Azure AD対応の認証プロキシサーバをGoで作っている話
Search
YAEGASHI Takeshi
November 13, 2021
Technology
300
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Azure AD対応の認証プロキシサーバをGoで作っている話
Go Conference 2021 Autumn
https://gocon.jp/2021autumn/sessions/azure-ad-auth-server/
YAEGASHI Takeshi
November 13, 2021
More Decks by YAEGASHI Takeshi
See All by YAEGASHI Takeshi
Microsoft Entra IDとAzure App Serviceによる エンタープライズWebアプリ・サービスのプラットフォーム構築
yaegashi
0
190
Microsoft Entra/Azure による Redmine の企業内利用向けカスタマイズと運用
yaegashi
0
680
バンダイナムコスタジオにおけるクラウドネイティブなゲーム開発スタジオの挑戦
yaegashi
2
1.7k
Bandai Namco DX Cloud Studios の全貌
yaegashi
0
310
DX(開発者体験)の向上を目指す ゲーム開発インフラの進化とDX(デジタル変革)
yaegashi
0
230
ゲーム開発におけるクラウドネイティブな CI/CD の最新動向
yaegashi
0
600
rclonefunction
yaegashi
0
960
大規模ゲーム開発を支えるAzure DevOpsによるクラウドネイティブなCI/CDの紹介
yaegashi
5
2.9k
社員全員が利用できるWebダッシュボードをAzureで作ってみた話
yaegashi
3
2.9k
Other Decks in Technology
See All in Technology
What the customer really needed
kawaguti
PRO
3
220
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
5
25k
Cloudflare Workers 向けアプリを C# で構築する ~WASM Native AOT への道~
nenonaninu
1
940
リアーキテクチャ後の障害ゼロを目指したShadow Testingの取り組み
nihonbuson
PRO
1
170
Vibe Coding で作ったプロダクトをどう安全に動かすか / How to Safely Run Products Built with Vibe Coding
glidenote
0
460
.NET WebAssemblyで実現するクライアントサイドAI推論:NuGetからViteまで、2つのエコシステムを繋ぐビルド戦略
yamachu
1
430
今話題のAI「Jev」って何? 宇宙最速で学ぶ会
minorun365
PRO
30
18k
Genieを崇めよ
kameitomohiro
0
170
人間はどの意思決定を手放せるのか
kawasima
15
7.9k
aws-iot-platform-architecture-use-cases.pdf
ma2shita
0
500
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
1
2.6k
AIに任せた品質は、誰が見立てるのか - AI時代のテストマネジメント
nakanao
3
2.7k
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
6.3k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Producing Creativity
orderedlist
PRO
348
41k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
280
Design in an AI World
tapps
1
330
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
610
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Chasing Engaging Ingredients in Design
codingconduct
0
320
Transcript
Azure AD対応の 認証プロキシサーバを Goで作っている話 2021/11/13 Go Conference 2021 Autumn 八重樫
剛史 Takeshi Yaegashi
自己紹介 八重樫 剛史 Takeshi Yaegashi 株式会社バンダイナムコスタジオ所属 Linux・Unix・OSS・Go 言語が好きなエンジニア 組み込みシステム開発、ゲームサーバ開発、 CI/CD
インフラ開発、 開発環境のクラウドシフトなどの業務に従事 活動場所 ホームページ・ブログ https://l0w.dev GitHub https://github.com/yaegashi Twitter https://twitter.com/hogegashi
クラウドの静的ウェブアプリ (SWA) • 静的ウェブアプリの流行 ◦ Hugo のような Static Site Generator
で作る静的ウェブサイト ◦ TypeScript や React で作るシングルページアプリ • 静的ウェブアプリに適したクラウドサービス ◦ GitHub Pages ◦ GitLab Pages ◦ Netlify ◦ Azure Static Web Apps / App Service ◦ AWS Amplify ◦ Google Firebase Hosting
クラウドの社内向け静的ウェブアプリ • 全てのユーザーについて認証・認可が必要 ◦ IPアドレス・イントラネット・ VPNに頼るアクセス制御は甘え (ゼロトラストセキュリティ ) ◦ 特定の会社や部署だけに見せる、といった細かいレベルで制御したいことがよくある
◦ Web サイトの一部分だけに認証をかけたいということも • 細かい認可のニーズに対応できるサービスがない ◦ 例えばAzure App Serviceにおいてはユーザー認証なら自動的にやってくれるが (Easy-Auth)、 認可についてはWebアプリが自分自身で判断する必要がある ◦ アプリごとになんらかの認可のためのコードを書く必要があり敷居が高い ◦ 認証だけでなく認可までコードを書かずに設定できる Webサーバがほしい
pswa - Protected Static Web Apps • Go による認証・認可つきの Web
コンテンツ・プロキシサーバ • Simple web content/proxy server that embodies enterprise zero trust security • https://github.com/yaegashi/pswa • Docker image: ghcr.io/yaegashi/pswa
pswa 特徴 • Azure Active Directory の OpenID Connect によるユーザーの認証・認可
(Azure AD 以外の IdP にも対応を検討中) • 認証ユーザーの ID トークンに含まれる groups クレームからロールを定義 ロールを使ってルートごとのアクセス認可設定 • ルートごとにリライト・リダイレクト・プロキシが設定可能 • /index.html などへのフォールバックが設定可能 シングルページアプリのホストにも利用できる
pswa.config.json - 設定ファイルの例 • routes: ルートパスとアクセスを許可 するロール、リライトやリダイレクトな どの処理を定義 • roles:
ロールの名前とそれに属する AzureAD グループのオブジェクトIDを 定義 • Azure Static Web Apps で使用する staticwebapps.config.json に似せた { "routes": [ { "route": "/admin/*", "allowedRoles": ["admin"] }, { "route": "/internal/*", "allowedRoles": ["authenticated"] }, { "route": "/api/*", "proxy": "http://backend:8080/api" } ], "roles": [ { "role": "admin", "members": [ "34a36796-6043-4dea-85e1-c6ad121a54d4", "06fe36df-51ab-49d9-aa3e-2b0034c2cbd1", "5bafeeac-804c-4ea4-95c6-11696535c8cb" ] } ] }
pswa - デモ • https://pswademo1.azurewebsites.net/ • Azure App Service の
Linux B1 に ghcr.io/yaegashi/pswa コンテナをデプロイ • Hugo で作った静的サイトを Visual Studio Code 拡張でアップロード
pswa のコンポーネント • github.com/coreos/go-oidc - OpenID Connect RP ◦ IdP
の .well-known/openid-configuration を取得してエンドポイントを自動設定 ◦ JWKS による ID トークンの署名検証 • github.com/gobwas/glob - Route path pattern matching ◦ "*.{jpg,gif,png}" のようなパターンマッチは標準ライブラリではできない • go.uber.org/zap - Logger • github.com/felixge/httpsnoop - HTTP access logging • github.com/gorilla/sessions - Session cookie store
pswa 開発進捗 • 典型的な登壇ドリブン開発(CFPを出してから考える) • 構想は一年以上、開発期間はまだ一週間 • 各所に明確なニーズがあるので2021年中に完成させたい
おわり • 認証・認可機能が充実した Web コンテンツ・プロキシサーバを作ってます • コメントやプルリクいただけるとうれしいです • ご清聴ありがとうございました