Microsoft Graph for Office 365 - 身份驗證路線圖和訪問令牌
部落格地址:http://blog.csdn.net/FoxDave
本篇我們介紹並展望Microsoft Graph的身份驗證狀況,特別是獲取訪問令牌的部分。
任何對Microsoft Graph的請求都需要進行正確地認證,即包括一個訪問令牌。Microsoft Graph中的訪問令牌是一個base 64編碼的JSON web token (JWT),它必須通過Azure AD給出。
對於Azure AD有兩個主要的認證流程:
- 使用者代理 (app+user)
- 僅應用程式 (app-only)
總體步驟如下:
- 在Azure AD中註冊應用程式
- 配置/授予許可權
- 獲取訪問令牌
- 使用訪問令牌呼叫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/解碼示例令牌。
- V1 sample token
eyJhdWQiOiJlZjFkYTlkNC1mZjc3LTRjM2UtYTAwNS04NDBjM2Y4MzA3NDUiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTUyMjIyOS8iLCJpYXQiOjE1MzcyMzMxMDYsIm5iZiI6MTUzNzIzMzEwNiwiZXhwIjoxNTM3MjM3MDA2LCJhY3IiOiIxIiwiYWlvIjoiQVhRQWkvOElBQUFBRm0rRS9RVEcrZ0ZuVnhMaldkdzhLKzYxQUdyU091TU1GNmViYU1qN1hPM0libUQzZkdtck95RCtOdlp5R24yVmFUL2tES1h3NE1JaHJnR1ZxNkJuOHdMWG9UMUxrSVorRnpRVmtKUFBMUU9WNEtjWHFTbENWUERTL0RpQ0RnRTIyMlRJbU12V05hRU1hVU9Uc0lHdlRRPT0iLCJhbXIiOlsid2lhIl0sImFwcGlkIjoiNzVkYmU3N2YtMTBhMy00ZTU5LTg1ZmQtOGMxMjc1NDRmMTdjIiwiYXBwaWRhY3IiOiIwIiwiZW1haWwiOiJBYmVMaUBtaWNyb3NvZnQuY29tIiwiZmFtaWx5X25hbWUiOiJMaW5jb2xuIiwiZ2l2ZW5fbmFtZSI6IkFiZSAoTVNGVCkiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMjIyNDcvIiwiaXBhZGRyIjoiMjIyLjIyMi4yMjIuMjIiLCJuYW1lIjoiYWJlbGkiLCJvaWQiOiIwMjIyM2I2Yi1hYTFkLTQyZDQtOWVjMC0xYjJiYjkxOTQ0MzgiLCJyaCI6IkkiLCJzY3AiOiJ1c2VyX2ltcGVyc29uYXRpb24iLCJzdWIiOiJsM19yb0lTUVUyMjJiVUxTOXlpMmswWHBxcE9pTXo1SDNaQUNvMUdlWEEiLCJ0aWQiOiJmYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkiLCJ1bmlxdWVfbmFtZSI6ImFiZWxpQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJGVnNHeFlYSTMwLVR1aWt1dVVvRkFBIiwidmVyIjoiMS4wIn0=.D3H6pMUtQnoJAGq6AHd - V2 sample token
eyJhdWQiOiI2ZTc0MTcyYi1iZTU2LTQ4NDMtOWZmNC1lNjZhMzliYjEyZTMiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3L3YyLjAiLCJpYXQiOjE1MzcyMzEwNDgsIm5iZiI6MTUzNzIzMTA0OCwiZXhwIjoxNTM3MjM0OTQ4LCJhaW8iOiJBWFFBaS84SUFBQUF0QWFaTG8zQ2hNaWY2S09udHRSQjdlQnE0L0RjY1F6amNKR3hQWXkvQzNqRGFOR3hYZDZ3TklJVkdSZ2hOUm53SjFsT2NBbk5aY2p2a295ckZ4Q3R0djMzMTQwUmlvT0ZKNGJDQ0dWdW9DYWcxdU9UVDIyMjIyZ0h3TFBZUS91Zjc5UVgrMEtJaWpkcm1wNjlSY3R6bVE9PSIsImF6cCI6IjZlNzQxNzJiLWJlNTYtNDg0My05ZmY0LWU2NmEzOWJiMTJlMyIsImF6cGFjciI6IjAiLCJuYW1lIjoiQWJlIExpbmNvbG4iLCJvaWQiOiI2OTAyMjJiZS1mZjFhLTRkNTYtYWJkMS03ZTRmN2QzOGU0NzQiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhYmVsaUBtaWNyb3NvZnQuY29tIiwicmgiOiJJIiwic2NwIjoiYWNjZXNzX2FzX3VzZXIiLCJzdWIiOiJIS1pwZmFIeVdhZGVPb3VZbGl0anJJLUtmZlRtMjIyWDVyclYzeERxZktRIiwidGlkIjoiNzJmOTg4YmYtODZmMS00MWFmLTkxYWItMmQ3Y2QwMTFkYjQ3IiwidXRpIjoiZnFpQnFYTFBqMGVRYTgyUy1JWUZBQSIsInZlciI6IjIuMCJ9.pj4N-w_3Us9DrBLfpCt
相關文章
- Microsoft Graph for Office 365 - 分頁和NextLinkROS
- Microsoft Graph for Office 365概覽ROS
- Microsoft Graph for Office 365請求語法ROS
- Microsoft Graph資源管理器 for Office 365ROS
- Microsoft Graph for Office 365 - 查詢引數(二)ROS
- Microsoft Graph for Office 365 - 查詢引數(一)ROS
- Microsoft 365 for Mac(原Office 365)ROSMac
- 為什麼我們要學習Microsoft Graph for Office 365ROS
- Microsoft Graph for Office 365 - Azure AD應用程式許可權ROS
- Microsoft Office 365 Mac版ROSMac
- office辦公套件:Microsoft 365 for Mac(原Office 365) v16.72套件ROSMac
- Microsoft 365 for Mac(Office365)16.78.3啟用版ROSMac
- office辦公套件:Microsoft 365 for Mac(原Office 365) v16.71啟用版套件ROSMac
- Microsoft 365 for Mac(Office 365)v16.80正式啟用版ROSMac
- Microsoft 365 for Mac(Office 365啟用工具)正式啟用版ROSMac
- Microsoft 365 for Mac(Office 365)v16.89正式啟用版ROSMac
- Microsoft 365 for Mac(原Office 365)v16.77正式啟用版ROSMac
- Microsoft 365 for Mac(原Office 365) v16.55正式啟用版ROSMac
- 阿里雲身份管理與訪問控制之信任管理:角色扮演,臨時身份和安全令牌阿里
- Microsoft Office for Mac 2024 (Office 365) 16.84 Universal 預覽版下載ROSMac
- 微軟改名部又出手:Office 365正在悄悄更名為Microsoft 365微軟ROS
- Microsoft Graph for Office 365 - V2版本終結點上的Azure AD應用程式ROS
- Microsoft Graph for Office 365 - V1版本終結點上的Azure AD應用程式ROS
- Microsoft Office 365 v16.78正式啟用版ROS
- 瞭解如何使用JSON Web令牌(JWT)實現訪問授權驗證JSONWebJWT
- Office 365 官宣更名為 Microsoft 365,AI 雲新功能搶先預覽ROSAI
- 邊緣認證和與令牌無關的身份傳播
- Gitlab怎麼使用訪問令牌訪問Gitlab
- 騰訊企業郵箱(企業微信郵箱)遷移到microsoft 365(office 365)ROS
- Microsoft 365正式啟用版+Microsoft 365許可ROS
- asp.core 同時相容JWT身份驗證和Cookies 身份驗證兩種模式JWTCookie模式
- Microsoft 365應用將取代Office應用,成為體驗微軟服務的新中心ROS微軟
- 身份證驗證工具類
- Microsoft 365正式啟用版+Microsoft 365啟用許可ROS
- 譯見|構建使用者管理微服務(五):使用 JWT 令牌和 Spring Security 來實現身份驗證微服務JWTSpring
- Microsoft 365啟用最新版+Microsoft 365啟用許可ROS
- 連線到一個Office 365組 - 配置方式
- 如何解決兩因素和多因素身份驗證的大問題