Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
Accedi al tuo account nuget.org o crea un account se non ne hai già uno.
Selezionare il nome utente in alto a destra e quindi selezionare Chiavi API.
Selezionare Crea e specificare un nome per la chiave.
In Seleziona ambiti selezionare Push.
In Seleziona pacchetti>modello Glob, immettere *.
Fare clic su Crea.
Selezionare Copia per copiare la nuova chiave.
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.
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 .
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.
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.
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.
È 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.