Microsoft Graph for Office 365 - 身份驗證路線圖和訪問令牌

Justin-Liu發表於2019-01-14

部落格地址:http://blog.csdn.net/FoxDave
本篇我們介紹並展望Microsoft Graph的身份驗證狀況,特別是獲取訪問令牌的部分。
在這裡插入圖片描述
任何對Microsoft Graph的請求都需要進行正確地認證,即包括一個訪問令牌。Microsoft Graph中的訪問令牌是一個base 64編碼的JSON web token (JWT),它必須通過Azure AD給出。

對於Azure AD有兩個主要的認證流程:

  1. 使用者代理 (app+user)
  2. 僅應用程式 (app-only)

總體步驟如下:

  1. 在Azure AD中註冊應用程式
  2. 配置/授予許可權
  3. 獲取訪問令牌
  4. 使用訪問令牌呼叫Microsoft Graph

在後續的文章中我們還會對這些步驟進行詳細的介紹。
既然我們要去獲取訪問令牌,我們先討論一下Microsoft Graph身份認證的現在和未來。注意我們介紹的內容中有一些元素目前在支援生產環境的預覽版庫中。

目前狀態

由於目前有多個門戶可以註冊應用程式,繼而有多套客戶端SDK,多個Azure AD終結點,Microsoft Graph的身份認證包含了一些決策。瞭解我們的目標受眾是一個關鍵的決策點,因為它影響了我們可以使用或不可以使用哪些元件。微軟推薦我們從相對新的MSAL和Azure AD v2版本的終結點開始。ADAL和v1版本的終結點目前只支援MSAL/Azure AD v2版本的終結點中還不支援的有限數量的認證場景,但這些差異將會很快被解決。更多關於兩個版本終結點的差異請訪問此連結
在這裡插入圖片描述

未來狀態

未來對於Microsoft Graph的認證請參看下圖。Azure AD v2版本的終結點可以發行v1和v2版本的訪問令牌。並且Azure Portal是唯一的用於註冊應用程式的地址。總體來說未來的狀態通過降低決策點並提供對廣泛需求的支援來簡化到Microsoft Graph的認證過程。
在這裡插入圖片描述

關於獲取訪問令牌的內容我們會在之後的文章中詳細介紹,這裡我們先簡單看一下下面的訪問令牌示例:
在這裡插入圖片描述

注意:Azure AD訪問令牌是一個票據令牌,意思是任何持有該令牌的人或應用程式都可以使用它以許可的許可權去呼叫Microsoft Graph。因此我們必須確保安全傳輸和儲存以防止意外被使用。
乍一看這些訪問令牌的格式好像有些讀不明白,但是我們可以使用很多工具對它進行解碼。例如Azure AD團隊提供了一個網站https://jwt.io/。下面是解碼後的令牌的示例。
在這裡插入圖片描述
這對診斷問題非常有幫助。關於訪問令牌架構的更多資訊,可以戳這裡

練習

通過http://jwt.ms/解碼示例令牌。

  1. V1 sample token
    eyJhdWQiOiJlZjFkYTlkNC1mZjc3LTRjM2UtYTAwNS04NDBjM2Y4MzA3NDUiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTUyMjIyOS8iLCJpYXQiOjE1MzcyMzMxMDYsIm5iZiI6MTUzNzIzMzEwNiwiZXhwIjoxNTM3MjM3MDA2LCJhY3IiOiIxIiwiYWlvIjoiQVhRQWkvOElBQUFBRm0rRS9RVEcrZ0ZuVnhMaldkdzhLKzYxQUdyU091TU1GNmViYU1qN1hPM0libUQzZkdtck95RCtOdlp5R24yVmFUL2tES1h3NE1JaHJnR1ZxNkJuOHdMWG9UMUxrSVorRnpRVmtKUFBMUU9WNEtjWHFTbENWUERTL0RpQ0RnRTIyMlRJbU12V05hRU1hVU9Uc0lHdlRRPT0iLCJhbXIiOlsid2lhIl0sImFwcGlkIjoiNzVkYmU3N2YtMTBhMy00ZTU5LTg1ZmQtOGMxMjc1NDRmMTdjIiwiYXBwaWRhY3IiOiIwIiwiZW1haWwiOiJBYmVMaUBtaWNyb3NvZnQuY29tIiwiZmFtaWx5X25hbWUiOiJMaW5jb2xuIiwiZ2l2ZW5fbmFtZSI6IkFiZSAoTVNGVCkiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMjIyNDcvIiwiaXBhZGRyIjoiMjIyLjIyMi4yMjIuMjIiLCJuYW1lIjoiYWJlbGkiLCJvaWQiOiIwMjIyM2I2Yi1hYTFkLTQyZDQtOWVjMC0xYjJiYjkxOTQ0MzgiLCJyaCI6IkkiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJsM19yb0lTUVUyMjJiVUxTOXlpMmswWHBxcE9pTXo1SDNaQUNvMUdlWEEiLCJ0aWQiOiJmYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkiLCJ1bmlxdWVfbmFtZSI6ImFiZWxpQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJGVnNHeFlYSTMwLVR1aWt1dVVvRkFBIiwidmVyIjoiMS4wIn0=.D3H6pMUtQnoJAGq6AHd
  2. V2 sample token
    eyJhdWQiOiI2ZTc0MTcyYi1iZTU2LTQ4NDMtOWZmNC1lNjZhMzliYjEyZTMiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3YyLjAiLCJpYXQiOjE1MzcyMzEwNDgsIm5iZiI6MTUzNzIzMTA0OCwiZXhwIjoxNTM3MjM0OTQ4LCJhaW8iOiJBWFFBaS84SUFBQUF0QWFaTG8zQ2hNaWY2S09udHRSQjdlQnE0L0RjY1F6amNKR3hQWXkvQzNqRGFOR3hYZDZ3TklJVkdSZ2hOUm53SjFsT2NBbk5aY2p2a295ckZ4Q3R0djMzMTQwUmlvT0ZKNGJDQ0dWdW9DYWcxdU9UVDIyMjIyZ0h3TFBZUS91Zjc5UVgrMEtJaWpkcm1wNjlSY3R6bVE9PSIsImF6cCI6IjZlNzQxNzJiLWJlNTYtNDg0My05ZmY0LWU2NmEzOWJiMTJlMyIsImF6cGFjciI6IjAiLCJuYW1lIjoiQWJlIExpbmNvbG4iLCJvaWQiOiI2OTAyMjJiZS1mZjFhLTRkNTYtYWJkMS03ZTRmN2QzOGU0NzQiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhYmVsaUBtaWNyb3NvZnQuY29tIiwicmgiOiJJIiwic2NwIjoiYWNjZXNzX2FzX3VzZXIiLCJzdWIiOiJIS1pwZmFIeVdhZGVPb3VZbGl0anJJLUtmZlRtMjIyWDVyclYzeERxZktRIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidXRpIjoiZnFpQnFYTFBqMGVRYTgyUy1JWUZBQSIsInZlciI6IjIuMCJ9.pj4N-w_3Us9DrBLfpCt
    在這裡插入圖片描述

相關文章