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
310
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
710
バンダイナムコスタジオにおけるクラウドネイティブなゲーム開発スタジオの挑戦
yaegashi
2
1.8k
Bandai Namco DX Cloud Studios の全貌
yaegashi
0
360
DX(開発者体験)の向上を目指す ゲーム開発インフラの進化とDX(デジタル変革)
yaegashi
0
240
ゲーム開発におけるクラウドネイティブな CI/CD の最新動向
yaegashi
0
610
rclonefunction
yaegashi
0
960
大規模ゲーム開発を支えるAzure DevOpsによるクラウドネイティブなCI/CDの紹介
yaegashi
5
3k
社員全員が利用できるWebダッシュボードをAzureで作ってみた話
yaegashi
3
2.9k
Other Decks in Technology
See All in Technology
外国人エンジニアがVueプロトタイプで仕様を合わせている話 / Vue Fes Japan 2026 LT
eluwing
0
160
Microsoft のサポート ライフサイクルを理解する
murachiakira
PRO
0
200
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
320
AWS DevOps Agentはどこまで任せられるか 〜機能の現在地と、機能拡張の実践〜
nyankotaro
0
230
Vue.jsのGitHubから学ぶ意思決定
yut0naga1_fa
1
160
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
4
690
AWSセキュリティで活用するAI機能
cmusudakeisuke
1
300
sue445's proposals 2026
sue445
0
140
What Is JetBrains Air
x5gtrn
PRO
0
170
シンプルな設定ファイルで実現する AWS IAM Identity Center の ユーザー管理Terraformフレームワークを公開しました / Simplifying AWS IAM Identity Center User Management: An Open-Source Terraform Framework
yamaguchitk333
0
290
FinOps Agentが生んだ技術負債:コスト自動調査の落とし穴と解消までの道のり
oasis1994liveforever
3
290
Claude Code on Bedrock で統制をかける小ネタ集/claude-code-bedrock-governance-tips
emiki
1
12k
Featured
See All Featured
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
370
Accessibility Awareness
sabderemane
1
260
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
560
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
320
Are puppies a ranking factor?
jonoalderson
2
4.1k
Between Models and Reality
mayunak
4
500
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
360
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
590
WENDY [Excerpt]
tessaabrams
14
40k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
310
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 コンテンツ・プロキシサーバを作ってます • コメントやプルリクいただけるとうれしいです • ご清聴ありがとうございました