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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takashi Shinohara
July 25, 2020
Programming
950
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
More Decks by Takashi Shinohara
See All by Takashi Shinohara
Microsoft Build 2026 振り返り会 / Recap Microsoft Build 2026
karamem0
0
110
Microsoft 365 Copilot API を試してみる / Trying out Microsoft 365 Copilot APIs
karamem0
0
140
Microsoft 365 の認証と承認を理解する / Understanding Microsoft 365 Authentication and Authorization
karamem0
0
230
Power Automate のパフォーマンス改善レシピ / Power Automate Performance Improvement Recipes
karamem0
0
540
どっちの API SHOW?SharePoint 開発における SharePoint REST API Microsoft Graph API の違い / Which API show? Differences between Microsoft Graph API and SharePoint REST API
karamem0
0
2.3k
Microsoft Ignite 2024 最新情報!Microsoft 365 Agents SDK 概要 / Microsoft Ignite 2024 latest news Microsoft 365 Agents SDK overview
karamem0
0
620
徹底解説!Microsoft 365 Copilot の拡張機能 / Complete guide to Microsoft 365 Copilot extensions
karamem0
1
4.7k
Microsoft Search の Graph コネクタ ハンズオン / Handson for Graph Connector of Microsoft Search
karamem0
0
360
いまだから「検索」を語ろう! SharePoint FAST Search から Microsoft Search セマンティックインデックスまで / Let's talk about search now
karamem0
4
1.9k
Other Decks in Programming
See All in Programming
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
130
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
1.1k
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
440
Claude Team Plan導入・ガイド
tk3fftk
0
250
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
160
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
140
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
210
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
480
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
230
React本体のコードリーディング
high_g_engineer
0
120
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.7k
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
9
5.9k
Featured
See All Featured
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
310
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Agile that works and the tools we love
rasmusluckow
331
22k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
940
sira's awesome portfolio website redesign presentation
elsirapls
0
310
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
We Have a Design System, Now What?
morganepeng
55
8.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Skip the Path - Find Your Career Trail
mkilby
1
170
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 を使うことで組織のさまざまなリソースを操作 することができ、エンタープライズ アプリケーションの構築を容易にします。
ありがとうございました