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 でセキュリティ保護された 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
990
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
170
Microsoft 365 Copilot API を試してみる / Trying out Microsoft 365 Copilot APIs
karamem0
0
250
Microsoft 365 の認証と承認を理解する / Understanding Microsoft 365 Authentication and Authorization
karamem0
0
270
Power Automate のパフォーマンス改善レシピ / Power Automate Performance Improvement Recipes
karamem0
0
620
どっちの API SHOW?SharePoint 開発における SharePoint REST API Microsoft Graph API の違い / Which API show? Differences between Microsoft Graph API and SharePoint REST API
karamem0
0
2.6k
Microsoft Ignite 2024 最新情報!Microsoft 365 Agents SDK 概要 / Microsoft Ignite 2024 latest news Microsoft 365 Agents SDK overview
karamem0
0
670
徹底解説!Microsoft 365 Copilot の拡張機能 / Complete guide to Microsoft 365 Copilot extensions
karamem0
1
4.9k
Microsoft Search の Graph コネクタ ハンズオン / Handson for Graph Connector of Microsoft Search
karamem0
0
410
いまだから「検索」を語ろう! SharePoint FAST Search から Microsoft Search セマンティックインデックスまで / Let's talk about search now
karamem0
4
2k
Other Decks in Programming
See All in Programming
ChromeでローカルLLM
ryu1013
0
170
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
300
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
5
1.2k
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
150
Domain-Driven Transformation
hschwentner
2
2.3k
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
100
Seven New Principles of Software Engineering
yegor256
0
370
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
120
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
4.8k
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
160
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
390
Railsバージョンを4倍にした話
optim
0
810
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Between Models and Reality
mayunak
4
530
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
470
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
590
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
720
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
580
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
350
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 を使うことで組織のさまざまなリソースを操作 することができ、エンタープライズ アプリケーションの構築を容易にします。
ありがとうございました