Xác định Mã thông báo Truy nhập được hỗ trợ

Đã hoàn thành

Tại đây, bạn tìm hiểu về các mã thông báo truy cập GitHub khác nhau, các ứng dụng, giới hạn và giới hạn tốc độ của chúng.

Khi bạn cấp quyền truy cập cho người dùng trong công ty của mình, xác thực là vô cùng quan trọng. Truy nhập người dùng phải được giới hạn chặt chẽ và chỉ bao gồm những gì cần thiết cho người dùng để hoàn thành nhiệm vụ của họ. Hiểu rõ các mã thông báo truy nhập khác nhau rất quan trọng vì bạn giúp hướng dẫn người dùng trong công ty sử dụng tùy chọn tốt nhất cho các trường hợp sử dụng của họ.

GitHub sử dụng nhiều mã thông báo khác nhau cho phép người dùng xác thực các hoạt động khác nhau mà họ cần thực hiện. Thông thường, các mã thông báo khác nhau này rất dễ sử dụng và rất dễ dàng để biết nên sử dụng mã thông báo nào. Nhưng đôi khi, nhiều mã thông báo có thể được sử dụng để thực hiện cùng một kết quả, vì vậy việc chọn một mã thông báo có thể đi đến quyết định tốt, tốt hơn và tốt nhất. Trong những tình huống này, điều quan trọng là phải xác định đặc điểm của các mã thông báo của GitHub và cách kiểm soát chính xác quyền truy nhập của mã thông báo. Dưới đây là danh sách các mã thông báo truy nhập khác nhau sẵn dùng:

  • Mã thông báo truy nhập cá nhân GitHub
  • Mã thông báo người dùng đến máy chủ GitHub
  • Mã thông báo từ máy chủ đến máy chủ GitHub
  • Mã thông báo truy nhập OAuth
  • Làm mới mã thông báo

Điều quan trọng là khuyến khích nhóm phát triển của bạn sử dụng mã thông báo với phạm vi phù hợp để khi phát hiện lỗ hổng bảo mật, rủi ro có thể được giảm thiểu nhanh chóng. Chúng ta hãy xem xét kỹ hơn từng mã thông báo truy nhập trong số này.

Mã thông báo Truy nhập Cá nhân

Mã thông báo truy nhập cá nhân (PAT) là phương pháp thay thế cho việc sử dụng mật khẩu để xác thực với GitHub. Để đẩy và kéo vào các kho lưu trữ, GitHub cần xác minh quyền truy cập của người dùng. Quá trình xác minh được thực hiện thông qua địa chỉ email đã xác minh của người dùng. Bạn có thể tạo nhiều mã thông báo truy nhập cá nhân như dòng công việc yêu cầu và bạn nên coi chúng là mật khẩu một cách an toàn. Sử dụng các mã thông báo khác nhau cho các ứng dụng khác nhau là biện pháp tốt nhất để bảo mật. Để tạo mã thông báo truy cập cá nhân trong GitHub, bạn điều hướng đến Cài đặt và trong Cài đặt nhà phát triển, chọn Mã thông báo truy cập cá nhân.

ảnh chụp màn hình với ví dụ về mã thông báo truy nhập cá nhân GitHub.

Bạn có thể xác định phạm vi một mã thông báo riêng lẻ để chỉ cho phép quyền truy cập cần thiết để xác thực công việc mà bạn chỉ định mã thông báo đó. Mã thông báo được liên kết với một người dùng cụ thể và phù hợp với quyền truy nhập của người dùng vào tổ chức và kho lưu trữ. Bạn có thể thu hồi mã truy cập cá nhân bất kỳ lúc nào, điều này đặc biệt quan trọng khi xảy ra sự cố bảo mật. Điều quan trọng là phải thông báo cho nhóm của bạn rằng mã thông báo truy nhập cá nhân của họ phải được coi là một cách an toàn dưới dạng tên người dùng và mật khẩu. Nếu mã thông báo bị xâm phạm, bạn nên thực hiện hành động ngay lập tức để thu hồi mã thông báo.

