az/README.md
n@work 91ea9dca5b Update README.md
Signed-off-by: n@work <xy916229@git.do-not-reply@sys.wnd.sh>
2025-02-14 19:19:37 +00:00

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