Mengidentifikasi Token Akses yang didukung

Selesai

Di sini, Anda mempelajari tentang berbagai token akses GitHub, aplikasi, batasan, dan batas tarifnya.

Saat Anda memberikan akses ke pengguna dalam perusahaan Anda, autentikasi sangat penting. Akses pengguna harus dibatasi dengan ketat dan hanya menyertakan apa yang diperlukan pengguna untuk menyelesaikan tugas mereka. Memahami token akses yang berbeda penting karena Anda membantu memandu pengguna dalam perusahaan untuk menggunakan opsi terbaik untuk kasus penggunaan mereka.

GitHub menggunakan berbagai token yang memungkinkan pengguna untuk mengautentikasi ke berbagai aktivitas yang perlu mereka lakukan. Biasanya, token yang berbeda ini mudah, dan mudah untuk mengetahui token apa yang digunakan. Tetapi kadang-kadang, beberapa token dapat digunakan untuk mencapai hasil yang sama, sehingga memilih token dapat turun ke keputusan yang baik, lebih baik, dan terbaik. Dalam situasi ini, penting untuk mengidentifikasi karakteristik token GitHub dan cara mencakup akses token dengan benar. Berikut adalah daftar berbagai token akses yang tersedia:

  • Token akses pribadi GitHub
  • GitHub token pengguna-ke-server
  • GitHub token server-ke-server
  • Token akses OAuth
  • Token refresh

Sangat penting untuk mendorong tim pengembangan Anda untuk menggunakan token dengan cakupan yang tepat sehingga ketika kerentanan keamanan ditemukan, risikonya dapat dikurangi dengan cepat. Mari kita lihat lebih dekat ke masing-masing token akses ini.

Token Akses Pribadi

Token akses pribadi (PAT) adalah alternatif untuk menggunakan kata sandi untuk mengautentikasi ke GitHub. Untuk mendorong dan menarik repositori, GitHub perlu memverifikasi akses pengguna. Verifikasi dilakukan melalui alamat email terverifikasi pengguna. Anda dapat membuat token akses pribadi sebanyak yang diperlukan alur kerja Anda, dan Anda harus memperlakukan token akses pribadi seaman kata sandi. Menggunakan token yang berbeda untuk aplikasi yang berbeda adalah praktik terbaik untuk keamanan. Untuk membuat token akses pribadi di GitHub, Anda menavigasi ke Pengaturan, dan di bawah Pengaturan pengembang, pilih Token akses pribadi.

Cuplikan layar dengan contoh token akses pribadi GitHub.

Anda dapat mencakup token individual untuk hanya mengizinkan akses yang diperlukan untuk mengautentikasi pekerjaan yang Anda tetapkan. Token terikat ke pengguna tertentu, dan selaras dengan akses pengguna ke organisasi dan repositori. Anda dapat mencabut token akses pribadi kapan saja, yang sangat penting ketika masalah keamanan terjadi. Penting untuk berkomunikasi dengan tim Anda bahwa token akses pribadi mereka harus diperlakukan sebagai aman sebagai nama pengguna dan kata sandi. Jika token benar-benar disusupi, Anda harus segera mengambil tindakan untuk mencabut token tersebut.

Langkah-langkah terperinci untuk membuat token akses pribadi tersedia di sini: Membuat token akses pribadi - Dokumen GitHub

Token Perangkat

Token Perangkat pada dasarnya adalah versi akun mesin dari PAT, yang digunakan dalam konteks perangkat, yang memberikan akses ke repositori tertentu dalam kasus penggunaan tertentu yang tidak terikat pengguna. Penyiapan aplikasi menggunakan alur OAuth menggunakan token perangkat. Mereka biasanya digunakan dengan runner, layanan aplikasi khusus, pekerjaan Cron (di Linux), atau skenario serupa lainnya yang terkait dengan tugas otomatis. Sama seperti token akses pribadi, token perangkat terkait dengan akun individual, dan akun tempat Anda membuat token perangkat menggunakan lisensi.

GitHub Token Penginstalan Aplikasi

Token penginstalan memungkinkan aplikasi GitHub membuat permintaan API terautentikasi untuk penginstalan aplikasi di organisasi. Sebelum membuat token penginstalan, Anda harus terlebih dahulu menginstal aplikasi GitHub yang berlaku untuk token, di repositori tujuan. Token penginstalan berlaku selama satu jam, dan aman karena dibuat untuk tujuan tertentu dan kedaluwarsa dalam waktu yang relatif singkat.

Token Akses OAuth

Token OAuth2 digunakan untuk mengotorisasi pengguna untuk aplikasi OAuth standar yang berjalan di browser, dan untuk aplikasi tanpa kepala seperti alat CLI. Token penginstalan mengizinkan aplikasi Anda mengakses API dengan token akses pengguna. Token ini memungkinkan Anda menghubungkan identitas pengguna GitHub Anda ke aplikasi pihak ketiga, memungkinkan aplikasi melakukan tindakan atas nama Anda. Misalnya, jika Anda ingin menggunakan aplikasi yang meminta user:email cakupan, aplikasi diberikan akses baca-saja ke alamat email privat Anda. Token ini dapat diperoleh menggunakan alur aplikasi web untuk aplikasi produksi. Karena token ini bersifat jangka pendek dan kedaluwarsa dalam 10 menit, token tersebut juga aman.

