neogroupmanager - a web-based service to manage Active Directory groups
|
||
---|---|---|
groupmanager-v1-aa.parameters.json | ||
groupmanager-v1-aa.template.json | ||
groupmanager-v1.parameters.json | ||
groupmanager-v1.template.json | ||
README.md | ||
update-membership.ps1 |
neogroupmanager
what?
neogroupmanager is a web-based application for managing on-premise Active Directory groups, similar to Group Manager by cjwdev.
how?
pre-requisites: an Azure tenant, an Azure Automation Account with a Windows-based hybrid worker connected (via PowerShell or a UNIX equivelant)
git clone https://git.wnd.sh/neogroupmanager/az neogroupmanager
cd neogroupmanager
Connect-AzAccount
New-AzResourceGroup -ResourceGroupName groupmanager-p-v1-rg -Location <uksouth>
New-AzResourceGroupDeployment -ResourceGroupName groupmanager-p-v1-rg -TemplateFile ./groupmanager-v1.template.json -TemplateParameterFile ./groupmanager-v1.parameters.json
New-AzResourceGroupDeployment -ResourceGroupName groupmanager-p-v1-rg -TemplateFile ./groupmanager-v1-aa.template.json -TemplateParameterFile ./groupmanager-v1-aa.parameters.json
why?
TODO: explain why cjwdev may not be good for a modern environment (cost, security, limited mobility/accessibility)
flowchart?
TODO: a flowchart explaining the process end to end, however the basic idea is:
- azure static web app (SWA) hosts a frontend with access to perform c# code as restful api calls with the built-in function app (FA)
- FA populate and query a table with a list of users who have access to the program, and the groups they manage, along with a queue of members to add/remove
- azure automation account (AA) run a script every X minutes queries the table & queue for changes and acts on them, either updating the user's list of managed groups to be correct, or adding/removing users
- (optional) a logic app polls the queue/table for changes and triggers a webhook which causes the AA script to run, bypassing the need to run the AA script needlessly evert X minutes