概要
Microsoft Graph API を利用してAzureActiveDirectoryから全ユーザ情報を取得するための Python プログラムです。
Access Token の取得については、このプログラム を使用しています。
全グループ情報の取得については こちら を参照ください。
実行環境
macOS Big Sur 11.1
python 3.8.3
実行プログラム
GetAzureADUsers.py
import json
import requests
import argparse
import time
from GetAzureAccessToken import get_azure_access_token # Azureアクセスのためのアクセストークンの取得オリジナル関数
# 全User情報の取得
def get_ad_all_users(access_token):
# Microsoft Graphを実行するためのヘッダ情報
headers = {
'Authorization': 'Bearer %s' % access_token
}
# 全メンバーの id, ddisplayName の取得のURL
UsersGet_URL = "https://graph.microsoft.com/v1.0/users?$count=true&$select=id,displayName,mail&$orderby=displayName"
# 全Users情報取得のGetリクエスト
res1 = requests.get(
UsersGet_URL,
headers=headers
)
# requrest処理をクローズする
res1.close
# res1をjsonファイルに整形しユーザ情報の取得
print("取得した全ユーザ情報:")
for num, item in enumerate(res1.json()['value']):
print(item)
return num+1
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='AzureActiveDirectoryの全User情報の取得')
args = parser.parse_args()
start = time.time()
access_token = get_azure_access_token() # Access_tokenの取得
num = get_ad_all_users(access_token) # 全ユーザ情報の取得
get_time = time.time() - start
print("")
print(f"全ユーザ数:{num}")
print("取得時間:{0}".format(get_time) + " [sec]")
print("")
プログラムの実行
最初にヘルプを表示してみます。
$ python GetAzureADUsers.py -h
usage: GetAzureADUsers.py [-h]
AzureActiveDirectoryの全User情報の取得
optional arguments:
-h, --help show this help message and exit
では、全ユーザ情報を取得してみます。
$ python GetAzureADUsers.py
取得した全ユーザ情報:
中略
{'id': 'c3333333-e7e7-4949-8989-5539d465ffff', 'displayName': '山田 太郎', 'mail': 'yamada@hogehoge.com'}
{'id': '25999999-c8c8-4242-baab-e477b1990000', 'displayName': '鈴木 一郎', 'mail': 'suzuki@hogehoge.com'}
{'id': '3f666666-e5e5-4444-8558-0fe4ef0cceee', 'displayName': '木下 藤吉', 'mail': 'kinoshita@hogehoge.com'}
中略
全ユーザ数:100
取得時間:0.7425880432128906 [sec]
参考情報
以下の情報を参考にさせていただきました。感謝いたします。
Azure AD ユーザーアカウントの棚卸しに便利なスクリプト
Microsoft Graph を使ってみよう : Graph エクスプローラー