> For the complete documentation index, see [llms.txt](https://docs.verge.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.verge.io/run-the-platform/vi/xac-thuc/auth-sources-general.md).

# Nguồn xác thực - Tổng quan

Nguồn ủy quyền cho phép sử dụng các hệ thống quản lý danh tính Oauth2 của bên thứ ba (chẳng hạn như: Okta, GitLab, Azure AD, Google) để xác thực người dùng trong VergeOS.

{% hint style="info" %}
**Mặc dù Oauth2 là một đặc tả tiêu chuẩn, các triển khai khác nhau sẽ có sự khác biệt. Trang này cung cấp hướng dẫn tổng quát để cấu hình một Nguồn Oauth của bên thứ ba để dùng cho xác thực VergeOS. Các trường và cài đặt cụ thể sẽ khác nhau tùy theo driver được chọn (Google, Azure, OpenID, GitLab, v.v.). Hãy tham khảo tài liệu của nguồn Oauth cụ thể để biết thông tin về các tùy chọn riêng.**
{% endhint %}

Các liên kết sau cung cấp hướng dẫn theo từng nguồn:

* [Google](/run-the-platform/vi/xac-thuc/google-auth.md)
* [Azure](/run-the-platform/vi/xac-thuc/azure-auth.md)
* [VergeOS OIDC](/run-the-platform/vi/xac-thuc/oidc-apps-overview.md)

## Tạo Nguồn Ủy quyền - Hướng dẫn chung

1. Lấy **Client ID** và **Client Secret** từ hệ thống bên thứ ba; các thông tin xác thực này phải được tạo **dựa trên URL của hệ thống VergeOS**. Các giá trị này sẽ cần ở bước sau.
2. Nhấp vào **Hệ thống** trên menu phía trên.
3. Chọn **Nguồn xác thực**.
4. Nhấp vào **Mới** ở menu bên trái.
5. **Tên:** một tên để nhận diện nguồn ủy quyền này; tên này sẽ xuất hiện trên nút đăng nhập trên trang đăng nhập VergeOS.
6. **Driver:**
   * *Azure AD*
   * *GitLab*
   * *Google*
   * *Okta*
   * *Open ID*\*\*\*
   * *Open ID (Cấu hình được biết đến rộng rãi)*
   * *Verge.io* (Điều này có thể được dùng để cho phép truy cập hợp lý hơn cho bộ phận hỗ trợ; hãy liên hệ với đội Hỗ trợ VergeOS để cấu hình loại nguồn xác thực này.)

{% hint style="success" %}
**Thiết lập OpenID cung cấp một tùy chọn chung có thể hoạt động với bất kỳ nguồn OpenID nào, trong khi các tùy chọn cụ thể như: Google, GitLab, Okta và Azure AD cung cấp các lớp bao bọc với biểu mẫu cấu hình chuyên biệt hơn cho từng triển khai cụ thể đó.**
{% endhint %}

7. **URI chuyển hướng:** được tự động điền bằng địa chỉ của giao diện VergeOS và thường không nên thay đổi. **Địa chỉ này phải là địa chỉ công khai hoặc có thể được truy cập bởi nguồn Oauth từ xa.**
8. **Client ID** và **Client Secret:** các giá trị được tạo trên nguồn Oauth từ xa, dựa trên URL của hệ thống VergeOS.
9. **Các trường người dùng từ xa:** xác định một hoặc nhiều trường có thể được dùng để tìm người dùng trong nguồn Oauth. Trường này được tự động điền với danh sách mặc định các trường phổ biến (sub,preferred\_username,email,nickname) hoạt động trên nhiều triển khai Oauth phổ biến

{% hint style="warning" %}
**Vì lý do bảo mật, không nên xác định người dùng từ xa dựa trên các trường mà người dùng cuối có thể thay đổi trên các nguồn Oauth.**
{% endhint %}

10. **Cấu hình bổ sung:**

### Tùy chọn khuyến nghị (Khuyến nghị bật các tùy chọn này.)

* **Cập nhật người dùng từ xa:** cập nhật *Tên người dùng từ xa* trường của người dùng VergeOS thành ID duy nhất từ Nguồn Oauth. Bật tùy chọn này cho phép ban đầu tìm người dùng dựa trên các trường thân thiện hơn (được định nghĩa trong *Các trường người dùng từ xa*, ở trên) nhưng sau đó thay đổi *Tên người dùng từ xa* trường của VergeOS để khớp với một id duy nhất từ Hệ thống nguồn. Điều này đảm bảo bản ghi người dùng vẫn nhất quán ngay cả khi các trường phụ như địa chỉ email hoặc tên người dùng thân thiện có thể thay đổi theo thời gian.
* **Cập nhật địa chỉ email người dùng:** cập nhật trường địa chỉ Email dựa trên địa chỉ email từ nguồn Oauth.
* **Cập nhật tên hiển thị của người dùng:** cập nhật tên hiển thị của người dùng dựa trên tên hiển thị từ nguồn Oauth.

### Các trường tùy chọn bổ sung

* **Phạm vi:** thay đổi tùy theo các triển khai khác nhau; hãy tham khảo tài liệu Oauth2 của nguồn, khi phù hợp, để biết thêm thông tin. Trong hầu hết các trường hợp, mặc định "openid profile email" sẽ hoạt động.
* **Phạm vi nhóm:** thay đổi tùy theo các triển khai khác nhau; hãy tham khảo tài liệu Oauth2 của nguồn để biết thêm thông tin. Trong hầu hết các trường hợp, Phạm vi nhóm có thể được đặt thành từ "groups". Phạm vi nhóm là **bắt buộc khi sử dụng&#x20;*****Cập nhật tư cách thành viên nhóm*****&#x20;tùy chọn**.
* **Yêu cầu địa chỉ email đã được xác minh:** (đối với các triển khai Oauth2 hỗ trợ xác minh địa chỉ email người dùng) chỉ cho phép xác thực những người dùng có cờ email đã được xác minh được bật/đúng trong nguồn.
* **Cập nhật tư cách thành viên nhóm:** cập nhật tư cách thành viên nhóm của người dùng (mỗi lần người dùng đăng nhập) để tương ứng với tư cách thành viên nhóm từ nguồn Oauth

**Chế độ gỡ lỗi:** (hộp kiểm) bật ghi nhật ký chi tiết cho nguồn ủy quyền này; chỉ nên bật khi khắc phục sự cố vì lượng lớn nhật ký xác thực có thể ảnh hưởng đến hiệu năng.

**Hiển thị trong menu:** (hộp kiểm) thay đổi cách hiển thị để hiện một menu thả xuống thay vì một danh sách.

***

### Tạo người dùng

* **Tự động tạo người dùng:** người dùng được tạo tự động (theo nhu cầu, khi đăng nhập VergeOS lần đầu) tương ứng với người dùng trong nguồn Oauth. Dùng một dấu sao để áp dụng cho tất cả người dùng.
* **Tự động tạo người dùng trong nhóm:** chỉ những người dùng thuộc các nhóm nguồn Oauth2 được chỉ định mới được tạo tự động, theo nhu cầu, khi đăng nhập lần đầu. Có thể nhập một tên nhóm cụ thể hoặc một biểu thức chính quy để bao gồm các nhóm có mẫu khớp.

{% hint style="info" %}
**Để tự động tạo người dùng dựa trên nhóm,&#x20;*****Tự động tạo người dùng*****&#x20;trường phải để trống.**
{% endhint %}

{% hint style="info" %}
**Người dùng sẽ sử dụng Nguồn Ủy quyền bên ngoài có thể được tạo thủ công trong VergeOS; khi tạo người dùng VergeOS mới: Chọn Nguồn Ủy quyền phù hợp trong danh sách thả xuống.**
{% endhint %}

* Đặt **Tên người dùng từ xa** để khớp với một trong các trường được định nghĩa trong *Các trường người dùng từ xa* (các trường được dùng để tìm người dùng trong nguồn ủy quyền bên ngoài). Thông thường, tốt nhất là dùng tên đăng nhập hoặc ID người dùng duy nhất của người dùng.

### Kiểu dáng đăng nhập

Kiểu dáng đăng nhập xác định giao diện của nút đăng nhập trên trang đăng nhập VergeOS.

* **Màu nền nút đăng nhập:** màu nền cho nút đăng nhập.
* **Màu chữ nút đăng nhập:** màu chữ của nút đăng nhập.
* **Biểu tượng Font Awesome của nút đăng nhập:** chỉ định một biểu tượng thay thế cho nút đăng nhập; danh sách các Biểu tượng Font Awesome có sẵn có thể được tìm thấy: [tại đây](https://fontawesome.com/v4.7.0/cheatsheet/).
* **Màu biểu tượng Font Awesome của nút đăng nhập:** chỉ định một màu thay thế cho nút đăng nhập; dùng mã HEX tiêu chuẩn, ví dụ: #FF5733.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.verge.io/run-the-platform/vi/xac-thuc/auth-sources-general.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