Token Refresh

Token refresh terhubung dengan token OAuth. Ketika token OAuth baru (melalui permintaan pengguna-ke-server) diberikan, token refresh disertakan dalam respons. Ketika token pengguna kedaluwarsa, token refresh dapat ditukar dengan token pengguna baru dengan permintaan panggilan balik. Setiap kali token OAuth baru dikeluarkan, token refresh disertakan. Token refresh berlaku selama enam bulan dan merupakan pengingat yang baik untuk memperbarui token OAuth Anda.

Prefiks yang dapat diidentifikasi

Seperti yang kita lihat di seluruh industri, prefiks token adalah cara yang jelas untuk membuat token dapat diidentifikasi. GitHub menyertakan awalan tiga huruf untuk mewakili setiap token. Awalan dimulai dengan dua huruf yang menandakan perusahaan, gh, dan diikuti dengan huruf pertama dari jenis token. Awalan untuk jenis token akses yang tersedia adalah:

  • ghp untuk token akses pribadi GitHub
  • ghu untuk token server pengguna-ke-server GitHub
  • ghs untuk token server-ke-server GitHub
  • gho untuk token akses OAuth
  • ghr untuk token refresh

Selain itu, prefiks ini memiliki pemisah: _ dalam token untuk meningkatkan keterbacaan. Garis bawah bukan karakter Base64, yang membantu memastikan bahwa string yang dihasilkan secara acak seperti Secure Hash Algorithms (SHAs) tidak dapat secara tidak sengaja menduplikasi token ini. Awalan juga membantu mengurangi tingkat positif palsu untuk pemindaian rahasia, yang merupakan fitur keamanan lanjutan GitHub untuk lebih meningkatkan keamanan dalam repositori GitHub Anda.

Batas tarif token

Melebihi batas laju dapat menyebabkan hilangnya waktu pengembangan. Mari kita bicara tentang batas tarif untuk Aplikasi GitHub dan aplikasi OAuth. Dengan memahami batas tarif, Anda dapat menjadi sumber daya bagi pengembang di tim Anda, membantu mengoptimalkan investasi organisasi Anda dalam sumber daya GitHub ini.

Batas kecepatan membantu mengontrol kecepatan lalu lintas di GitHub, dan didasarkan pada permintaan per jam.

  • Aplikasi GitHub yang diinstal pada akun enterprise GitHub memiliki batas tarif permintaan sebesar 15.000 permintaan per jam.
  • Aplikasi OAuth diautentikasi ke pengguna individu dan dibatasi hingga 5.000 permintaan per jam.

Untuk administrator Enterprise, Anda harus memantau batas laju aplikasi dan bekerja sama dengan pengembang untuk menyesuaikan skrip mereka agar tetap dalam batas. Biasanya, batas tarif tidak menjadi perhatian sampai pengembang Anda melakukan sesuatu seperti menulis skrip yang meminta terlalu banyak informasi dalam alur kerja. Tiba-tiba, pengembangan terhenti dan batas laju menjadi hambatan. Anda dapat menghindari masalah kelebihan batas tarif ini dengan membatasi jumlah permintaan per jam atau mengubah alur kerja untuk menunggu di antara permintaan. Jika Anda melebihi batas tarif menggunakan Autentikasi Dasar atau OAuth, Anda mungkin dapat memperbaiki masalah dengan penembolokan respons API dan menggunakan permintaan kondisional.

Dari konsol manajemen, Anda dapat menyiapkan batas kecepatan kustom untuk pengguna yang tidak diautentikasi di perusahaan Anda dan membuat daftar pengecualian, yang memungkinkan pengguna tertentu menggunakan batas kecepatan API penuh.

Cuplikan layar konsol manajemen yang mengatur batas laju API.

Anda dapat memeriksa status batas tarif saat ini kapan saja menggunakan API Batas Tarif berikut. Header HTTP yang dikembalikan dari permintaan API apa pun menunjukkan status batas tarif Anda saat ini.

curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/rate_limit

Contoh tanggapan

{
  "resources": {
    "core": {
      "limit": 5000,
      "remaining": 4999,
      "reset": 1372700873,
      "used": 1
    },
    "search": {
      "limit": 30,
      "remaining": 18,
      "reset": 1372697452,
      "used": 12
    },
    "graphql": {
      "limit": 5000,
      "remaining": 4993,
      "reset": 1372700389,
      "used": 7
    },
    "integration_manifest": {
      "limit": 5000,
      "remaining": 4999,
      "reset": 1551806725,
      "used": 1
    },
    "code_scanning_upload": {
      "limit": 500,
      "remaining": 499,
      "reset": 1551806725,
      "used": 1
    }
  },
  "rate": {
    "limit": 5000,
    "remaining": 4999,
    "reset": 1372700873,
    "used": 1
  }
}

Untuk informasi lebih rinci tentang batas tarif, referensi Pembatasan Tarif pada Dokumen GitHub.