PyPI adalah repositori perangkat lunak resmi untuk aplikasi pihak ketiga dalam bahasa pemrograman Python.
Beberapa hari yang lalu tersiar kabar bahwa repositori paket Python PyPI (Indeks Paket Python) sudah menyediakan kemampuan untuk menggunakan metode baru yang aman untuk menerbitkan paket, yang menghilangkan kebutuhan untuk menyimpan kata sandi keras dan token akses API di sistem eksternal (misalnya, di GitHub Actions).
Metode otentikasi baru memiliki nama'Penerbit Tepercaya' dan dirancang untuk memecahkan masalah pembaruan berbahaya yang dirilis sebagai akibat dari sistem eksternal yang dikompromikan dan kata sandi atau token yang telah ditentukan sebelumnya jatuh ke tangan yang salah.
Mulai hari ini, pengelola paket PyPI dapat mengadopsi metode penerbitan baru yang lebih aman yang tidak memerlukan kata sandi atau token API yang tahan lama untuk dibagikan dengan sistem eksternal.
Disebutkan bahwa metode autentikasi baru ini memberikan keuntungan kegunaan dan keamanan yang signifikan dibandingkan dengan metode autentikasi PyPI tradisional lainnya:
- Kegunaan: Dengan publikasi tepercaya, pengguna tidak perlu lagi membuat token API secara manual di PyPI dan menyalin dan menempelkannya ke penyedia CI mereka. Satu-satunya langkah manual adalah mengonfigurasi editor di PyPI.
- keamanan: token PyPI API reguler berumur panjang, yang berarti bahwa penyerang yang mengkompromikan rilis paket dapat menggunakannya sampai pengguna yang sah mengetahuinya dan mencabutnya secara manual. Demikian pula, mengunggah dengan kata sandi berarti penyerang dapat mengunggah proyek apa pun yang terkait dengan akun tersebut. Penerbitan Tepercaya menghindari kedua masalah ini: Token yang diterbitkan kedaluwarsa secara otomatis dan terbatas hanya pada paket yang diizinkan untuk diunggah.
Mengenai metode otentikasi baru ini, disebutkan bahwa didasarkan pada standar OpenID Connect (OIDC), yang menggunakan token otentikasi terbatas waktu yang dipertukarkan antara layanan eksternal dan direktori PyPI untuk memvalidasi operasi penerbitan paket, alih-alih menggunakan login/kata sandi tradisional atau API persisten yang dihasilkan secara manual oleh token akses.
“Publikasi Tepercaya” adalah istilah kami untuk menggunakan standar OpenID Connect (OIDC) untuk bertukar token identitas jangka pendek antara layanan pihak ketiga tepercaya dan PyPI. Metode ini dapat digunakan di lingkungan otomatis dan menghilangkan kebutuhan untuk menggunakan kombinasi nama pengguna/kata sandi atau token API yang dibuat secara manual untuk mengautentikasi dengan PyPI saat menerbitkan.
Di sisi lain, juga disebutkan bahwa pengelola paket, di sisi PyPI, dapat memberikan pengidentifikasi kepercayaan kepada Penyedia OpenID (IdP) eksternal, yang akan digunakan layanan eksternal untuk meminta token non-live dari PyPI.
Token OpenID Connect yang dihasilkan mengonfirmasi hubungan antara proyek dan pengontrol, yang memungkinkan PyPI melakukan verifikasi metadata tambahan, seperti memverifikasi bahwa paket yang dipublikasikan dikaitkan dengan repositori tertentu. Token tidak persisten, mereka terikat dengan API tertentu, dan secara otomatis kedaluwarsa setelah masa pakai yang singkat.
Sebagai gantinya, pengelola PyPI dapat mengonfigurasi PyPI untuk mempercayai identitas yang disediakan oleh penyedia identitas (IdP) OpenID Connect tertentu. Hal ini memungkinkan PyPI untuk memverifikasi dan mendelegasikan kepercayaan kepada identitas tersebut, yang kemudian diberi wewenang untuk meminta token API dengan cakupan terbatas dan berumur pendek dari PyPI. Token API ini tidak perlu disimpan atau dibagikan, secara otomatis diputar saat kedaluwarsa cepat, dan memberikan tautan yang dapat diverifikasi antara paket yang diterbitkan dan sumbernya.
Sekarang kemampuan untuk menggunakan mekanisme "Penerbit Tepercaya" Itu sudah diterapkan dan berjalan. untuk pengontrol dimulai pada Tindakan GitHub. Last but not least, juga disebutkan bahwa kompatibilitas dengan Penerbit Tepercaya untuk layanan eksternal lainnya diharapkan di masa mendatang.
Akhirnya jika Anda tertarik untuk mengetahui lebih banyak tentangnya, Anda dapat memeriksa detailnya Di tautan berikut.