azure-graph-toolkit
Lightweight python library for easily managing Azure AD (Entra ID) users and groups through the Graph API.
Explore the docs (work in progress)»
·
Report Bug
·
Request Feature
Table of Contents
About The Project
There are many great Azure libraries available on GitHub; however, I didn't find one that really suited my needs, so I created this one to simplify and automate daily tasks.
Features:
- Add user to AAD group
- Remove user from AAD group
- Check if user is member of a group
- List all user membership groups
- Reset user password
- Disable/enable user
- Revoke user session tokens
Getting Started
Prerequisites
- Python >= 3.8
- Azure AD App Registration with the following role assigned:
| Least privilege role | Delegation type | Description |
|---|---|---|
GroupMember.ReadWrite.All |
Application | To manage user membership groups. |
GroupMember.Read.All |
Application | List all the groups available. |
User.ReadWrite.All, User Administrator role |
Application | To change user password. |
User.ManageIdentities.All, User.EnableDisableAccount.All |
Application | To disable/enable user. |
User.RevokeSessions.All |
Application | To revoke user session tokens. |
Installation
- Install azure-graph-toolkit library from PyPi
pip install azure-graph-toolkit
- Profit 😁
Usage
Import library modules
from azure_graph_toolkit import graph_auth, graph_utils
App authentication and authorization. Once get the access token is possible to interact with Azure AD Graph API.
tenant_id = '<tenant Id>'
client_id = '<client (App) Id>'
client_secret = '<client secret>'
access_token = graph_auth.get_access_token(tenant_id, client_id, client_secret)
Add user to AAD group:
result = graph_utils.add_user_to_group('mario.rossi@domain.com', 'block-usb-group', access_token)
print(result)
Remove user from AAD group:
result = graph_utils.remove_user_from_group('mario.rossi@domain.com', 'block-usb-group', access_token)
print(result)
Disable user:
result = graph_utils.set_user_account_status('mario.rossi@domain.com', enable_account=False, access_token)
print(result)
Revoke user sessions:
result = graph_utils.user_revoke_sessions('mario.rossi@domain.com', access_token)
print(result)
Example Output
{'status_code': 204, 'message': 'Success. User mario.rossi@domain.com added to AAD group block-usb-group.'}
{'status_code': 404, 'message': 'No AAD group with a name containing \'block-usb-group\' was found. Please try another group name.'}
Roadmap
- List user MFA status
- List user's owned devices
- List devices compliance status
- Add device to group
- Remove device from group
- Create and delete users
- Create and delete groups
Contact
Ivano Dibenedetto - @Linkedin - ivano.dibenedetto7@gmail.com
Project Link: https://github.com/Ivanodib/azure-graph-toolkit
Release files for azure-graph-toolkit 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| azure_graph_toolkit-1.1.1.tar.gz | 23.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| azure_graph_toolkit-1.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 46.4 kB
Release files / azure_graph_toolkit-1.1.1.tar.gz
| Download URL | azure_graph_toolkit-1.1.1.tar.gz |
|---|---|
| Size | 23.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e302942060a09622c3745cf2db7c4f0cdcbbb217ae594c0b1b61ee999dc2b51d
|
|
BLAKE2b-256 checksum How to use checksums |
5937a35d14bafa7c41840a5c5189a37e1cf3d40a889165daede29470aa679f59
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.19
|
Release files / azure_graph_toolkit-1.1.1-py3-none-any.whl
| Download URL | azure_graph_toolkit-1.1.1-py3-none-any.whl |
|---|---|
| Size | 23.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8a96b07fcb252b6b25a8b490ca7a126deea71471e1819288023a80d36d06158e
|
|
BLAKE2b-256 checksum How to use checksums |
b1219bcf844d1e674c14ffb0c535f594dd3056e67474de1916ec621dc8519aaf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.19
|