Bỏ qua để đến nội dung

Đăng nhập một lần (SSO) với OIDC

Hướng dẫn thao tác
Dành cho:
Người vận hành máy chủ, Quản trị viên không gian làm việc
Trong ứng dụng:
Quản trị hệ thống, rồi Nhà cung cấp SSO

Cấu hình SSO OIDC cho phép mọi người đăng nhập vào ReputeCast bằng nhà cung cấp danh tính (IdP) của tổ chức bạn, tự tạo tài khoản ở lần đăng nhập đầu tiên, và nhận vai trò trong không gian làm việc từ các nhóm trên IdP. ReputeCast dùng OpenID Connect; ReputeCast không hỗ trợ SAML hay SCIM.

  • Bạn là quản trị viên hệ thống. SSO được thiết lập một lần cho toàn hệ thống.
  • URL công khai đã cố định và dùng https:// (Quản trị hệ thống, rồi Hệ thống và cập nhật, rồi URL công khai). URI chuyển hướng bạn đăng ký ở IdP được tạo từ URL này; nếu sau này URL thay đổi, hãy cập nhật cả đăng ký ở IdP.
  • Bạn có thể tạo một ứng dụng (client) trong IdP, và biết mọi người trong tổ chức dùng những tên miền email nào.
  • Đăng nhập một lần (OpenID Connect) đang bật trong Quản trị hệ thống, rồi Xác thực (mặc định là bật).
Thiết lập Microsoft Entra ID: hàng chọn preset, rồi thẻ Connection với redirect URI để sao chép, issuer URL sau khi kiểm tra discovery thành công, client ID, client secret chỉ ghi đã lưu và các scope.
  1. Mở Quản trị hệ thống, rồi Nhà cung cấp SSO và chọn Thêm nhà cung cấp SSO. Trong 1 · Cấu hình sẵn, chọn IdP của bạn: Google Workspace, Microsoft Entra ID, Okta, Keycloak, Authentik hoặc OIDC chung. ReputeCast lưu bản nháp ngay; chưa có gì hoạt động cho đến khi bạn bật nhà cung cấp.

  2. Trong 2 · Kết nối, sao chép URI chuyển hướng. URI có dạng <public URL>/auth/oidc/<slug>/callback, trong đó slug lấy từ cấu hình sẵn: google, entra, okta, keycloak, authentik hoặc oidc (nhà cung cấp thứ hai dùng cùng cấu hình sẵn có thêm -2).

  3. Đăng ký ReputeCast ở IdP như một ứng dụng web dùng authorization code flow, với URI chuyển hướng từ bước 2. Ghi lại URL nhà phát hành (issuer), client ID và client secret.

    • Tạo một OAuth client ID loại Web application trong Google Cloud console (APIs & Services › Credentials) và thêm URI chuyển hướng làm authorized redirect URI (tài liệu OpenID Connect của Google, kiểm tra tháng 10/2026).
    • URL nhà phát hành (issuer): luôn là https://accounts.google.com (cấu hình sẵn tự điền).
    • Nhóm: Google không gửi claim groups qua OIDC, nên không dùng được ánh xạ nhóm. Hãy cấp vai trò mặc định cho tài khoản mới qua tính năng tự tạo tài khoản (bước 7), hoặc gán vai trò trong cài đặt nhóm của từng không gian làm việc.
    • Xác thực hai lớp: ReputeCast coi lượt đăng nhập Google là đã qua xác thực hai lớp (khi Workspace bắt buộc Xác minh 2 bước).
  4. Quay lại 2 · Kết nối, nhập URL nhà phát hành (issuer) và chọn Kiểm tra discovery. ReputeCast lấy <issuer>/.well-known/openid-configuration và các khóa ký của nó; nhà phát hành phải dùng https:// và khớp chính xác với tài liệu đó. Sau đó nhập client ID và client secret. Secret được mã hóa và không bao giờ hiển thị lại; bạn chỉ có thể thay nó.

  5. Scope: openid, profile và email luôn được yêu cầu. Chỉ thêm scope khác nếu IdP của bạn cần chúng để gửi nhóm.

  6. Trong 3 · Ánh xạ claim, kiểm tra những claim nào điền thông tin tài khoản: email, email_verified, name và, với cấu hình sẵn có nhóm, groups. Giá trị mặc định phù hợp với từng cấu hình sẵn; chỉ đổi tên claim nếu IdP của bạn dùng tên khác. Email mà IdP đánh dấu là chưa xác minh sẽ bị từ chối. Thiếu email_verified chỉ được coi là đã xác minh với các tên miền được phép ở bước 7.

  7. Trong 4 · Quyền truy cập, quyết định ai được vào và với vai trò nào:

    • Với Tên miền email được phép (tối đa 50), lượt đăng nhập từ các tên miền khác bị từ chối và được ghi log. Trang đăng nhập chỉ hiển thị “Tiếp tục với …” của nhà cung cấp này cho những người có email thuộc một trong các tên miền đó. Nếu không có tên miền nào, mọi tên miền đều đăng nhập được, nhưng nút này không xuất hiện trên trang đăng nhập.
    • Công tắc Tự động tạo tài khoản (JIT) tạo tài khoản ở lần đăng nhập đầu tiên, trong một không gian làm việc mặc định với vai trò mặc định (Người xem, trừ khi bạn chọn vai trò khác; không bao giờ là Chủ sở hữu). Tắt công tắc nghĩa là chỉ những người đã có tài khoản mới đăng nhập được. Thiết lập Danh sách tên miền email được phép tạo tài khoản tự động cấp hệ thống trong tab Xác thực giới hạn những tên miền nào được tự động tạo tài khoản.
    • Trong Nhóm → không gian làm việc → vai trò, chọn Thêm ánh xạ cho mỗi nhóm trên IdP (tối đa 200 ánh xạ). Ánh xạ được áp dụng lại ở mỗi lần đăng nhập và ghi đè vai trò đặt thủ công. Khi một người rời khỏi nhóm đã ánh xạ, lần đăng nhập tiếp theo sẽ gỡ họ khỏi không gian làm việc đó và thu hồi các khóa API và tác tử họ đã tạo ở đó; riêng trong không gian làm việc mặc định của tính năng tự tạo tài khoản, họ quay về vai trò mặc định. Ánh xạ không bao giờ biến ai thành Chủ sở hữu và không bao giờ thay đổi một Chủ sở hữu. Bạn chỉ có thể ánh xạ một vai trò mà chính bạn có đủ quyền của nó trong không gian làm việc đó.
    • Công tắc bắt buộc tắt các phương thức đăng nhập khác với các tên miền được phép: xem bắt buộc SSO cho tên miền của bạn.
  8. Trong 5 · Đăng nhập thử, chọn Chạy đăng nhập thử. Một cửa sổ bật lên mở IdP của bạn; sau khi bạn đăng nhập, ReputeCast hiển thị các claim nhận được và những gì một lượt đăng nhập thật sẽ làm (tài khoản mới hay đã có, không gian làm việc, vai trò, xác thực hai lớp). Bước này không đăng nhập cho ai và không thay đổi gì.

  9. Chọn Bật … (hoặc Lưu bản nháp để hoàn tất sau). Để bật được, cần một lần kiểm tra discovery thành công, client ID và client secret đã lưu.

