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
Azure AD でセキュリティ保護された Web アプリケーションで Microsoft G...
Search
Takashi Shinohara
July 25, 2020
Programming
0
760
Azure AD でセキュリティ保護された Web アプリケーションで Microsoft Graph を使用する / Using Microsoft Graph in Azure AD secured web applications
.NET ラボ 勉強会 2020 年 7 月 (
https://dotnetlab.connpass.com/event/181076
) に登壇したときのスライドです。
Takashi Shinohara
July 25, 2020
Tweet
Share
More Decks by Takashi Shinohara
See All by Takashi Shinohara
Microsoft Ignite 2024 最新情報!Microsoft 365 Agents SDK 概要 / Microsoft Ignite 2024 latest news Microsoft 365 Agents SDK overview
karamem0
0
300
徹底解説!Microsoft 365 Copilot の拡張機能 / Complete guide to Microsoft 365 Copilot extensions
karamem0
1
3.3k
Microsoft Search の Graph コネクタ ハンズオン / Handson for Graph Connector of Microsoft Search
karamem0
0
72
いまだから「検索」を語ろう! SharePoint FAST Search から Microsoft Search セマンティックインデックスまで / Let's talk about search now
karamem0
3
1.4k
徹底解説!Power Platform 導入の成功事例から見る DX 推進のコツ / Tips for DX promotion from Power Platform case studies
karamem0
0
5.1k
どうする Power Pages?Web 開発者からみる Power Pages / How to deal with Power Pages
karamem0
0
1.2k
Fluent UI を理解する / Understanding Fluent UI
karamem0
0
750
Microsoft Teams の 会議アプリ開発のはじめかた / How to start Microsoft Teams app development
karamem0
0
3.6k
Web API 開発を加速しよう - Avanade Beef のご紹介 / Accelerate your web API - development introducing Avanade Beef
karamem0
0
2.7k
Other Decks in Programming
See All in Programming
Grafana Loki によるサーバログのコスト削減
mot_techtalk
1
150
Rails 1.0 のコードで学ぶ find_by* と method_missing の仕組み / Learn how find_by_* and method_missing work in Rails 1.0 code
maimux2x
1
120
Jakarta EE meets AI
ivargrimstad
0
270
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
2
240
2025.2.14_Developers Summit 2025_登壇資料
0101unite
0
180
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the benefits are huge)
lmammino
1
150
PEPCは何を変えようとしていたのか
ken7253
2
160
PRレビューのお供にDanger
stoticdev
1
230
「個人開発マネタイズ大全」が教えてくれたこと
bani24884
1
160
もう少しテストを書きたいんじゃ〜 #phpstudy
o0h
PRO
16
3.8k
CloudNativePGを布教したい
nnaka2992
0
110
なぜイベント駆動が必要なのか - CQRS/ESで解く複雑系システムの課題 -
j5ik2o
14
4.6k
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
Into the Great Unknown - MozCon
thekraken
35
1.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
It's Worth the Effort
3n
184
28k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Invisible Side of Design
smashingmag
299
50k
A designer walks into a library…
pauljervisheath
205
24k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
430
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Transcript
Azure AD でセキュリティ保護された Web アプリケー ションで Microsoft Graph を使用する 2020/7/25
篠原 敬志 (@karamem0)
自己紹介 Name 篠原敬志 (Takashi Shinohara) Company アバナード株式会社 シニアコンサルタント Award Microsoft
MVP for Office Development (2018-) Twitter @karamem0 Facebook t.shinohara.56 Blog https://blog.karamem0.jp
Japan M365 Dev User Group 勉強会開催します!
本セッションについて de:code 2020 の MVP パーソナル スポンサーとして提供したサンプル コードにつ いて前提の話から含めて解説します。 サンプル
コードと説明は GitHub から入手可能です。 https://github.com/karamem0/decode2020
Azure の Web アプリをセキュリティ保護する Azure App Service および Azure Functions
ではコーディングなしで認証と承認を有 効にする組み込みの機能があります。 認証を実装するためにはセキュリティに対する深い理解が必要となりますが、この 機能を使うことで、開発者はその労力を割くことなく、ビジネス価値を提供するこ とに集中することはできます。 この機能は "Easy Auth" と呼ばれることがあります。
認証/承認を提供するサービス
認証/承認のアーキテクチャ (Windows) https://docs.microsoft.com/ja-jp/azure/app-service/overview-authentication-authorization
認証/承認のエンドポイント 種類 エンドポイント ログイン /.auth/login/<provider> ログアウト /.auth/logout トークンの取得 (*) /.auth/me
トークンの更新 (*) /.auth/refresh (*) トークン ストアが有効である必要があります
DEMO Azure AD の認証/承認を有効にする
Azure AD による Web アプリのセキュリティ保護 Azure AD をプロバイダーとして Web アプリをセキュリティ保護する場合、Azure
AD に新しいアプリを作成が作成され、OpenID Connect による認証が行われます。 認証後の各種トークンは HTTP 要求ヘッダーまたは "/.auth/me" へのリクエストに よって取得できます。このトークンを使うことで、Microsoft Graph をはじめとし たさまざまなサービスに追加のアクセス許可の要求を行うことができます。
トークンの種類 種類 説明 ID トークン ユーザーの認証情報を含むトークン アクセス トークン 特定のリソースへのアクセス許可を含むトークン リフレッシュ
トークン アクセス トークンを更新するためのトークン
JWT (Json Web Token) eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNT E2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c Base64 エンコードされたヘッダー { "alg":
"HS256", "typ": "JWT" } Base64 エンコードされたペイロード { "sub": "1234567890", "name": "John Doe", "iat": 1516239022 } ヘッダーとペイロードからなる署名
アクセス トークンを取得する OpenID Connect による認証のときに取得されるアクセス トークンには Microsoft Graph などのサービスへのアクセス許可は含まれません。Microsoft Graph
を使う ためにはアクセス トークンを取得しなおす必要があります。 今回のサンプル コードではリフレッシュ トークンを使ってアクセス トークンを更 新する方法を使います。アクセス トークンを取得する方法は他にも存在します。
DEMO サンプル コードを動かしてみる
まとめ Azure の Web アプリケーションは Azure AD で簡単に認証をかけられます。 Azure AD
の認証情報を使って Microsoft Graph をはじめとした API にアクセスする ことが可能です。Microsoft Graph を使うことで組織のさまざまなリソースを操作 することができ、エンタープライズ アプリケーションの構築を容易にします。
ありがとうございました