Поделиться через


Ключи API с областью действия

Чтобы сделать NuGet более безопасной средой для распространения пакетов, вы можете контролировать ключи API, добавив области.

Возможность разграничения доступа для ваших ключей API обеспечивает более эффективное управление API. Вы можете:

  • Создайте несколько ключей API с областью действия, которые можно использовать для разных пакетов с различными сроками действия.
  • Безопасное получение ключей API.
  • Измените существующие ключи API, чтобы изменить применимость пакета.
  • Обновите или удалите существующие ключи API, не препятствуя операциям с помощью других ключей.

Почему мы поддерживаем ключи API с областью действия?

Мы поддерживаем области для ключей API, чтобы обеспечить более подробные разрешения. Ранее NuGet предложил один ключ API для учетной записи, и этот подход имел несколько недостатков:

  • Один ключ API для управления всеми пакетами. С одним ключом API, который используется для управления всеми пакетами, трудно безопасно предоставить общий доступ к ключу, если несколько разработчиков участвуют в различных пакетах и когда они совместно используют учетную запись издателя.
  • Все разрешения или ни одно из них. У всех, у кого есть доступ к ключу API, есть все разрешения (публикация, отправка и удаление из списка) для пакетов. Это часто не желательно в среде с несколькими командами.
  • Единая точка сбоя. Один ключ API также означает одну точку сбоя. Если ключ скомпрометирован, все пакеты, связанные с учетной записью, могут быть скомпрометированы. Обновление ключа API — единственный способ ликвидировать утечку данных и избежать прерывания рабочего процесса CI/CD. Кроме того, могут возникнуть случаи, когда вы хотите отозвать доступ к ключу API для отдельного человека (например, когда сотрудник покидает организацию). Нет чистого способа справиться с этим сегодня.

При использовании ключей API с областью действия мы пытаемся устранить эти проблемы, убедившись, что ни один из существующих рабочих процессов не прерывается.

Получение ключа API

  1. Войдите в учетную запись nuget.org или создайте учетную запись , если у вас еще нет учетной записи .

  2. Выберите имя пользователя в правом верхнем углу и выберите ключи API.

  3. Выберите "Создать" и укажите имя ключа.

  4. В разделе "Выбор областей" выберите "Отправить".

  5. В разделе «Выбор пакетов»>Глобальный шаблон введите *.

  6. Нажмите кнопку "Создать".

  7. Выберите "Копировать", чтобы скопировать новый ключ.

    Снимок экрана: новый ключ API со ссылкой

Это важно

  • Всегда сохраняйте секрет ключа API. Ключ API похож на пароль, позволяющий любому пользователю управлять пакетами от вашего имени. Удалите или повторно создайте ключ API, если он случайно обнаружен.
  • Сохраните ключ в безопасном расположении, так как вы не сможете скопировать ключ позже. Если вы вернеесь на страницу ключа API, необходимо повторно создать ключ, чтобы скопировать его. Вы также можете удалить ключ API, если вы больше не хотите отправлять пакеты.

Определение области позволяет создавать отдельные ключи API для различных целей. Каждый ключ имеет срок действия, и вы можете ограничить ключ определенными пакетами или шаблонами glOB-объектов. Кроме того, каждый ключ применяется к определенным операциям: отправка новых пакетов и версий пакетов, отправка только новых версий пакетов или отмена списка.

Определяя область действия, можно создавать ключи API для разных пользователей, которые управляют пакетами для вашей организации, чтобы у них были только те разрешения, которые им необходимы.

Создание ключей API с областью действия

Вы можете создать несколько ключей API на основе ваших требований. Ключ API может применяться к одному или нескольким пакетам, иметь различные области, предоставляющие определенные привилегии, и иметь дату окончания срока действия.

