Azure DevOps Spaces
Verwaltete Spaces TNT und FIS mit fachlichen Rollenpaketen
Azure DevOps stellt je Space TNT und FIS eigene Organisations-, Projekt-, Pipeline- und Service-Connection-Strukturen bereit. AccessHub bietet ausschließlich fachlich benannte Rollenpakete.
Projects
18
Repositories
126
Active Pipelines
214
Service Conn.
48
Space-Trennung TNT / FIS
Space
TNT
ADO_TNT_* role bundles
Space
FIS
ADO_FIS_* role bundles
Objects
| Feld | Beschreibung |
|---|---|
| Organization / Space | Oberste fachliche Einheit TNT oder FIS |
| Project | Projektcontainer für Repos, Pipelines, Boards und Artefakte |
| Team | Arbeitsgruppe innerhalb eines Projekts |
| Repository | Code-Repository inklusive Branch Policies |
| Pipeline | Build-/Release-Automation |
| Environment | Deployment-Ziel mit Approvals und Checks |
| Service Connection | Verbindung zu Azure / Registry / Zielsystem |
| Security Namespace | Technische Rechtebasis von Azure DevOps |
Role bundles — TNT
| Role | Beschreibung | Laufzeit |
|---|---|---|
| ADO_TNT_VIEWER | Lesender Zugriff TNT-Projekte | dauerhaft bei Teamzuordnung |
| ADO_TNT_REPO_CONTRIBUTOR | Codebeitrag in TNT-Repos | dauerhaft / projektbezogen |
| ADO_TNT_PIPELINE_OPERATOR | Pipelines bedienen, Logs lesen | zeitlich begrenzt |
| ADO_TNT_SERVICE_CONNECTION_USER | Nutzung definierter Service Connections | stark eingeschränkt |
| ADO_TNT_PROJECT_ADMIN | Projektadministration TNT | restriktiv, 4-Augen |
Role bundles — FIS
| Role | Beschreibung | Laufzeit |
|---|---|---|
| ADO_FIS_VIEWER | Lesender Zugriff FIS-Projekte | dauerhaft bei Teamzuordnung |
| ADO_FIS_REPO_CONTRIBUTOR | Codebeitrag in FIS-Repos | dauerhaft / projektbezogen |
| ADO_FIS_PIPELINE_OPERATOR | Pipelines bedienen, Logs lesen | zeitlich begrenzt |
| ADO_FIS_SERVICE_CONNECTION_USER | Nutzung definierter Service Connections | stark eingeschränkt |
| ADO_FIS_PROJECT_ADMIN | Projektadministration FIS | restriktiv, 4-Augen |
Service Connections
| Name | Type | Scope | Auth | Rotation |
|---|---|---|---|---|
| sc-tnt-prod-azure | Azure RM | tnt.hermos.com / prod | Workload Identity Federation | automatisch (Entra ID) |
| sc-tnt-stage-azure | Azure RM | tnt.hermos.com / stage | Workload Identity Federation | automatisch |
| sc-fis-prod-azure | Azure RM | fis.hermos.com / prod | Workload Identity Federation | automatisch |
| sc-fis-stage-azure | Azure RM | fis.hermos.com / stage | Workload Identity Federation | automatisch |
| sc-sonarcloud-exec | SonarCloud | Analysis Upload | Token | 90 Tage · Vault-gesteuert |
| sc-container-registry | ACR | Push/Pull | Managed Identity | automatisch |
Agent Pools
| Pool | Agents | Queue | Protection | Usage |
|---|---|---|---|---|
| linux-std-ubuntu22 | 12 | shared | approval required for prod | 78% |
| windows-std-2022 | 6 | shared | approval required for prod | 42% |
| tnt-prod-restricted | 4 | TNT only | Environment Check + 4-Augen | 23% |
| fis-prod-restricted | 4 | FIS only | Environment Check + 4-Augen | 31% |
Environment Checks
tnt-prod
- Approval: 2 Genehmiger
- Business Hours Gate
- SonarCloud Gate passed
- AccessHub JIT-Token
- ServiceNow Change Open
fis-prod
- Approval: 2 Genehmiger
- Business Hours Gate
- SonarCloud Gate passed
- AccessHub JIT-Token
- ServiceNow Change Open
stage
- Approval: 1 Genehmiger
- SonarCloud Gate passed
dev
- Automatic Deploy
Pipeline Templates
hermos-dotnet-service.yml.NET Service mit Build, Test, SonarCloud, Container-Build, Deploy
hermos-react-web.ymlReact/Vite mit Lint, Test, SonarCloud, CDN-Deploy
hermos-worker-background.ymlBackground Worker mit Infra-as-Code Validation
hermos-library-nuget.ymlNuGet Library mit SemVer, Release, Security Scans
Security Controls
Branch Policies
main protected, 2 Reviewer, linked work item, build validation
Pipeline Permissions
Service Connections pro Pipeline expliziert genehmigt, kein Wildcard-Access
Secret Scanning
Azure DevOps Advanced Security + GitLeaks Pre-Commit Hook
Audit Log Streaming
Audit Stream → AccessHub Evidence Store (Retention 7 Jahre)
SCIM Sync
Benutzer und Gruppen aus hermos.com Entra, Provisioning via AccessHub
PAT Policy
Admin-PATs nur über Vault, max. 30 Tage, Automatische Revocation bei Leaver
REST API Verwendung
| Method | Path | Use |
|---|---|---|
| GET | /_apis/projects | Projekt-Inventar für Entity Provider |
| GET | /{project}/_apis/git/repositories | Repositories als Component-Entities |
| GET | /{project}/_apis/pipelines | Pipeline-Inventar + letzter Run |
| GET | /{project}/_apis/build/builds | Build-Historie für Scorecard |
| GET | /{project}/_apis/release/deployments | Deployment-Tracking (Stage/Prod) |
| GET | /_apis/serviceendpoint/endpoints | Service Connections inventarisieren |
| GET | /_apis/distributedtask/pools | Agent Pools + Capacity |
| POST | /_apis/graph/groups | Gruppen anlegen (AccessHub-Provisioning) |
| POST | /_apis/graph/memberships | Mitgliedschaften schreiben (idempotent) |
| PATCH | /{project}/_apis/build/permissions | Fein granulare Build-Rechte setzen |