Python套件軟體儲存庫服務PyPI的套件維護者,將可以透過使用OpenID Connect(OIDC)標準,以第三方服務登入PyPI,也就是說,維護者能夠不與外部系統共享長期密碼或是API權杖,以更安全的方法發布套件。

OIDC是一種以OAuth 2.0協定為基礎的身分驗證和授權標準,其提供用戶單一憑證,在多個網站和應用程式進行身分驗證的方法,OIDC由於在OAuth 2.0的基礎上,增加了額外的身分資訊,因此應用程式還可以獲得諸如名稱和電子郵件等用戶基本資料。

使用OIDC標準在可信第三方和PyPI之間交換短期身分權杖的功能,被官方稱為可信發布(Trusted Publishing),PyPI提到,可信發布可用於自動化環境,維護者在PyPI發布套件時,將不需要使用帳戶密碼組合,或是手動生成API權杖通過身分驗證。

維護者可以改為在PyPI設定一個可信任的OIDC身分驗證供應商(IdP),使得PyPI能夠驗證和信任該身分,並授權該身分從PyPI請求短期且能力受限的API權杖。PyPI現在支援GitHub Actions可信發布,在將PyPI設定信任GitHub儲存庫和工作流程後,PyPA(Python Packaging Authority)pypi-publish GitHub Action使用者,便可以從工作流程中移除帳號密碼資訊,添加生成身分權杖的權限,開始使用受信任發布。

PyPI強烈建議使用PyPA的GitHub Actions,同時推薦維護者,限制特定發布的GitHub Actions環境,可進一步提高發布工作流程的安全性,雖然配置環境可以選擇,但是官方強烈建議使用GitHub環境。維護者還可以對受信任的GitHub Actions工作流程,添加額外的限制,像是要求每次運作都需要由受信任的儲存庫維護者批准,以進一步提高安全性。

以可信發布功能為基礎,PyPI還將擴展更多安全功能,官方解釋,因為配置和使用受信任的發布者,在專案和儲存庫之間提供了強連結資訊,使PyPI擁有更多可供驗證的後設資料,像是可驗證專案儲存庫的URL等,而且受信任的發布者也允許PyPI以可驗證的方式,關聯特定檔案的發布位置等資訊。

目前PyPI可信發布者僅支援GitHub Actions,而官方提到,由於實作該功能的基礎是通用的,因此不侷限支援單一發布者。PyPI套件維護者也有意願支援其他OpenID Connect身分驗證服務。

熱門新聞

Advertisement