В следующем примере у вас есть ключ API с именем Contoso service CI , который можно использовать для отправки пакетов для определенных Contoso.Service пакетов и действителен в течение 365 дней. Это типичный сценарий, когда разные команды в одной организации работают над различными пакетами, и члены команды предоставляют ключ, предоставляющий им привилегии только для пакета, над которым они работают. Срок действия служит механизмом предотвращения устаревших или забытых ключей.

Создание ключей API

Используйте шаблоны glob

Если вы работаете с несколькими пакетами и имеете большой список пакетов для управления, вы можете использовать шаблоны глоббинга для выбора нескольких пакетов вместе. Например, если вы хотите предоставить определенные скоупы ключу для всех пакетов, идентификатор которых начинается с Fabrikam.Service, это можно сделать, указав fabrikam.service.* в текстовом поле шаблона Glob.

Создание ключей API — 2

Использование шаблонов glob для определения разрешений ключа API также применяется к новым пакетам, соответствующим шаблону glob. Например, при попытке отправить новый пакет с именем Fabrikam.Service.Framework можно осуществить это с помощью ключа, созданного ранее, так как пакет соответствует fabrikam.service.* шаблону glob.

Безопасное получение ключей API

Для безопасности только что созданный ключ никогда не отображается на экране и доступен только с помощью кнопки "Копировать ". Аналогичным образом ключ недоступен после обновления страницы.

Создание ключей API — 3

Изменение существующих ключей API

Вы также можете обновить разрешения и области ключа, не изменяя сам ключ. Если у вас есть ключ с определенными областями для одного пакета, вы можете применить те же области к одному или многим другим пакетам.

Создание ключей API — 4

Обновление или удаление существующих ключей API

Владелец учетной записи может обновить ключ, в этом случае разрешение (в пакетах), область действия и срок действия остаются неизменными, но новый ключ выдается, что делает старый ключ непригодным для использования. Это полезно при управлении устаревшими ключами или при утечке ключей API.

Создание ключей API — 5

Вы также можете удалить эти ключи, если они больше не нужны. Удаление ключа удаляет ключ и делает его непригодным для использования.

FAQs

Что происходит со старым (устаревшим) ключом API?

Старый ключ API (устаревшая версия) продолжает работать и может работать до тех пор, пока вы хотите, чтобы он работал. Однако эти ключи будут удалены, если они не использовались более 365 дней для отправки пакета. Дополнительные сведения см. в записи блога Об изменениях ключей API с истекающим сроком действия. Вы больше не можете обновить этот ключ. Вместо этого необходимо удалить устаревший ключ и создать новый ключ с областью действия.

Замечание

Этот ключ имеет все разрешения для всех пакетов, и он никогда не истекает. Необходимо удалить этот ключ и создать новые ключи с разрешениями с заданной областью действия и определенным сроком действия.

Сколько ключей API можно создать?

Количество ключей API, которые можно создать, не ограничено. Тем не менее, мы советуем вам держать их в управляемом количестве, чтобы избежать ситуации, когда у вас накапливается много устаревших ключей, и вы не знаете, кто и где их использует.

Можно ли удалить устаревший ключ API или прекратить использование?

Да. Вы можете и, вероятно, следует удалить устаревший ключ API.

Можно ли вернуть ключ API, который я удалил по ошибке?

Нет. После удаления можно создать только новые ключи. Восстановление невозможно для случайно удаленных ключей.

Продолжает ли старый ключ API работать при обновлении ключа API?

Нет. После обновления ключа создается новый ключ с той же областью, разрешением и сроком действия, что и старый. Старый ключ перестает существовать.

Можно ли предоставить дополнительные разрешения существующему ключу API?

Невозможно изменить область применения, но можно отредактировать список пакетов, к которым она относится.

Как узнать, истек ли срок действия какого-либо из моих ключей или срок их действия подходит к концу?

Если срок действия ключа истекает, мы сообщите вам об этом с помощью предупреждения в верхней части страницы. Мы также отправим предупреждение владельцу учетной записи десять дней до истечения срока действия ключа, чтобы вы могли действовать заранее.