2017-01-20

Azure Active Directory - Part 9 ( Azure AD Graph API)

Azure AD Graph API 提供 REST API 來存取 Azure AD,應用程式可以使用 Graph API 來進行 AAD 的相關操作(e.g. 目錄及物件的 CRUD)


Graph API 特性

  1. REST API endpoint

    • 是 OData RESTful 服務
    • 使用標準 HTTP request
    • 支援 request 與 response 使用 xml 或是 json
  2. Azure AD

    • 必需在 request Authorization header 中加上 JSON Web Token (JWT)
      • 可使用 OAuth 2.0 來取得 token
      • 可以經由 AAD token endpoint 驗證通過取得 token
  3. 角色基礎授權 (RBAC - Role-Base Access Control )

  4. 差異查詢

  5. 目錄延伸模組

  6. 權限範圍保護

    • AAD Graph API 會公開權限範圍,以啟用 AAD 資料安全存取

建立 Graph API

  • 基於 OData (開放式資料)通訊協定
  • https://graph.windows.net/{tenant-identifier}/{resource-path}?[query-parameters]
  1. 服務根目錄
    • 固定為 https://graph.windows.net
  2. 租用戶識別碼
    • tenant-identifier
    • 已驗證的網域名稱
  3. 資料路徑
    • resource-path
    • 查詢資源名稱(e.g. 使用者,群組...)
    • users/{objectId}users/userPrincipalName`
  4. 查詢參數
    • 使用 ? 來表示查詢參數開始
    • 必需提供 api-version
    • 支援項目:$filter$orderby$expand$top, 和 $format.
    • 暫不支援$count$inlinecount$skip

Graph API 版本

  • api-version 指令版本
  • 可以用數字表示
  • 也可以用 YYYY-MM-DD 表示
  • 預覽功能使用 beta

Graph API metadata

  • 在租用戶識別碼 (tenant-identifier) 加上 $metadata e.g. https://graph.windows.net/GraphDir1.OnMicrosoft.com/$metadata?api-version=1.6
  • 可以取得 CSDL 的 metadata 說明 entity,complex type,property 及 public function and method
  • 如果沒有提供 api-version 會直接使用最新版

Graph Explorer

  • https://graphexplorer.cloudapp.net/
    • 可以使用 Use Demo Company 測試

      2usedemocomp

  • 只能用來查詢資料,無法寫入或是刪除
  • 有 intellisence

    1intellisence

  • 支援 memyorganization
  • Response Headers --> 可用來 debug

    3ResponseHeaders

  • JOSN 檢查資料 有收摺功能

    4json

  • 無法顯示圖片

參考資料

  1. Azure Active Directory 圖形 API
  2. 檢查群組成員資格 (可移轉)
  3. Azure AD Graph API 差異查詢
  4. Azure AD Graph API 目錄結構描述延伸模組
  5. 支援的查詢、篩選和分頁選項 | Graph API 概念

沒有留言:

張貼留言