LoginSignup
3
4

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

実行プログラム

GetAzureADGroups.py

import json
import requests
import argparse
import time
from GetAzureAccessToken import get_azure_access_token  # Azureアクセスのためのアクセストークンの取得オリジナル関数


# 全User情報の取得
def get_ad_all_groups(access_token):

    # Microsoft Graphを実行するためのヘッダ情報
    headers = {
        'Authorization': 'Bearer %s' % access_token
    }

    # 全グループの id, ddisplayName, mail の取得のURL
    UsersGet_URL = "https://graph.microsoft.com/v1.0/groups?$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の全Group情報の取得')
    args = parser.parse_args()

    start = time.time()
    access_token = get_azure_access_token()
    num = get_ad_all_groups(access_token)
    get_time = time.time() - start

    print("")
    print(f"全グループ数:{num}")
    print("取得時間:{0}".format(get_time) + " [sec]")
    print("")

プログラムの実行

最初にヘルプを表示してみます。

$ python GetAzureADGroups.py -h
usage: GetAzureADGroups.py [-h]

AzureActiveDirectoryの全Group情報の取得

optional arguments:
  -h, --help  show this help message and exit

では、全グループ情報を取得してみます。

$ python GetAzureADGroups.py
取得した全グループ情報:
    中略
{'id': 'ae666666-9196-4586-8788-5521024bbbbb', 'displayName': 'PSG0', 'mail': None}
{'id': 'b8811111-2986-4615-8823-11bbdd56d000', 'displayName': 'PSG1', 'mail': None}
{'id': 'de999999-5059-4656-9512-7800bd514444', 'displayName': 'PSG2', 'mail': None}
    中略

全グループ数:28
取得時間:0.5144941806793213 [sec]

参考情報

以下の情報を参考にさせていただきました。感謝いたします。

Azure AD ユーザーアカウントの棚卸しに便利なスクリプト

Microsoft Graph を使ってみよう : Graph エクスプローラー

3
4
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
4