Toegang tot opslagplaatsen, artefacten en andere resources
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Tijdens runtime heeft elke taak in een pijplijn toegang tot andere resources in Azure DevOps. Een taak kan bijvoorbeeld het volgende doen:
- Broncode uitchecken vanuit een Git-opslagplaats
- Een tag toevoegen aan de opslagplaats
- Toegang tot een feed in Azure Artifacts
- Logboeken van de agent uploaden naar de service
- Testresultaten en andere artefacten van de agent uploaden naar de service
- Een werkitem bijwerken
Azure Pipelines maakt gebruik van taaktoegangstokens om deze taken uit te voeren. Een toegangstoken voor een taak is een beveiligingstoken dat dynamisch wordt gegenereerd door Azure Pipelines voor elke taak tijdens runtime. De agent waarop de taak wordt uitgevoerd, gebruikt het taaktoegangstoken om toegang te krijgen tot deze resources in Azure DevOps. U kunt bepalen tot welke resources uw pijplijn toegang heeft door te bepalen hoe machtigingen worden verleend aan taaktoegangstokens.
De machtigingen van het token worden afgeleid van (a) taakautorisatiebereik en (b) de machtigingen die u hebt ingesteld voor het serviceaccount voor project of verzameling.
Bereik voor taakautorisatie
U kunt het bereik voor taakautorisatie instellen op verzameling of project. Door het bereik in te stellen op verzameling, kiest u ervoor om pijplijnen toegang te geven tot alle opslagplaatsen in de verzameling of organisatie. Door het bereik in te stellen op project, kiest u ervoor om de toegang te beperken tot alleen de opslagplaatsen die zich in hetzelfde project bevinden als de pijplijn.
Het bereik voor taakautorisatie kan worden ingesteld voor de hele Azure DevOps-organisatie of voor een specifiek project.
Notitie
In Azure DevOps Server 2020 is het bereik voor taakautorisatie beperken tot het huidige project alleen van toepassing op YAML-pijplijnen en klassieke build-pijplijnen. Dit geldt niet voor klassieke release-pijplijnen. Klassieke releasepijplijnen worden altijd uitgevoerd met projectverzamelingsbereik.
Het bereik voor taakautorisatie instellen voor de organisatie:
- Navigeer naar de pagina met organisatie-instellingen in de Gebruikersinterface van Azure DevOps.
- Selecteer Instellingen onder Pijplijnen.
- Schakel taakautorisatiebereik beperken tot huidig project in om het bereik tot het project te beperken. Dit is de aanbevolen instelling, omdat deze de beveiliging voor uw pijplijnen verbetert.
Het bereik voor taakautorisatie instellen voor een specifiek project:
- Navigeer naar de pagina met projectinstellingen in de Gebruikersinterface van Azure DevOps.
- Selecteer Instellingen onder Pijplijnen.
- Schakel taakautorisatiebereik beperken tot huidig project in om het bereik tot het project te beperken. Dit is de aanbevolen instelling, omdat deze de beveiliging voor uw pijplijnen verbetert.
- Als u het bereik voor taakautorisatie wilt instellen op organisatieniveau voor alle projecten, kiest u Pijplijnen> voor organisatie-instellingen>Instellingen.
- Als u het bereik voor taakautorisatie voor een specifiek project wilt instellen, kiest u Pijplijnen> voor Project-instellingen>Instellingen.
Schakel een of meer van de volgende instellingen in. Het inschakelen van deze instellingen wordt aanbevolen, omdat de beveiliging voor uw pijplijnen wordt verbeterd.
- Bereik voor taakautorisatie beperken tot het huidige project voor niet-release-pijplijnen : deze instelling is van toepassing op YAML-pijplijnen en klassieke build-pijplijnen en is niet van toepassing op klassieke release-pijplijnen.
- Bereik voor taakautorisatie beperken tot het huidige project voor release-pijplijnen : deze instelling is alleen van toepassing op klassieke release-pijplijnen .
Notitie
Als het bereik is ingesteld op projectniveau op organisatieniveau, kunt u het bereik in elk project niet wijzigen.
Belangrijk
Als het bereik niet beperkt is op organisatie- of projectniveau, krijgt elke taak in uw YAML-pijplijn een toegangstoken voor een verzamelingstaak. Met andere woorden, uw pijplijn heeft toegang tot elke opslagplaats in een project van uw organisatie. Als een kwaadwillende persoon toegang kan krijgen tot één pijplijn in één project, kunnen ze toegang krijgen tot elke opslagplaats in uw organisatie. Daarom is het raadzaam om het bereik op het hoogste niveau (organisatie-instellingen) te beperken om de aanval tot één project te kunnen bevatten.
Als u Azure DevOps Server 2019 gebruikt, worden alle YAML-taken uitgevoerd met het bereik voor taakautorisatie ingesteld op verzameling. Met andere woorden, deze taken hebben toegang tot alle opslagplaatsen in uw projectverzameling. U kunt dit niet wijzigen in Azure DevOps Server 2019.
YAML-pijplijnen zijn niet beschikbaar in TFS.
Notitie
Als uw pijplijn zich in een openbaar project bevindt, wordt het bereik voor taakautorisatie automatisch beperkt tot het project , ongeacht wat u in een instelling configureert. Taken in een openbaar project hebben alleen toegang tot resources, zoals buildartefacten of testresultaten binnen het project en niet vanuit andere projecten van de organisatie.
Bereik van taakautorisatie beperken naar Azure DevOps-opslagplaatsen
Naast de instellingen voor taakautorisatiebereik die in de vorige sectie worden beschreven, biedt Azure Pipelines een bereik voor taakautorisatie beperken waarnaar wordt verwezen naar de instelling voor Azure DevOps-opslagplaatsen .
Pijplijnen hebben toegang tot alle Azure DevOps-opslagplaatsen in geautoriseerde projecten, tenzij het bereik voor taakautorisatie beperken tot verwijzingen naar Azure DevOps-opslagplaatsen is ingeschakeld. Als deze optie is ingeschakeld, kunt u het toegangsbereik voor alle pijplijnen beperken tot alleen Azure DevOps-opslagplaatsen waarnaar expliciet wordt verwezen door een checkout
stap of een uses
instructie in de pijplijntaak die gebruikmaakt van die opslagplaats.
Toegang tot opslagplaatsen in YAML-pijplijnen beveiligen
Naast de instellingen voor taakautorisatiebereik die in de vorige sectie worden beschreven, biedt Azure Pipelines een beveiligingstoegang tot opslagplaatsen in de YAML-pijplijneninstelling .
Pijplijnen hebben toegang tot alle Azure DevOps-opslagplaatsen in geautoriseerde projecten, tenzij toegang tot opslagplaatsen in YAML-pijplijnen beveiligen is ingeschakeld. Als deze optie is ingeschakeld, kunt u het toegangsbereik voor alle pijplijnen beperken tot alleen Azure DevOps-opslagplaatsen waarnaar expliciet wordt verwezen door een checkout
stap of een uses
instructie in de pijplijntaak die gebruikmaakt van die opslagplaats.
Zie Git-opslagplaatsen in Azure Repos voor meer informatie: de toegang tot opslagplaatsen in YAML-pijplijnen beveiligen.
Belangrijk
De toegang tot opslagplaatsen in YAML-pijplijnen beveiligen is standaard ingeschakeld voor nieuwe organisaties en projecten die na mei 2020 zijn gemaakt.
Scoped build-identiteiten
Azure DevOps maakt gebruik van twee ingebouwde identiteiten om pijplijnen uit te voeren.
- Een identiteit binnen het bereik van een verzameling, die toegang heeft tot alle projecten in de verzameling (of organisatie voor Azure DevOps Services)
- Een identiteit binnen het bereik van een project, die toegang heeft tot één project
Aan deze identiteiten zijn machtigingen toegewezen die nodig zijn om uitvoeringstijdactiviteiten voor build/release uit te voeren wanneer u terugbelt naar het Azure DevOps-systeem. Er zijn ingebouwde standaardmachtigingen en u kunt desgewenst ook uw eigen machtigingen beheren.
De naam van de identiteit met verzamelingsbereik heeft de volgende indeling:
Project Collection Build Service ({OrgName})
- Als de naam van de organisatie bijvoorbeeld is, heeft
fabrikam-tailspin
dit account de naamProject Collection Build Service (fabrikam-tailspin)
.
De naam van de identiteit binnen het projectbereik heeft de volgende indeling:
{Project Name} Build Service ({Org Name})
- Als de naam van de organisatie bijvoorbeeld is
fabrikam-tailspin
en de projectnaam isSpaceGameWeb
, heeft dit account de naamSpaceGameWeb Build Service (fabrikam-tailspin)
.
Standaard wordt de identiteit met verzamelingsbereik gebruikt, tenzij anders geconfigureerd zoals beschreven in de vorige sectie Taakautorisatiebereik .
Machtigingen voor buildserviceaccounts beheren
Een resultaat van het instellen van toegang binnen het projectbereik kan zijn dat de identiteit binnen het projectbereik mogelijk geen machtigingen heeft voor een resource die de verzamelingsbereik heeft.
Mogelijk wilt u de machtigingen van het toegangstoken voor taken wijzigen in scenario's zoals:
- U wilt dat uw pijplijn toegang heeft tot een feed die zich in een ander project bevindt.
- U wilt dat uw pijplijn wordt beperkt tot het wijzigen van code in de opslagplaats.
- U wilt dat uw pijplijn wordt beperkt tot het maken van werkitems.
De machtigingen van het toegangstoken voor de taak bijwerken:
Bepaal eerst het bereik voor taakautorisatie voor uw pijplijn. Zie de bovenstaande sectie voor meer informatie over het bereik van taakautorisatie. Als het bereik voor taakautorisatie verzameling is, is het bijbehorende buildserviceaccount voor het beheren van machtigingen Project Collection Build Service (uw-verzameling-naam). Als het taakautorisatiebereik project is, is het buildserviceaccount voor het beheren van machtigingen uw-project-naam Build-service (uw-verzameling-naam).
Aanvullende toegang tot de Build-service van Project Collection (uw-verzameling-naam) beperken of verlenen:
- Selecteer Beveiliging beheren in het overloopmenu op de pagina Pijplijnen .
- Selecteer onder Gebruikers de buildservice voor projectverzamelingen (naam van uw verzameling).
- Breng eventuele wijzigingen aan in de machtigingen voor pijplijnen voor dit account.
- Navigeer naar organisatie-instellingen voor uw Azure DevOps-organisatie (of verzamelingsinstellingen voor uw projectverzameling).
- Selecteer Machtigingen onder Beveiliging.
- Zoek op het tabblad Gebruikers naar Project Collection Build Service (naam van uw verzameling).
- Breng eventuele wijzigingen aan in de machtigingen die niet aan pijplijnen zijn gerelateerd voor dit account.
- Aangezien De buildservice voor projectverzamelingen (uw-verzameling-naam) een gebruiker in uw organisatie of verzameling is, kunt u dit account expliciet toevoegen aan elke resource, bijvoorbeeld aan een feed in Azure Artifacts.
Als u aanvullende toegang wilt beperken of verlenen tot de Build-service van uw projectnaam (uw-verzameling-naam):
- Het buildserviceaccount waarop u machtigingen kunt beheren, wordt alleen gemaakt nadat u de pijplijn eenmaal hebt uitgevoerd. Zorg ervoor dat u de pijplijn al eenmaal hebt uitgevoerd.
- Selecteer Beveiliging beheren in het overloopmenu op de pagina Pijplijnen .
- Selecteer onder Gebruikers uw-project-naam Build-service (uw-verzameling-naam).
- Breng eventuele wijzigingen aan in de machtigingen voor pijplijnen voor dit account.
- Navigeer naar organisatie-instellingen voor uw Azure DevOps-organisatie (of verzamelingsinstellingen voor uw projectverzameling).
- Selecteer Machtigingen onder Beveiliging.
- Zoek op het tabblad Gebruikers naar de buildservice Your-project-name (your-collection-name).
- Breng eventuele wijzigingen aan in de machtigingen die niet aan pijplijnen zijn gerelateerd voor dit account.
- Aangezien Uw-project-naam Build Service (uw-verzameling-naam) een gebruiker in uw organisatie of verzameling is, kunt u dit account expliciet toevoegen aan elke resource, bijvoorbeeld aan een feed in Azure Artifacts.
Machtigingen voor een project configureren voor toegang tot een ander project in dezelfde projectverzameling
In dit voorbeeld krijgt de fabrikam-tailspin/SpaceGameWeb
build-identiteit binnen het projectbereik machtigingen om toegang te krijgen tot het fabrikam-tailspin/FabrikamFiber
project.
Navigeer in het FabrikamFiber-project naar Project-instellingen, Machtigingen.
Maak een nieuwe groep met de naam Externe projecten en voeg het account SpaceGameWeb Build Service toe.
Kies Gebruikers, begin te typen in de naam SpaceGameWeb en selecteer het account SpaceGameWeb Build Service . Als u in eerste instantie geen zoekresultaten ziet, selecteert u Zoeken uitvouwen.
Verdeel de machtiging Gegevens op projectniveau weergeven voor die gebruiker.
Voorbeeld: machtigingen configureren voor toegang tot een andere opslagplaats in dezelfde projectverzameling
In dit voorbeeld krijgt de fabrikam-tailspin/SpaceGameWeb
build-identiteit binnen het projectbereik toestemming om toegang te krijgen tot de FabrikamFiber
opslagplaats in het fabrikam-tailspin/FabrikamFiber
project.
Volg de stappen om de
SpaceGameWeb
build-identiteit binnen het projectbereik te verlenen voor toegang tot hetFabrikamFiber
project.Navigeer in het FabrikamFiber-project naar Project-instellingen, Opslagplaatsen, FabrikamFiber.
Kies het + pictogram, begin te typen in de naam SpaceGameWeb en selecteer het account SpaceGameWeb Build Service .
Begin met typen in de naam SpaceGameWeb en selecteer het Account SpaceGameWeb Build Service .
Verken leesmachtigingen voor die gebruiker.
Voorbeeld: machtigingen configureren voor toegang tot andere resources in dezelfde projectverzameling
In dit voorbeeld krijgt de fabrikam-tailspin/SpaceGameWeb
build-identiteit binnen het projectbereik machtigingen om toegang te krijgen tot andere resources in het fabrikam-tailspin/FabrikamFiber
project.
Volg de stappen om de
SpaceGameWeb
build-identiteit binnen het projectbereik te verlenen voor toegang tot hetFabrikamFiber
project.Configureer de gewenste machtigingen voor die gebruiker.
Veelgestelde vragen
Hoe kan ik het bereik voor taakautorisatie van mijn YAML-pijplijn bepalen?
- Als uw project een openbaar project is, is het bereik voor taakautorisatie altijd project , ongeacht andere instellingen.
Alle YAML-pijplijnen in Azure DevOps Server 2019 worden uitgevoerd onder het autorisatiebereik van de verzamelingstaak .
- Controleer de pijplijninstellingen onder de instellingen van uw Azure DevOps-organisatie:
- Als het bereik voor taakautorisatie beperken tot het huidige project is ingeschakeld, is het bereik een project.
- Als het bereik voor taakautorisatie beperken tot het huidige project niet is ingeschakeld, controleert u de pijplijninstellingen onder de projectinstellingen in Azure DevOps:
- Als het bereik voor taakautorisatie beperken tot het huidige project is ingeschakeld, is het bereik een project.
- Anders is het bereik verzameling.
- Als de pijplijn zich in een privéproject bevindt, controleert u de pijplijninstellingen onder de instellingen van uw Azure DevOps-organisatie:
- Als het bereik voor taakautorisatie beperken tot het huidige project voor niet-releasepijplijnen is ingeschakeld, is het bereik project.
- Als het bereik voor taakautorisatie beperken tot het huidige project voor niet-releasepijplijnen niet is ingeschakeld, controleert u de pijplijninstellingen onder uw Project-instellingen in Azure DevOps:
- Als het bereik voor taakautorisatie beperken tot het huidige project voor niet-releasepijplijnen is ingeschakeld, is het bereik project.
- Anders is het bereik verzameling.
Hoe kan ik het bereik voor taakautorisatie van mijn klassieke build-pijplijn bepalen?
- Als de pijplijn zich in een openbaar project bevindt, is het bereik voor taakautorisatie, ongeacht andere instellingen.
- Open de editor voor de pijplijn en navigeer naar het tabblad Opties .
- Als het autorisatiebereik voor de buildtaak huidig project is, is het bereik project.
- Anders is het bereik een verzameling.
- Controleer de pijplijninstellingen onder de instellingen van uw Azure DevOps-organisatie:
- Als het bereik voor taakautorisatie beperken tot het huidige project is ingeschakeld, is het bereik een project.
- Als het bereik voor taakautorisatie beperken tot het huidige project niet is ingeschakeld, controleert u de pijplijninstellingen onder de projectinstellingen in Azure DevOps:
- Als het bereik voor taakautorisatie beperken tot het huidige project is ingeschakeld, is het bereik een project.
- Als het bereik voor taakautorisatie beperken tot het huidige project niet is ingeschakeld, opent u de editor voor de pijplijn en gaat u naar het tabblad Opties .
- Als het autorisatiebereik voor de buildtaak huidig project is, is het bereik project.
- Anders is het bereik een verzameling.
- Als de pijplijn zich in een privéproject bevindt, controleert u de pijplijninstellingen onder de instellingen van uw Azure DevOps-organisatie:
- Als het bereik voor taakautorisatie beperken tot het huidige project voor niet-releasepijplijnen is ingeschakeld, is het bereik project.
- Als het bereik voor taakautorisatie beperken tot het huidige project voor niet-releasepijplijnen niet is ingeschakeld, controleert u de pijplijninstellingen onder uw Project-instellingen in Azure DevOps:
- Als het bereik voor taakautorisatie beperken tot het huidige project voor niet-releasepijplijnen is ingeschakeld, is het bereik project.
- Als het bereik voor taakautorisatie beperken tot het huidige project voor niet-releasepijplijnen niet is ingeschakeld, opent u de editor voor de pijplijn en gaat u naar het tabblad Opties .
- Als het autorisatiebereik voor de buildtaak huidig project is, is het bereik project.
- Of anders is het bereik een verzameling.
Wanneer u een nieuwe klassieke pijplijn maakt, wordt het bereik voor taakautorisatie ingesteld op het huidige project en is het autorisatiebereik voor de buildtaak standaard ingesteld op project.
Hoe kan ik het bereik voor taakautorisatie van mijn klassieke release-pijplijn bepalen?
Klassieke releasepijplijnen in Azure DevOps Server 2020 en hieronder worden uitgevoerd met een verzamelingsbereik .
- Als de pijplijn zich in een openbaar project bevindt, is het bereik voor taakautorisatie, ongeacht andere instellingen.
- Als de pijplijn zich in een privéproject bevindt, controleert u de pijplijninstellingen onder de instellingen van uw Azure DevOps-organisatie:
- Als het bereik voor taakautorisatie beperken tot het huidige project voor releasepijplijnen is ingeschakeld, is het bereik project.
- Als het bereik voor taakautorisatie beperken tot het huidige project voor release-pijplijnen niet is ingeschakeld, controleert u de pijplijninstellingen onder de projectinstellingen in Azure DevOps:
- Als het bereik voor taakautorisatie beperken tot het huidige project voor releasepijplijnen is ingeschakeld, is het bereik project.
- Anders is het bereik verzameling.