Các bước chi tiết để tạo mã thông báo truy nhập cá nhân có ở đây: Tạo mã thông báo truy nhập cá nhân - Mã thông báo truy nhập cá nhân GitHub

Mã thông báo Thiết bị

Device Token về cơ bản là phiên bản tài khoản máy của PAT, được sử dụng trong ngữ cảnh của thiết bị, cho phép truy cập vào một kho lưu trữ cụ thể trong các trường hợp sử dụng cụ thể không bị người dùng ràng buộc. Thiết lập ứng dụng sử dụng dòng OAuth sử dụng mã thông báo thiết bị. Chúng thường được sử dụng với các trình chạy, dịch vụ ứng dụng đặc biệt, công việc Cron (trong Linux) hoặc các tình huống tương tự khác liên quan đến các tác vụ tự động. Cũng giống như mã truy cập cá nhân, mã thông báo thiết bị được liên kết với tài khoản cá nhân và tài khoản mà bạn tạo mã thông báo thiết bị sẽ sử dụng giấy phép.

Mã thông báo Cài đặt Ứng dụng GitHub

Mã thông báo cài đặt cho phép ứng dụng GitHub thực hiện các yêu cầu API được xác thực cho việc cài đặt ứng dụng trong tổ chức. Trước khi tạo mã thông báo cài đặt, trước tiên bạn cần cài đặt ứng dụng GitHub mà mã thông báo áp dụng, trong kho lưu trữ đích. Mã thông báo cài đặt có giá trị trong một giờ và an toàn vì chúng được tạo cho một mục đích cụ thể và hết hạn trong một khoảng thời gian tương đối ngắn.

Mã thông báo Truy nhập OAuth

Mã thông báo OAuth2 được sử dụng để ủy quyền cho người dùng đối với các ứng dụng OAuth tiêu chuẩn chạy trong trình duyệt và cho các ứng dụng không có đầu như công cụ CLI. Chúng cho phép ứng dụng của bạn truy cập API bằng mã thông báo truy cập người dùng. Các mã thông báo này cho phép bạn kết nối danh tính người dùng GitHub với các ứng dụng bên thứ ba, cho phép ứng dụng thực hiện các hành động thay mặt bạn. Ví dụ: nếu bạn muốn sử dụng một ứng dụng yêu cầu user:email phạm vi, ứng dụng đó sẽ được cấp quyền truy cập chỉ đọc vào địa chỉ email riêng tư của bạn. Các mã thông báo này có thể được lấy bằng cách sử ứng dụng web của bạn các ứng dụng sản xuất. Bởi vì các token này có thời hạn ngắn và hết hạn sau 10 phút nên chúng cũng an toàn.

Làm mới Mã thông báo

Mã thông báo làm mới được kết nối với một mã thông báo OAuth. Khi một mã thông báo OAuth mới (thông qua yêu cầu người dùng đến máy chủ) được cấp, mã thông báo làm mới sẽ được bao gồm trong phản hồi. Khi mã thông báo người dùng hết hạn, mã thông báo làm mới có thể được trao đổi cho một mã thông báo người dùng mới với yêu cầu gọi lại. Mỗi lần một mã thông báo OAuth mới được phát hành, một mã thông báo làm mới sẽ được bao gồm. Mã thông báo làm mới có hiệu lực trong sáu tháng và là lời nhắc tốt để cập nhật mã thông báo OAuth của bạn.

Tiền tố có thể nhận dạng

Như chúng ta thấy trong toàn ngành, các tiền tố mã thông báo là một cách rõ ràng để làm cho token có thể nhận dạng được. GitHub bao gồm các tiền tố gồm ba chữ cái để đại diện cho từng mã thông báo. Tiền tố bắt đầu bằng hai chữ cái biểu thị công ty ghvà theo sau là chữ cái đầu tiên của loại mã thông báo. Tiền tố cho các loại mã thông báo truy cập có sẵn là:

  • ghp mã thông báo truy cập cá nhân GitHub
  • ghu cho mã thông báo người dùng đến máy chủ GitHub
  • ghs cho mã thông báo từ máy chủ đến máy chủ GitHub
  • gho cho mã thông báo truy nhập OAuth
  • ghr để làm mới mã thông báo

