共用方式為


限定範圍的 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 金鑰可以套用至一或多個套件、具有授與特定權限的不同範圍,以及與之相關聯的到期日。

在下列範例中,您有一個名為的 Contoso service CI API 金鑰,可用來推送特定 Contoso.Service 套件的套件,且有效期為 365 天。 這是一般案例,其中同一組織內的不同小組處理不同的套件,而小組成員會獲得金鑰,以僅授與他們正在處理的套件的專用權。 過期可作為防止過時或忘記金鑰的機制。

建立 API 金鑰

使用glob模式

如果您正在處理多個套件,且有大量套件要管理,您可以選擇使用通配符來同時選取多個套件。 例如,如果您想將特定範圍授予所有其 ID 以Fabrikam.Service開頭的套件鍵,您可以在 Glob 型樣文字方塊中指定fabrikam.service.*

建立 API 金鑰 - 2

使用 glob 模式來判斷 API 金鑰權限也適用於符合 glob 模式的新套件。 例如,如果您嘗試推送名為 Fabrikam.Service.Framework的新套件,您可以使用先前建立的金鑰來執行此操作,因為該套件符合 glob 模式 fabrikam.service.*

安全地取得 API 金鑰

為了安全起見,新建立的金鑰永遠不會顯示在螢幕上,只能使用 「複製」 按鈕使用。 同樣地,在頁面重新整理後,無法存取鑰匙。

建立 API 金鑰 - 3

編輯現有的 API 金鑰

您可能也想要更新金鑰許可權和範圍,而不變更金鑰本身。 如果您有單一套件具有特定範圍的金鑰,您可以選擇在一或多個其他套件上套用相同的範圍。

建立 API 金鑰 - 4

重新整理或刪除現有的 API 金鑰

帳戶擁有者可以選擇重新整理金鑰,在此情況下,權限 (對套件)、範圍和到期時間保持不變,但會發出新金鑰,使舊金鑰無法使用。 這有助於管理過時的金鑰或可能發生 API 金鑰洩漏的情況。

建立 API 金鑰 - 5

如果不再需要這些金鑰,您也可以選擇刪除它們。 刪除金鑰會移除該金鑰並使其無法使用。

FAQs

我的舊 (舊) API 金鑰會怎樣?

您的舊 API 金鑰 (舊版) 會繼續運作,只要您希望它運作,就可以運作。 但是,如果這些金鑰超過 365 天未用於推送套件,則它們將被淘汰。 如需詳細資訊,請參閱部落格文章變更 即將到期的 API 金鑰。 您無法再重新整理此金鑰。 您必須刪除舊版金鑰,並改為建立新的範圍金鑰。

備註

此金鑰具有所有套件的所有權限,而且永遠不會過期。 您應該考慮刪除此金鑰,並建立具有範圍許可權和明確到期的新金鑰。

我可以建立多少個 API 金鑰?

您可以建立的 API 金鑰數量沒有限制。 然而,我們建議您將其保持在可控的數量內,這樣您就不會擁有許多過時或未使用的密鑰,而不知道它們在哪裡或由誰使用。

我可以刪除舊版 API 金鑰或立即停止使用嗎?

是的。 您可以 (而且您可能應該) 刪除舊版 API 金鑰。

我可以取回我錯誤刪除的 API 密鑰嗎?

否。 刪除後,您只能建立新金鑰。 意外刪除的密鑰無法恢復。

舊的 API 金鑰在 API 金鑰重新整理後是否繼續運作?

否。 重新整理金鑰之後,會產生一個新金鑰,其範圍、許可權和到期時間與舊金鑰相同。 舊鑰匙不復存在。

我可以為現有的 API 金鑰授予更多權限嗎?

您無法修改範圍,但可以編輯其適用的套件清單。

我如何知道我的任何金鑰是否已過期或即將過期?

如果任何密鑰過期,我們將通過頁面頂部的警告消息通知您。 我們還會在密鑰到期前十天向帳戶持有人發送一封警告電子郵件,以便您可以提前採取行動。