PyPI låter dig nu publicera paket utan att vara bunden till lösenord och tokens

PyPI

PyPI är det officiella programvaruförrådet för tredjepartsapplikationer i programmeringsspråket Python.

För några dagar sedan tillkännagavs att Python-paketförrådet PyPI (Python Package Index) nu erbjuder en ny säker metod för att publicera paket , vilket eliminerar behovet av att lagra fasta lösenord och API-åtkomsttokens på externa system (t.ex. GitHub Actions).

Den nya autentiseringsmetoden kallas "Trusted Publishers" och är utformad för att lösa problemet med att skadliga uppdateringar publiceras till följd av att externa system komprometteras och att fördefinierade lösenord eller tokens hamnar i fel händer.

Från och med idag kan PyPI-paketunderhållare anta en ny, säkrare publiceringsmetod som inte kräver långlivade lösenord eller API-tokens för att dela med externa system.

Det nämns att denna nya autentiseringsmetod ger betydande användbarhets- och säkerhetsfördelar jämfört med de andra traditionella PyPI-autentiseringsmetoderna:

  • användbarhet: Med pålitlig publicering behöver användare inte längre manuellt skapa API-tokens i PyPI och kopiera och klistra in dem i sin CI-leverantör. Det enda manuella steget är att konfigurera editorn i PyPI.
  • säkerhet: vanliga PyPI API-tokens är långlivade, vilket innebär att en angripare som äventyrar en paketversion kan använda den tills dess legitima användare märker och återkallar den manuellt. På samma sätt innebär uppladdning med ett lösenord att en angripare kan ladda upp vilket projekt som helst som är kopplat till kontot. Trusted Publishing undviker båda dessa problem: Utfärdade tokens förfaller automatiskt och är begränsade till endast de paket de har behörighet att ladda upp till.

Angående denna nya autentiseringsmetod nämns det att den är baserad på OpenID Connect ( OIDC)-standarden, som använder tidsbegränsade autentiseringstokens som utbyts mellan externa tjänster och PyPI-katalogen för att validera en paketpubliceringsoperation, istället för att använda en traditionell inloggning/lösenord eller ett permanent API som genereras manuellt av åtkomsttokens.

"Trusted Publication" är vår term för att använda OpenID Connect-standarden (OIDC) för att utbyta kortlivade identitetstokens mellan en betrodd tredjepartstjänst och PyPI. Denna metod kan användas i automatiserade miljöer och eliminerar behovet av att använda användarnamn/lösenordskombinationer eller manuellt genererade API-tokens för att autentisera med PyPI vid publicering.

Å andra sidan nämns det också att paketunderhållare kan, på PyPI-sidan, lita på identifierare som tillhandahålls till externa OpenID Providers (IdPs), som den externa tjänsten kommer att använda för att begära icke-live-tokens av PyPI.

De genererade OpenID Connect-tokens bekräftar relationen mellan projektet och drivrutinen, vilket gör att PyPI kan utföra ytterligare metadataverifiering, till exempel verifiera att det publicerade paketet är kopplat till ett specifikt arkiv. Tokens är inte persistenta, är knutna till specifika API:er och upphör automatiskt att gälla efter en kort livslängd.

Istället kan PyPI-underhållare konfigurera PyPI att lita på en identitet som tillhandahålls av en given OpenID Connect-identitetsleverantör (IdP). Detta tillåter PyPI att verifiera och delegera förtroende till den identiteten, som sedan är auktoriserad att begära kortlivade API-tokens med begränsad omfattning från PyPI. Dessa API-tokens behöver aldrig lagras eller delas, roteras automatiskt vid snabb utgång och ger en verifierbar länk mellan ett publicerat paket och dess källa.

För närvarande är möjligheten att använda mekanismen för betrodda utgivare redan implementerad och i drift för kontrollanter som initierats i GitHub Actions. Slutligen, och viktigt, nämns det också att framtida stöd för betrodda utgivare förväntas för andra externa tjänster.

Slutligen, om du är intresserad av att lära dig mer om detta , kan du hitta detaljerna på följande länk.


Lägg till som prioriterad källa i Google