Fix TypeScript compilation errors
- Add searchReference to ApplicationListItem type - Fix result variable in toApplicationDetails function - Add query helper functions for req.query parameter handling - Fix req.query.* type errors in routes (applications, cache, classifications, objects) - Fix CompletenessCategoryConfig missing id property - Fix number | null type errors in dataService - Add utils/queryHelpers.ts for reusable query parameter helpers
This commit is contained in:
231
docs/AZURE-SERVICE-CONNECTION-AUTH.md
Normal file
231
docs/AZURE-SERVICE-CONNECTION-AUTH.md
Normal file
@@ -0,0 +1,231 @@
|
||||
# Azure DevOps Service Connection - Authentication Type
|
||||
|
||||
## 🎯 Aanbeveling voor Jouw Situatie
|
||||
|
||||
**Voor Zuyderland CMDB GUI met Azure Container Registry:**
|
||||
|
||||
### ✅ **Service Principal** (Aanbevolen) ⭐
|
||||
|
||||
**Waarom:**
|
||||
- ✅ Werkt altijd en is betrouwbaar
|
||||
- ✅ Meest ondersteunde optie
|
||||
- ✅ Eenvoudig te configureren
|
||||
- ✅ Werkt perfect met Azure Container Registry
|
||||
- ✅ Geen speciale vereisten
|
||||
|
||||
---
|
||||
|
||||
## 📊 Opties Vergelijking
|
||||
|
||||
### Optie 1: **Service Principal** ⭐ **AANBEVOLEN**
|
||||
|
||||
**Hoe het werkt:**
|
||||
- Azure DevOps maakt automatisch een Service Principal aan in Azure AD
|
||||
- De Service Principal krijgt toegang tot je Azure Container Registry
|
||||
- Azure DevOps gebruikt deze credentials om in te loggen bij ACR
|
||||
|
||||
**Voordelen:**
|
||||
- ✅ **Eenvoudig** - Azure DevOps doet alles automatisch
|
||||
- ✅ **Betrouwbaar** - Werkt altijd, geen speciale configuratie nodig
|
||||
- ✅ **Veilig** - Credentials worden veilig opgeslagen in Azure DevOps
|
||||
- ✅ **Meest ondersteund** - Standaard optie voor de meeste scenario's
|
||||
- ✅ **Werkt met alle Azure services** - Niet alleen ACR
|
||||
|
||||
**Nadelen:**
|
||||
- ❌ Maakt een Service Principal aan in Azure AD (maar dit is normaal en veilig)
|
||||
|
||||
**Wanneer gebruiken:**
|
||||
- ✅ **Jouw situatie** - Azure DevOps Services (cloud) met Azure Container Registry
|
||||
- ✅ De meeste scenario's
|
||||
- ✅ Als je eenvoudige, betrouwbare authenticatie wilt
|
||||
- ✅ Standaard keuze voor nieuwe service connections
|
||||
|
||||
**Configuratie:**
|
||||
- Azure DevOps doet alles automatisch
|
||||
- Je hoeft alleen je Azure subscription en ACR te selecteren
|
||||
- Azure DevOps maakt de Service Principal aan en geeft deze de juiste permissions
|
||||
|
||||
---
|
||||
|
||||
### Optie 2: **Managed Service Identity (MSI)**
|
||||
|
||||
**Hoe het werkt:**
|
||||
- Gebruikt een Managed Identity van Azure DevOps zelf
|
||||
- Geen credentials nodig - Azure beheert alles
|
||||
- Werkt alleen als Azure DevOps een Managed Identity heeft
|
||||
|
||||
**Voordelen:**
|
||||
- ✅ Geen credentials te beheren
|
||||
- ✅ Automatisch geroteerd door Azure
|
||||
- ✅ Modernere aanpak
|
||||
|
||||
**Nadelen:**
|
||||
- ❌ **Werkt alleen met Azure DevOps Server (on-premises)** met Managed Identity
|
||||
- ❌ **Werkt NIET met Azure DevOps Services (cloud)** - Dit is belangrijk!
|
||||
- ❌ Vereist speciale configuratie
|
||||
- ❌ Minder flexibel
|
||||
|
||||
**Wanneer gebruiken:**
|
||||
- ✅ Azure DevOps Server (on-premises) met Managed Identity
|
||||
- ✅ Als je geen credentials wilt beheren
|
||||
- ❌ **NIET voor Azure DevOps Services (cloud)** - Dit werkt niet!
|
||||
|
||||
**Voor jouw situatie:** ❌ **Niet geschikt** - Je gebruikt Azure DevOps Services (cloud), niet on-premises
|
||||
|
||||
---
|
||||
|
||||
### Optie 3: **Workload Identity Federation**
|
||||
|
||||
**Hoe het werkt:**
|
||||
- Modernere manier zonder secrets
|
||||
- Gebruikt federated identity (OIDC)
|
||||
- Azure DevOps krijgt een token van Azure AD zonder credentials op te slaan
|
||||
|
||||
**Voordelen:**
|
||||
- ✅ Geen secrets opgeslagen
|
||||
- ✅ Modernere, veiligere aanpak
|
||||
- ✅ Automatisch token management
|
||||
|
||||
**Nadelen:**
|
||||
- ❌ **Nog niet volledig ondersteund** voor alle scenario's
|
||||
- ❌ Kan complexer zijn om te configureren
|
||||
- ❌ Vereist specifieke Azure AD configuratie
|
||||
- ❌ Mogelijk niet beschikbaar in alle Azure DevOps organisaties
|
||||
|
||||
**Wanneer gebruiken:**
|
||||
- ✅ Als je de modernste security features wilt
|
||||
- ✅ Als je organisatie Workload Identity Federation ondersteunt
|
||||
- ✅ Voor nieuwe projecten waar je geen legacy support nodig hebt
|
||||
- ❌ **Niet aanbevolen als je eenvoudige setup wilt**
|
||||
|
||||
**Voor jouw situatie:** ⚠️ **Mogelijk beschikbaar, maar Service Principal is eenvoudiger**
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Jouw Situatie Analyse
|
||||
|
||||
**Jouw setup:**
|
||||
- ✅ Azure DevOps Services (cloud) - `dev.azure.com`
|
||||
- ✅ Azure Container Registry - `zdlas.azurecr.io`
|
||||
- ✅ Eenvoudige setup gewenst
|
||||
- ✅ Betrouwbare authenticatie nodig
|
||||
|
||||
**Conclusie:** ✅ **Service Principal is perfect!**
|
||||
|
||||
**Waarom niet de andere opties:**
|
||||
- ❌ **Managed Service Identity**: Werkt niet met Azure DevOps Services (cloud)
|
||||
- ⚠️ **Workload Identity Federation**: Mogelijk beschikbaar, maar complexer dan nodig
|
||||
|
||||
---
|
||||
|
||||
## 📋 Checklist: Welke Keuze?
|
||||
|
||||
### Kies **Service Principal** als:
|
||||
- [x] Je Azure DevOps Services (cloud) gebruikt ✅
|
||||
- [x] Je eenvoudige setup wilt ✅
|
||||
- [x] Je betrouwbare authenticatie nodig hebt ✅
|
||||
- [x] Je standaard, goed ondersteunde optie wilt ✅
|
||||
- [x] Je Azure Container Registry gebruikt ✅
|
||||
|
||||
**→ Jouw situatie: ✅ Kies Service Principal!**
|
||||
|
||||
### Kies **Managed Service Identity** als:
|
||||
- [ ] Je Azure DevOps Server (on-premises) gebruikt
|
||||
- [ ] Je Managed Identity hebt geconfigureerd
|
||||
- [ ] Je geen credentials wilt beheren
|
||||
|
||||
**→ Jouw situatie: ❌ Niet geschikt**
|
||||
|
||||
### Kies **Workload Identity Federation** als:
|
||||
- [ ] Je de modernste security features wilt
|
||||
- [ ] Je organisatie dit ondersteunt
|
||||
- [ ] Je geen legacy support nodig hebt
|
||||
- [ ] Je bereid bent om extra configuratie te doen
|
||||
|
||||
**→ Jouw situatie: ⚠️ Mogelijk, maar niet nodig**
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Configuratie Stappen (Service Principal)
|
||||
|
||||
Wanneer je **Service Principal** kiest:
|
||||
|
||||
1. **Selecteer Azure Subscription**
|
||||
- Kies je Azure subscription uit de dropdown
|
||||
|
||||
2. **Selecteer Azure Container Registry**
|
||||
- Kies je ACR (`zdlas`) uit de dropdown
|
||||
|
||||
3. **Service Connection Name**
|
||||
- Vul in: `zuyderland-cmdb-acr-connection`
|
||||
- ⚠️ **Belangrijk**: Deze naam moet overeenkomen met `dockerRegistryServiceConnection` in `azure-pipelines.yml`!
|
||||
|
||||
4. **Security**
|
||||
- Azure DevOps maakt automatisch een Service Principal aan
|
||||
- De Service Principal krijgt automatisch de juiste permissions (AcrPush role)
|
||||
- Credentials worden veilig opgeslagen in Azure DevOps
|
||||
|
||||
5. **Save**
|
||||
- Klik "Save" of "Verify and save"
|
||||
- Azure DevOps test automatisch de connection
|
||||
|
||||
**✅ Klaar!** Geen extra configuratie nodig.
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Kan Ik Later Wisselen?
|
||||
|
||||
**Ja, maar:**
|
||||
- Je kunt altijd een nieuwe service connection aanmaken met een ander authentication type
|
||||
- Je moet dan wel de pipeline variabelen aanpassen
|
||||
- Service Principal is meestal de beste keuze, dus wisselen is meestal niet nodig
|
||||
|
||||
---
|
||||
|
||||
## 💡 Mijn Aanbeveling
|
||||
|
||||
**Voor Zuyderland CMDB GUI:**
|
||||
|
||||
### ✅ **Kies Service Principal** ⭐
|
||||
|
||||
**Waarom:**
|
||||
1. ✅ **Werkt perfect** - Standaard optie voor Azure DevOps Services
|
||||
2. ✅ **Eenvoudig** - Azure DevOps doet alles automatisch
|
||||
3. ✅ **Betrouwbaar** - Meest geteste en ondersteunde optie
|
||||
4. ✅ **Veilig** - Credentials worden veilig beheerd door Azure DevOps
|
||||
5. ✅ **Perfect voor jouw situatie** - Cloud Azure DevOps + Azure Container Registry
|
||||
|
||||
**Je hebt niet nodig:**
|
||||
- ❌ Managed Service Identity (werkt niet met cloud Azure DevOps)
|
||||
- ❌ Workload Identity Federation (complexer dan nodig)
|
||||
|
||||
**Setup:**
|
||||
1. Kies **Service Principal**
|
||||
2. Selecteer je subscription en ACR
|
||||
3. Geef een naam: `zuyderland-cmdb-acr-connection`
|
||||
4. Save
|
||||
|
||||
**Klaar!** ✅
|
||||
|
||||
---
|
||||
|
||||
## 📚 Meer Informatie
|
||||
|
||||
- [Azure DevOps Service Connections](https://learn.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints)
|
||||
- [Service Principal Authentication](https://learn.microsoft.com/en-us/azure/devops/pipelines/library/connect-to-azure)
|
||||
- [Managed Service Identity](https://learn.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/)
|
||||
- [Workload Identity Federation](https://learn.microsoft.com/en-us/azure/devops/pipelines/library/connect-to-azure?view=azure-devops#workload-identity-federation)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Conclusie
|
||||
|
||||
**Kies: Service Principal** ⭐
|
||||
|
||||
Dit is de beste keuze voor:
|
||||
- ✅ Azure DevOps Services (cloud)
|
||||
- ✅ Azure Container Registry
|
||||
- ✅ Eenvoudige, betrouwbare setup
|
||||
- ✅ Standaard, goed ondersteunde optie
|
||||
|
||||
Je kunt altijd later een andere optie proberen als je dat wilt, maar Service Principal is meestal de beste keuze.
|
||||
Reference in New Issue
Block a user