26 lines
1.9 KiB
Markdown
26 lines
1.9 KiB
Markdown
# 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](https://learn.microsoft.com/azure/automation) with a Windows-based [hybrid worker](https://learn.microsoft.com/azure/automation/automation-hybrid-runbook-worker) connected_
|
|
_(via [PowerShell](https://learn.microsoft.com/powershell) or a UNIX equivelant)_
|
|
1. `git clone https://git.wnd.sh/neogroupmanager/az neogroupmanager`
|
|
2. `cd neogroupmanager`
|
|
3. `Connect-AzAccount`
|
|
4. `New-AzResourceGroup -ResourceGroupName groupmanager-p-v1-rg -Location <uksouth>`
|
|
5. `New-AzResourceGroupDeployment -ResourceGroupName groupmanager-p-v1-rg -TemplateFile ./groupmanager-v1.template.json -TemplateParameterFile ./groupmanager-v1.parameters.json`
|
|
6. `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 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 |