609 字
3 分鐘
#6 將AAD使用者清單匯到 Google Sheet — 簡單入門Azure AD
雖然Azure AD有後台可以查看使用者資料,但載入滿慢的,有些隱藏欄位也顯示不出來,本篇會說明如何定時將Azure AD的使用者清單匯入到Google Sheet上進行管理。
構想
身為一個AD管理員,我希望可以知道每位使用者的建立日期、密碼修改日期、帳號是否啟用等資訊,因此我們想辦法將Azure AD的這些資料匯入到Google Sheet上。
開通Azure AD權限
同上一篇作法,我們需要在Azure後台註冊一個應用程式,並給予讀取所有使用者的權限User.Read.All,然後申請一組Secret。
Google Sheet
我們先建立一個Google Sheet,並點選擴充功能的Apps Script。

貼上以下程式碼,並輸入相關資訊與使用者欄位。選擇update function,按一下執行,就會開始到Azure AD取得使用者資料填入Google Sheet。使用者有哪些欄位可以用請看微軟文件。

var tenant_id = '<目錄識別碼>';var client_id = '<應用程式識別碼>';var client_secret = '<用戶端密碼>';var sheet_name = '<工作表名稱>';// 要讀取的使用者欄位var cols = { 'displayName': '姓名', 'userPrincipalName': '信箱', 'lastPasswordChangeDateTime': '密碼修改日', 'createdDateTime': '帳號建立日', 'accountEnabled': '帳號啟用'};
function onOpen() { var ui = SpreadsheetApp.getUi(); ui.createMenu('功能') .addItem('更新清單', 'update') .addToUi();}
function update() { // 取得AAD token var url = `https://login.microsoftonline.com/${tenant_id}/oauth2/v2.0/token`; var options = { method: 'POST', payload: { client_id: client_id, client_secret: client_secret, scope: 'https://graph.microsoft.com/.default', grant_type: 'client_credentials', } } var response = UrlFetchApp.fetch(url, options); var token = JSON.parse(response.getContentText())["access_token"];
// 讀取AAD使用者清單 var url = 'https://graph.microsoft.com/v1.0/users?$select=' + Object.keys(cols).join(',') + '&$top=999'; var options = { method: 'GET', headers: { Authorization: 'Bearer ' + token } } var response = UrlFetchApp.fetch(url, options); var items = JSON.parse(response.getContentText())["value"];
// 寫入Google Sheet var ss = SpreadsheetApp.getActiveSpreadsheet(); var s = ss.getSheetByName(sheet_name); s.getRange('A:Z').clearContent(); s.appendRow(Object.values(cols)); items.forEach(function (item) { var result = []; for (const i of Object.keys(cols)) { result.push(item[i]); } s.appendRow(result); });}另外在上面有個onOpen的function,會在Google Sheet上新增一個功能的分類,按下「更新清單」就能夠更新。

這樣就可以在Google Sheet查看到使用者資料了

定時更新
我希望每天可以自動更新這個表單,我們在Apps Script頁面點選觸發條件,右下角新增觸發條件。

填入以下資訊,就可以每天自動更新了。

結語
Google Sheet整合Google Apps Script,可以玩出很多有趣的應用,之後可以再來說名更多功能。