Ngoài ra, các tiền tố này có dấu tách (_) trong mã thông báo để cải thiện tính dễ đọc. Dấu gạch dưới không phải là ký tự Base64, giúp đảm bảo rằng các chuỗi được tạo ngẫu nhiên như Thuật toán băm bảo mật (SHA) không thể vô tình sao chép các mã thông báo này. Tiền tố cũng giúp giảm tỷ lệ dương tính giả khi quét bí mật, đây là một tính năng bảo mật nâng cao của GitHub để cải thiện hơn nữa tính bảo mật trong kho lưu trữ GitHub của bạn.

Giới hạn tỷ lệ mã thông báo

Vượt quá giới hạn tốc độ có thể dẫn đến mất thời gian phát triển. Hãy nói về giới hạn tốc độ cho ứng dụng GitHub và ứng dụng OAuth. Bằng cách hiểu rõ giới hạn tỷ lệ, bạn có thể là một nguồn lực cho các nhà phát triển trong nhóm của bạn, giúp tối ưu hóa đầu tư của tổ chức của bạn vào các tài nguyên GitHub này.

Giới hạn tỷ lệ giúp kiểm soát tốc độ giao thông trên GitHub và dựa trên yêu cầu mỗi giờ.

  • Ứng dụng GitHub được cài đặt trên tài khoản doanh nghiệp GitHub có giới hạn tốc độ yêu cầu ở 15.000 yêu cầu mỗi giờ.
  • Ứng dụng OAuth được xác thực cho một người dùng cá nhân và được giới hạn đến 5.000 yêu cầu mỗi giờ.

Đối với người quản trị Doanh nghiệp, bạn nên giám sát giới hạn tỷ lệ ứng dụng và làm việc với nhà phát triển để điều chỉnh tập lệnh của họ để duy trì trong giới hạn. Thông thường, giới hạn tỷ lệ không phải là mối quan tâm cho đến khi nhà phát triển của bạn làm điều gì đó như viết một tập lệnh yêu cầu quá nhiều thông tin trong dòng công việc. Đột nhiên, sự phát triển đi đến một dừng lại và giới hạn tỷ lệ trở thành một nút cổ chai. Bạn có thể tránh các vấn đề vượt mức giới hạn tỷ lệ này bằng cách giới hạn số lượng yêu cầu mỗi giờ hoặc thay đổi dòng công việc để chờ giữa các yêu cầu. Nếu bạn vượt quá giới hạn tốc độ bằng cách sử dụng Xác thực Cơ bản hoặc OAuth, bạn có thể khắc phục sự cố bằng cách lưu bộ nhớ đệm phản hồi API và sử dụng các yêu cầu có điều kiện của.

Từ bảng điều khiển quản lý, bạn có thể thiết lập giới hạn tỷ lệ tùy chỉnh cho người dùng chưa được xác thực trong doanh nghiệp của mình và tạo danh sách miễn, cho phép một số người dùng nhất định sử dụng giới hạn tỷ lệ API đầy đủ.

ảnh chụp màn hình bảng điều khiển quản lý đặt giới hạn tỷ lệ API.

Bạn có thể kiểm tra trạng thái giới hạn tốc độ hiện tại bất cứ lúc nào bằng CÁCH sử dụng API Giới hạn Tốc độ sau đây. Tiêu đề HTTP được trả về của bất kỳ yêu cầu API nào hiển thị trạng thái giới hạn tốc độ hiện tại của bạn.

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

Phản hồi ví dụ

{
  "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
  }
}

Để biết thêm thông tin chi tiết về giới hạn tốc độ, hãy tham giới hạn suất trên Tài liệu GitHub.