Condividi tramite


Chiavi API con ambito

Per rendere NuGet un ambiente più sicuro per la distribuzione dei pacchetti, è possibile assumere il controllo delle chiavi API aggiungendo ambiti.

La possibilità di definire l'ambito delle chiavi API offre un controllo migliore sulle API. È possibile:

  • Creare più chiavi API con ambito che possono essere usate per pacchetti diversi con intervalli di scadenza diversi.
  • Ottenere le chiavi API in modo sicuro.
  • Modificare le chiavi API esistenti per modificare l'applicabilità del pacchetto.
  • Aggiornare o eliminare chiavi API esistenti senza ostacolare le operazioni che usano altre chiavi.

Perché sono supportate le chiavi API con ambito?

Sono supportati ambiti per le chiavi API per consentire di disporre di autorizzazioni più granulari. In precedenza, NuGet offriva una singola chiave API per un account e questo approccio presentava diversi svantaggi:

  • Una chiave API per controllare tutti i pacchetti. Con una singola chiave API usata per gestire tutti i pacchetti, è difficile condividere in modo sicuro la chiave quando più sviluppatori sono coinvolti in pacchetti diversi e quando condividono un account di pubblicazione.
  • Tutte le autorizzazioni o nessuna. Chiunque abbia accesso alla chiave API ha tutte le autorizzazioni (pubblicazione, push e annullamento dell'elenco) nei pacchetti. Questo spesso non è auspicabile nell'ambiente con più team.
  • Singolo punto di guasto. Una singola chiave API significa anche un singolo punto di errore. Se la chiave viene compromessa, tutti i pacchetti associati all'account potrebbero essere potenzialmente compromessi. L'aggiornamento della chiave API è l'unico modo per risolvere la falla ed evitare un'interruzione del tuo flusso di lavoro CI/CD. Inoltre, possono verificarsi casi in cui si vuole revocare l'accesso alla chiave API per un individuo, ad esempio quando un dipendente lascia l'organizzazione. Non c'è un modo pulito per gestire questo oggi.

Con le chiavi API con ambito, si tenta di risolvere questi problemi assicurandosi che nessuno dei flussi di lavoro esistenti si interrompa.

Acquisire una chiave API

  1. Accedi al tuo account nuget.org o crea un account se non ne hai già uno.

  2. Selezionare il nome utente in alto a destra e quindi selezionare Chiavi API.

  3. Selezionare Crea e specificare un nome per la chiave.

  4. In Seleziona ambiti selezionare Push.

  5. In Seleziona pacchetti>modello Glob, immettere *.

  6. Fare clic su Crea.

  7. Selezionare Copia per copiare la nuova chiave.

    Screenshot che mostra la nuova chiave API con il link per copiare.

Importante

  • Mantenere sempre la chiave API un segreto. La chiave API è simile a una password che consente a chiunque di gestire i pacchetti per conto dell'utente. Eliminare o rigenerare la chiave API se viene accidentalmente rivelata.
  • Salvare la chiave in una posizione sicura, perché non è possibile copiare di nuovo la chiave in un secondo momento. Se si torna alla pagina della chiave API, è necessario rigenerare la chiave per copiarla. È anche possibile rimuovere la chiave API se non si vuole più eseguire il push dei pacchetti.

Scoping consente di creare chiavi API separate per scopi diversi. Ogni chiave ha un intervallo di tempo di scadenza ed è possibile definire l'ambito della chiave a pacchetti o modelli GLOB specifici. È anche possibile definire l'ambito di ogni chiave per operazioni specifiche: eseguire il push di nuovi pacchetti e versioni dei pacchetti, eseguire il push solo di nuove versioni del pacchetto o annullare l'elenco.

Tramite la definizione dell'ambito, è possibile creare chiavi API per persone diverse che gestiscono i pacchetti per l'organizzazione in modo che abbiano solo le autorizzazioni necessarie.

Creare chiavi API con ambito specifico

È possibile creare più chiavi API in base ai requisiti. Una chiave API può essere applicata a uno o più pacchetti, avere ambiti diversi che concedono privilegi specifici e avere una data di scadenza associata.

Nell'esempio seguente è disponibile una chiave API denominata Contoso service CI che può essere usata per eseguire il push dei pacchetti per pacchetti specifici Contoso.Service ed è valida per 365 giorni. Si tratta di uno scenario tipico in cui diversi team all'interno della stessa organizzazione lavorano su pacchetti diversi e ai membri del team viene fornita la chiave che concede loro privilegi solo per il pacchetto su cui stanno lavorando. La scadenza funge da meccanismo per evitare chiavi non aggiornati o dimenticate.

Creare chiavi API

Usare i modelli GLOB

Se si lavora su più pacchetti e si dispone di un elenco di pacchetti di grandi dimensioni da gestire, è possibile scegliere di usare pattern di globbing per selezionare più pacchetti insieme. Ad esempio, se si desidera concedere ambiti specifici a una chiave per tutti i pacchetti il cui ID inizia con Fabrikam.Service, è possibile farlo specificando fabrikam.service.* nella casella di testo modello Glob .

Creare chiavi API - 2

L'uso di modelli GLOB per determinare le autorizzazioni della chiave API si applica anche ai nuovi pacchetti corrispondenti al modello GLOB. Ad esempio, se si tenta di eseguire il push di un nuovo pacchetto denominato Fabrikam.Service.Framework, è possibile farlo con la chiave creata in precedenza, poiché il pacchetto corrisponde al modello fabrikam.service.*GLOB .

Ottenere le chiavi API in modo sicuro

Per motivi di sicurezza, una chiave appena creata non viene mai visualizzata sullo schermo ed è disponibile solo usando il pulsante Copia . Analogamente, la chiave non è accessibile dopo l'aggiornamento della pagina.

Creare chiavi API - 3

Modificare le chiavi API esistenti

È anche possibile aggiornare le autorizzazioni e gli ambiti della chiave senza modificare la chiave stessa. Se si dispone di una chiave con ambiti specifici per un singolo pacchetto, è possibile scegliere di applicare gli stessi ambiti a uno o più altri pacchetti.

Creare chiavi API - 4

Aggiornare o eliminare chiavi API esistenti

Il proprietario dell'account può scegliere di aggiornare la chiave, nel qual caso l'autorizzazione (per i pacchetti), l'ambito e la scadenza rimangono invariati, ma viene emessa una nuova chiave rendendo inutilizzabile la chiave precedente. Ciò è utile per la gestione delle chiavi non aggiornate o in caso di potenziale perdita di API key.

Creare chiavi API - 5

È anche possibile scegliere di eliminare queste chiavi se non sono più necessarie. L'eliminazione di una chiave rimuove la chiave e lo rende inutilizzabile.

FAQs

Cosa accade alla chiave API precedente (legacy)

La chiave API precedente (legacy) continua a funzionare e può funzionare purché funzioni. Tuttavia, queste chiavi verranno ritirate se non sono state usate per più di 365 giorni per eseguire il push di un pacchetto. Per altri dettagli, vedere il post di blog Modifiche alle chiavi API in scadenza. Non è più possibile aggiornare questa chiave. È necessario eliminare la chiave legacy e creare invece una nuova chiave con ambito.

Annotazioni

Questa chiave dispone di tutte le autorizzazioni per tutti i pacchetti e non scade mai. È consigliabile eliminare questa chiave e creare nuove chiavi con autorizzazioni con ambito e scadenza definita.

Quante chiavi API è possibile creare?

Non è previsto alcun limite per il numero di chiavi API che è possibile creare. Tuttavia, ti consigliamo di mantenerlo a un conteggio gestibile in modo da non avere molte chiavi non aggiornate senza conoscere dove e chi li usa.

È possibile eliminare la chiave API legacy o interrompere l'uso ora?

Sì. È possibile e probabilmente eliminare la chiave API legacy.

È possibile recuperare la chiave API eliminata per errore?

No Dopo l'eliminazione, è possibile creare solo nuove chiavi. Non è possibile eseguire il ripristino per le chiavi eliminate accidentalmente.

La chiave API precedente continua a funzionare dopo l'aggiornamento della chiave API?

No Dopo aver aggiornato una chiave, viene generata una nuova chiave con lo stesso ambito, autorizzazione e scadenza di quella precedente. La chiave precedente smette di esistere.

È possibile concedere altre autorizzazioni a una chiave API esistente?

Non è possibile modificare l'ambito, ma è possibile modificare l'elenco di pacchetti a cui è applicabile.

Come posso sapere se una delle mie chiavi è scaduta o sta per scadere?

Se una chiave scade, verrà visualizzato un messaggio di avviso nella parte superiore della pagina. Inviamo inoltre un messaggio di avviso al titolare del conto dieci giorni prima della scadenza della chiave in modo da poter agire in anticipo.