Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure DevOps Services
Machtigingscontroles maken deel uit van veel Azure DevOps Services-bewerkingen. Op grote schaal kunnen veel expliciete machtigingstoewijzingen, uitzonderingen op resourceniveau en groepslidmaatschappen de evaluatie en updates van machtigingen vertragen. Voor grote toegangsbeheerlijsten moet de service ook meer machtigingsgegevens en identiteiten ophalen en oplossen.
Gebruik de aanbevelingen in dit artikel om de hoeveelheid machtigingsgegevens te verminderen die Azure DevOps Services verwerkt.
Tip
U kunt AI gebruiken om u te helpen met Azure DevOps-taken. Zie Schakel AI-ondersteuning in met Azure DevOps MCP Server om aan de slag te gaan.
Zachte prestatielimieten
Gebruik de volgende limieten als planningsdoelen voor grote organisaties. Azure DevOps Services dwingt deze limieten niet af of blokkeert u wijzigingen in machtigingen die deze overschrijden. Het overschrijden van deze query's verhoogt echter het risico op trage machtigingsquery's, evaluaties en lidmaatschapsupdates.
| Maatregel | Aanbevolen maximum |
|---|---|
| ACE's in één beveiligingsnaamruimte | 1,000,000 |
| Leden in één Microsoft Entra of Azure DevOps groep | 10,000 |
Met een toegangsbeheervermelding (ACE) worden de machtigingen opgeslagen die zijn toegewezen aan één gebruiker of groep. Houd bij geneste groepen rekening met het totale effectieve lidmaatschap bij het gebruik van de richtlijn voor groepsgrootte.
Aanbevolen praktijken
| Practice | Prestatievoordeel |
|---|---|
| Machtigingen toewijzen aan groepen in plaats van afzonderlijke gebruikers | Vervangt veel vermeldingen voor gebruikerstoegangsbeheer (ACL's) door één groep ACE. |
| Gebruik het breedst overeenkomende bereik en de overerving | Voorkomt het herhalen van identieke ACE's op onderliggende resources. |
| Alleen weigeren gebruiken voor uitzonderingen | Beperkt expliciete overschrijvingen en ACE's op objectniveau. |
| Identiteitsgroepen met de juiste grootte gebruiken | Vermindert onnodige verwerking van groepslidmaatschappen. |
| Resources verdelen over projecten en organisaties | Hiermee beperkt u het aantal resources dat binnen één grens wordt geëvalueerd. |
| Machtigingswijzigingen incrementeel toepassen | Vermindert de belasting van grote of frequente updates voor toegangsbeheer. |
Machtigingen toewijzen aan groepen
Gebruik ingebouwde of aangepaste Azure DevOps beveiligingsgroepen om rollen, teams en toegang te krijgen tot cohorten. Als u een machtiging aan een groep toewijst, wordt er één ACE gemaakt. Als u dezelfde machtiging rechtstreeks aan veel gebruikers toewijst, wordt voor elke gebruiker een ACE gemaakt.
- Geef de voorkeur aan ingebouwde groepen, zoals lezers, inzenders en Project beheerders wanneer hun machtigingen overeenkomen met de vereiste toegang.
- Maak een aangepaste groep wanneer een ingebouwde groep niet overeenkomt met de vereiste toegang.
- Vervang één groep niet door honderden of duizenden directe gebruikerstoewijzingen.
Gebruik het breedst overeenkomende bereik en overerving
Stel één keer een machtiging in op het hoogste ondersteunde bereik dat overeenkomt met de toegangsvereiste. Laat onderliggende resources de machtiging overnemen en overname ingeschakeld houden, tenzij een onderliggende resource andere toegang vereist.
Voorbeeld:
| Toegangsvereiste | Gewenst bereik |
|---|---|
| Een taak op organisatieniveau uitvoeren | Organisatieniveau, wanneer de machtiging beschikbaar is op dat niveau |
| Toegang krijgen tot alle resources van een ondersteund type in een project | Project niveau of het bovenliggende project-niveau van het resourcetype |
| Toegang tot alle Git-opslagplaatsen in een project | Vermelding van Git-opslagplaatsen op het hoogste niveau |
| Toegang tot alle vertakkingen in een opslagplaats | Opslagplaatsniveau |
| Toegang tot één opslagplaats, vertakking, pijplijn, gebiedspad of andere resource | Objectniveau |
Vermijd het afzonderlijk instellen van identieke machtigingen voor elke opslagplaats, vertakking, pijplijn of andere onderliggende resource. Voor Git-opslagplaatsen nemen afzonderlijke opslagplaatsen machtigingen over van de vermelding Git-opslagplaatsen op het hoogste niveau.
Schakel overerving alleen uit wanneer een resource afwijkende toegang nodig heeft van de bovenliggende resource. Het uitschakelen van overerving voor veel bronnen vereist meestal meer expliciete toewijzingen.
Alleen weigeren gebruiken voor uitzonderingen
Verwijs toegang via een groep en laat machtigingen staan als Niet ingesteld voor identiteiten die de toekenning niet mogen ontvangen. In plaats van ruime toegang te verlenen en vervolgens veel Deny-vermeldingen toe te voegen, maakt u een groep met precies de vereiste machtigingen.
Gebruik Weigeren alleen wanneer u een overgenomen Toestaan moet overschrijven voor een specifieke uitzondering. Eén vermelding voor weigeren is niet inherent een prestatieprobleem. Veel uitzonderingen voegen echter ACL's toe en vereisen vaak meer machtigingstoewijzingen op objectniveau.
Identiteitsgroepen met de juiste grootte gebruiken
Gebruik groepen die zijn afgestemd op toegangsvereisten, zoals een bedrijfseenheid, project, product of functie. Entra-groepen en Azure DevOps groepen bieden geen betere prestaties. Pas dezelfde grootte- en nestrichtlijnen toe op beide groepstypen.
- Vermijd het toevoegen van een tenant- of bedrijfsbrede groep, zoals een groep Alle werknemers .
- Vermijd diep geneste of vaak veranderende groepsstructuren wanneer een eenvoudigere groep dezelfde toegang biedt.
- Splits een zeer grote groep op in kleinere groepen met verschillende toegangsrechten als niet alle leden dezelfde toegangsrechten nodig hebben.
- Als elk lid dezelfde toegang nodig heeft, wijst u één groep toe aan een overgenomen bovenliggend bereik in plaats van afzonderlijke toewijzingen of dubbele groepen te gebruiken.
Groepen met meer dan 10.000 leden vormen een prestatierisico. Het nesten, frequente lidmaatschapswijzigingen en toegang tot veel resources met machtigingen kan de impact verhogen. Verminder onnodige lidmaatschappen en splits de groep waar praktisch haalbaar op in kleinere toegangscohorten.
Resources verdelen over projecten en organisaties
Vermijd het concentreren van duizenden opslagplaatsen en de meeste met machtigingen beveiligde resources in het ene project, terwijl andere projecten slechts enkele bevatten. Bewerkingen die toegankelijke bronnen opsporen, moeten mogelijk machtigingen voor de volledige set controleren.
Distribueer grote sets opslagplaatsen en andere resources over projecten voordat er te veel resources in één project worden verzameld. Maak niet één project per opslagplaats; het aantal projecten heeft ook praktische prestatielimieten.
Op extreme schaal van ondernemingen kunnen meerdere kleinere organisaties beter presteren dan één organisatie die de meeste bedrijfsresources en machtigingsgegevens bevat. Splits organisaties langs stabiele product- of bedrijfsgrenzen om de belasting van middelen en machtigingen te verdelen. Gebruik deze benadering alleen als het schaalvoordeel opweegt tegen de overhead van het beheren van resources in afzonderlijke organisaties.
Verminder frequente wijzigingen in de automatisering van machtigingen
Als u machtigingen beheert via scripts, REST API's of werkstromen voor configuratie als code:
- Pas alleen de wijzigingen toe die nodig zijn om de beoogde status te bereiken. Wis ongewijzigde machtigingstoekenningen niet en bouw ze niet opnieuw op bij elke uitvoering.
- Stel machtigingen in op een hoger bereik in plaats van gelijkwaardige vermeldingen te genereren voor elke onderliggende resource.
- Breng waar mogelijk wijzigingen in batches aan en volg best practices voor de Azure DevOps REST API.
- Vermijd lussen met hoge frequentie voor het afstemmen van machtigingen.
- Vermijd regelmatig het maken en verwijderen van grote aantallen projecten of machtigingen.
- Verwijder verouderde expliciete toewijzingen om toegangsbeheerlijst (ACL) en ACE-volume te verminderen.