Chế độ bắt buộc tắt đăng nhập bằng mật khẩu, khóa truy cập và tài khoản mạng xã hội cho mọi tài khoản thuộc các tên miền được phép của nhà cung cấp, nên người ở các tên miền đó chỉ đăng nhập được qua IdP. Bật chế độ này trong 4 · Quyền truy cập; hộp thoại liệt kê ai đang đăng nhập bằng cách nào hiện nay và sau khi bật, rồi bạn xác nhận bằng Bật chế độ bắt buộc.

  • Chủ sở hữu có tài khoản khẩn cấp (break-glass) vẫn giữ đăng nhập bằng mật khẩu và xác thực hai lớp, để bạn vào được khi IdP bị gián đoạn. Khi bạn bật chế độ bắt buộc, mọi Chủ sở hữu ở các tên miền đó được đánh dấu là tài khoản khẩn cấp; Chủ sở hữu đầu tiên do reputecast install tạo cũng vậy. Các lượt đăng nhập bằng mật khẩu của họ được ghi log là break-glass.
  • Nếu không còn Chủ sở hữu nào ở tên miền đó giữ mật khẩu, hộp thoại sẽ cảnh báo bạn: nếu IdP gặp sự cố, không ai ở tên miền đó đăng nhập được. Hãy giữ một quản trị viên hệ thống ở tên miền khác, hoặc xem khôi phục quyền truy cập từ dòng lệnh.
  • Mỗi tên miền chỉ có thể được bắt buộc bởi một nhà cung cấp đang bật. Tắt nhà cung cấp sẽ chấm dứt chế độ bắt buộc của nó.
  • Trong một cửa sổ trình duyệt ẩn danh, mở trang đăng nhập và nhập một email thuộc tên miền được phép: “Tiếp tục với …” đưa bạn đến IdP rồi quay lại, ở trạng thái đã đăng nhập.
  • Quản trị hệ thống, rồi Người dùng hiển thị người đó với phương thức đăng nhập SSO, và “Qua IdP” ở cột 2FA khi IdP đã xác nhận xác thực hai lớp.
  • Quản trị hệ thống, rồi Nhật ký kiểm tra ghi lại lượt đăng nhập, cùng mọi tài khoản hoặc vai trò mà lượt đăng nhập đó tạo ra.
  • Discovery thất bại: URL nhà phát hành sai hoặc máy chủ không kết nối được tới nó. Hãy sao chép chính xác như IdP hiển thị, kể cả dấu gạch chéo cuối với Authentik, và dùng nhà phát hành theo tenant với Entra ID. Một nhà cung cấp đã bật vẫn dùng nhà phát hành đã lưu cho đến khi một lần kiểm tra mới thành công.
  • IdP báo URI chuyển hướng không khớp: URL công khai đã thay đổi, hoặc URI bị dán sai. Hãy sao chép lại URI chuyển hướng và cập nhật IdP.
  • “Không có tài khoản cho …”: tính năng tự tạo tài khoản đang tắt và người đó chưa có tài khoản, hoặc tên miền của họ không được phép ở đây hay trong danh sách cho phép của hệ thống. Hãy mời họ, hoặc bật Tự động tạo tài khoản (JIT).
  • Bước kiểm tra báo “Thiếu claim groups”: IdP không gửi nhóm nào, nên ánh xạ không được áp dụng; vai trò hiện có giữ nguyên và tài khoản mới nhận vai trò mặc định. Hãy làm theo bước về nhóm cho IdP của bạn ở trên, rồi chạy lại bước kiểm tra.
  • “Không giải mã được client secret bằng khóa của máy chủ này”: khóa bí mật của máy chủ đã thay đổi kể từ khi secret được lưu. Hãy thay client secret. Xem bảo mật và gia cố hệ thống.
  • Lượt đăng nhập mất quá nhiều thời gian: một lượt đăng nhập phải quay về từ IdP trong vòng 10 phút. Hãy bắt đầu lại.