Thiết lập SSO

Kết nối Okta, Microsoft Entra ID hoặc Google Workspace để nhóm của bạn đăng nhập thông qua nhà cung cấp danh tính của mình.

Thiết lập SSO

Hướng dẫn này dành cho quản trị viên IT kết nối nhà cung cấp danh tính (IdP) của công ty với InterMIND. Sau khi thiết lập, các thành viên đăng nhập từ trang đăng nhập thông thường: Đăng nhập bằng SSO → email công việc → IdP của bạn → quay lại InterMIND. Để xem tổng quan phi kỹ thuật, xem trang tính năng Đăng nhập một lần.

Khả dụng cho: Các gói Business và Enterprise Được cấu hình bởi: chủ sở hữu nhóm hoặc quản trị viên Giao thức: Chỉ hỗ trợ OpenID Connect (OIDC). Không cung cấp SAML 2.0 — Okta, Microsoft Entra ID và Google Workspace đều hỗ trợ OIDC.

Thẻ SSO trên trang Integrations

Điều kiện tiên quyết

  1. Một miền đã xác minh — xác minh miền email của bạn thông qua bản ghi DNS TXT trước tiên (xem Quản lý Miền). Đăng nhập SSO chỉ chấp nhận các tài khoản có miền email mà nhóm của bạn đã xác minh; đây là ranh giới tenant.
  2. Một IdP hỗ trợ OIDC với discovery — nó phải phục vụ /.well-known/openid-configuration dưới URL Issuer. Okta, Microsoft Entra ID và Google đều làm như vậy.

Cần đăng ký gì trong IdP của bạn

Tạo một OIDC Web Application trong IdP của bạn với:

Cài đặtGiá trị
Redirect URI (callback)https://intermind.com/api/auth/sso/callback — cũng được hiển thị trong thẻ SSO sau khi bạn chọn OIDC
Grant typeAuthorization Code (PKCE S256 được sử dụng tự động)
Scopesopenid email profile

ID token do IdP của bạn cấp phải bao gồm email của người dùng và miền của email phải là một trong các miền đã xác minh của bạn — nếu không, quá trình đăng nhập sẽ bị từ chối.

Sau đó, điền vào thẻ SSO trên trang Integrations:

TrườngNội dung cần dán
Display NameBất kỳ nhãn nào mà các thành viên của bạn sẽ nhận ra
Issuer URLIssuer của IdP của bạn — URL phục vụ /.well-known/openid-configuration
Authorization URLauthorization_endpoint từ tài liệu discovery đó
Client ID / Client SecretTừ ứng dụng bạn đã đăng ký

Client secret được mã hóa khi lưu trữ và không bao giờ được trả về trình duyệt sau khi lưu.

Okta

  1. Bảng điều khiển quản trị → Applications → Create App Integration → phương thức đăng nhập OIDC, loại ứng dụng Web Application
  2. Sign-in redirect URI: https://intermind.com/api/auth/sso/callback
  3. Chỉ định những người dùng hoặc nhóm nên có quyền truy cập
  4. Sao chép Client ID và Client Secret
  5. Trong InterMIND: Issuer URL = URL tổ chức Okta của bạn (ví dụ https://acme.okta.com, hoặc issuer của máy chủ ủy quyền của bạn như https://acme.okta.com/oauth2/default nếu bạn sử dụng); Authorization URL = authorization_endpoint từ <issuer>/.well-known/openid-configuration

Microsoft Entra ID (Azure AD)

  1. Trung tâm quản trị Entra → App registrations → New registration
  2. Nền tảng Web, redirect URI https://intermind.com/api/auth/sso/callback
  3. Certificates & secrets → New client secret — sao chép Value của secret ngay lập tức
  4. Client ID = Application (client) ID trên trang Overview
  5. Đảm bảo ID token mang email của người dùng: Token configuration → Add optional claim → ID → email
  6. Trong InterMIND: Issuer URL = https://login.microsoftonline.com/<tenant-id>/v2.0; Authorization URL = https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize

Google Workspace

Không cần đăng ký ứng dụng. Trong thẻ SSO, chọn loại nhà cung cấp Google Workspace và lưu — các thành viên trên các miền đã xác minh của bạn đăng nhập bằng tài khoản Google của họ và tự động tham gia nhóm của bạn. (Google cũng có thể được kết nối như một nhà cung cấp OIDC chung với issuer https://accounts.google.com nếu bạn thích thông tin xác thực client rõ ràng.)

Kiểm tra kết nối

  1. Mở trang đăng nhập trong cửa sổ riêng tư/ẩn danh
  2. Nhấp vào Đăng nhập bằng SSO và nhập email công việc trên miền đã xác minh của bạn
  3. Bạn được chuyển hướng đến IdP của mình; sau khi xác thực, bạn sẽ quay lại InterMIND đã đăng nhập
  4. Lần đăng nhập được ghi lại trong nhật ký kiểm toán nhóm (có thể xuất từ trang Users) dưới dạng auth.login với phương thức sso

Khắc phục sự cố

Triệu chứngNguyên nhân
"SSO is not configured" sau khi nhập emailKhông có cấu hình SSO được bật nào khớp với miền email đó — kiểm tra xem miền đã được xác minh và thẻ SSO đã được lưu chưa
SSO login is not available: planGói của nhóm không còn bao gồm SSO
SSO login is not available: domain-not-verifiedMiền vẫn đang chờ xác minh DNS
SSO login is not available: config-incompleteThiếu Client ID hoặc Client Secret — lưu lại thẻ SSO
SSO login is not available: type-unsupportedLoại nhà cung cấp đã lưu không phải là loại mà quy trình đăng nhập thực hiện — xóa cấu hình SSO và tạo lại dưới dạng OIDC hoặc Google Workspace
SSO IdP discovery failedIssuer URL sai hoặc không phục vụ /.well-known/openid-configuration
"login session expired, start again"Đã qua hơn 5 phút giữa lúc bắt đầu đăng nhập và callback của IdP
Đăng nhập bị từ chối sau khi IdP chuyển hướng trở lạiIdP trả về email bên ngoài các miền đã xác minh của bạn, hoặc không có email claim nào cả (Entra: thêm tùy chọn email claim)

Thuộc tính bảo mật

Đối với các bảng câu hỏi bảo mật: luồng SSO sử dụng Authorization Code với PKCE (S256), state và nonce; chữ ký của ID token được xác thực dựa trên JWKS của IdP, cùng với issuer và audience; IdP chỉ có thẩm quyền đối với các miền được xác minh qua DNS — một xác nhận (assertion) cho bất kỳ email nào khác sẽ không bao giờ tạo ra phiên đăng nhập; OIDC client secret được mã hóa khi lưu trữ; mọi lượt đăng nhập SSO đều được ghi vào nhật ký kiểm toán của nhóm. Các rào cản về gói, miền và cấu hình được thực thi ở phía máy chủ cho cả lúc bắt đầu đăng nhập và lúc callback.