Xác thực GitHub hoạt động như thế nào?
Trong đơn vị trước, bạn đã học được về các nhiệm vụ quản trị tiêu biểu ở cấp nhóm, tổ chức và doanh nghiệp. Trong bài này, bạn sẽ khám phá một trong những tác vụ quản trị phổ biến nhất được thực hiện bởi chủ sở hữu tổ chức, đó là thiết lập và kiểm soát xác thực của người dùng đối với GitHub.
Các tùy chọn xác thực của GitHub
Có một số tùy chọn để xác thực bằng GitHub:
Tên người dùng và mật khẩu
Người quản trị có thể cho phép người dùng tiếp tục sử dụng phương pháp xác thực tên người dùng và mật khẩu mặc định, đôi khi được gọi là lược đồ xác thực HTTP "cơ bản".
Lưu ý
GitHub không còn hỗ trợ xác thực mật khẩu cho các hoạt động Git hoặc sử dụng API. Chúng tôi khuyên bạn nên sử dụng một (hoặc một vài) tùy chọn khác được liệt kê trong đơn vị 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à một cách thay thế cho việc sử dụng mật khẩu để xác thực cho GitHub khi sử dụng API GitHub hoặc dòng lệnh. Người dùng tạo mã thông báo thông qua tùy chọn cài đặt của GitHub và gắn các quyền mã thông báo với một kho hoặc tổ chức. Khi người dùng tương tác với GitHub bằng cách sử dụng công cụ dòng lệnh git, họ có thể nhập thông tin mã thông báo khi được yêu cầu cung cấp tên người dùng và mật khẩu.
Phím SSH
Để thay thế cho việc sử dụng mã thông báo truy cập cá nhân, người dùng có thể kết nối và xác thực với các máy chủ và dịch vụ từ xa thông qua SSH với sự trợ giúp của các phím SSH. Khóa SSH loại bỏ nhu cầu của người dùng trong việc cung cấp tên người dùng và mã thông báo truy nhập cá nhân của họ cho mọi tương tác.
Khi thiết lập SSH, người dùng sẽ tạo khóa SSH, thêm khóa đó vào ssh-agent, rồi thêm khóa vào tài khoản GitHub của họ. Việc thêm khóa SSH vào ssh-agent đảm bảo rằng khóa SSH có một câu thông hành như một lớp bảo mật bổ sung. Người dùng có thể đặt cấu hình bản sao git cục bộ của họ để tự động cung cấp câu thông hành, hoặc họ có thể cung cấp nó theo cách thủ công mỗi khi họ sử dụng công cụ dòng lệnh git để tương tác với GitHub.
Bạn thậm chí có thể sử dụng các khóa SSH với một kho lưu trữ thuộc sở hữu của một tổ chức sử dụng đăng nhập đơn SAML (SSO). Nếu tổ chức cung cấp chứng chỉ SSH, người dùng cũng có thể sử dụng nó để truy nhập vào kho lưu trữ của tổ chức mà không cần thêm chứng chỉ vào tài khoản GitHub của họ.
Phím Triển khai
Các khóa triển khai là một loại khóa SSH khác trong GitHub cấp cho người dùng quyền truy nhập vào một kho lưu trữ duy nhất. GitHub đính kèm phần công khai của khóa trực tiếp vào kho thay vì tài khoản người dùng cá nhân, và phần riêng tư của khóa vẫn còn trên máy chủ của người dùng. Theo mặc định, các phím triển khai là chỉ đọc, nhưng bạn có thể cấp cho chúng quyền truy nhập ghi khi thêm chúng vào một kho lưu trữ.
Để định cấu hình cài đặt fork:
- Đi tới Cài đặt của kho lưu trữ.
- Trong thanh bên trái, trong Bảo mật, nhấp vào Triển khai khóa.
- Tìm tùy chọn Thêm khóa triển khai để tạo khóa mới.
Các tùy chọn bảo mật bổ sung của GitHub
GitHub cung cấp một loạt các tùy chọn bảo mật để giúp bảo vệ tài khoản và tài nguyên của tổ chức.
Xác thực hai yếu tố
Xác thực hai yếu tố (2FA), đôi khi được gọi là xác thực đa yếu tố (MFA), bổ sung thêm một lớp bảo vệ cho tài khoản GitHub của bạn. Với 2FA, người dùng đăng nhập bằng tên người dùng và mật khẩu của họ, sau đó cung cấp hình thức xác thực thứ hai.
GitHub hỗ trợ một số tùy chọn yếu tố thứ hai:
- Các ứng dụng xác thực (như Microsoft Authenticator, Google Authenticator hoặc Authy) tạo mã một lần dựa trên thời gian.
- Khóa bảo mật phần cứng (chẳng hạn như YubiKey hoặc Khóa bảo mật Titan) hỗ trợ FIDO2/WebAuthn.
- Mã truy cập để xác thực không cần mật khẩu, chống lừa đảo.
- Mã dựa trên SMS, được hỗ trợ nhưng được coi là kém an toàn hơn các tùy chọn khác và không được khuyến nghị làm phương thức chính.
Thực thi 2FA:
- Đối với các tổ chức trên GitHub Team và GitHub Enterprise Cloud, chủ sở hữu tổ chức có thể yêu cầu các thành viên, cộng tác viên bên ngoài và người quản lý thanh toán bật 2FA cho tài khoản cá nhân của họ.
- Người dùng được quản lý doanh nghiệp (EMU) và GitHub Enterprise Server (GHE.com): Quản trị viên chỉ có thể yêu cầu 2FA cho tài khoản do doanh nghiệp quản lý, nhưng không thể thực thi 2FA đối với tài khoản GitHub.com cá nhân của người dùng.
Thực thi 2FA giúp bảo vệ các tổ chức khỏi truy cập trái phép và tăng cường bảo mật của kho lưu trữ và dữ liệu nhạy cảm.
SAML SSO
Nếu quản lý tập trung danh tính của người dùng bằng nhà cung cấp danh tính (IdP), bạn có thể định cấu hình đăng nhập một lần (SSO) SAML để bảo vệ tài nguyên của tổ chức trên GitHub. SAML SSO cho phép chủ sở hữu tổ chức và doanh nghiệp kiểm soát và bảo mật quyền truy cập vào kho lưu trữ, vấn đề, yêu cầu kéo, v.v. Khi truy cập tài nguyên, GitHub chuyển hướng người dùng để xác thực bằng IdP của tổ chức.
GitHub hỗ trợ tất cả các nhà cung cấp danh tính triển khai tiêu chuẩn SAML 2.0, với hỗ trợ chính thức cho một số nhà cung cấp phổ biến, bao gồm:
- Dịch vụ liên kết Active Directory (AD FS).
- ID Microsoft Entra.
- Okta.
- OneLogin.
- PingOne.
LDAP (Máy chủ GitHub Enterprise)
LDAP (Giao thức truy cập thư mục nhẹ) là một giao thức được sử dụng rộng rãi để truy cập và quản lý thông tin thư mục người dùng. Trên GitHub Enterprise Server, tích hợp LDAP cho phép bạn xác thực người dùng dựa trên thư mục công ty hiện có của mình và quản lý quyền truy cập kho lưu trữ tập trung.
GitHub Enterprise Server tích hợp với các dịch vụ LDAP chính như:
GitHub Enterprise Server tích hợp với các dịch vụ LDAP phổ biến như:
- Active Directory.
- Phiên bản Oracle Directory Server Enterprise (bằng tiếng Anh).
- OpenLDAP.
- Mở Thư mục.