3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Python による Microsoft Graph API を利用した全ユーザ情報を取得してみました

Last updated at Posted at 2021-01-22

概要

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 エクスプローラー

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?