Thiết lập SSO
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.

Điều kiện tiên quyết
- 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.
- Một IdP hỗ trợ OIDC với discovery — nó phải phục vụ
/.well-known/openid-configurationdướ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 đặt | Giá 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 type | Authorization Code (PKCE S256 được sử dụng tự động) |
| Scopes | openid 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ường | Nội dung cần dán |
|---|---|
| Display Name | Bất kỳ nhãn nào mà các thành viên của bạn sẽ nhận ra |
| Issuer URL | Issuer của IdP của bạn — URL phục vụ /.well-known/openid-configuration |
| Authorization URL | authorization_endpoint từ tài liệu discovery đó |
| Client ID / Client Secret | Từ ứ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
- 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
- Sign-in redirect URI:
https://intermind.com/api/auth/sso/callback - Chỉ định những người dùng hoặc nhóm nên có quyền truy cập
- Sao chép Client ID và Client Secret
- 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/defaultnếu bạn sử dụng); Authorization URL =authorization_endpointtừ<issuer>/.well-known/openid-configuration
Microsoft Entra ID (Azure AD)
- Trung tâm quản trị Entra → App registrations → New registration
- Nền tảng Web, redirect URI
https://intermind.com/api/auth/sso/callback - Certificates & secrets → New client secret — sao chép Value của secret ngay lập tức
- Client ID = Application (client) ID trên trang Overview
- Đảm bảo ID token mang email của người dùng: Token configuration → Add optional claim → ID → email
- 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
- Mở trang đăng nhập trong cửa sổ riêng tư/ẩn danh
- 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
- 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
- 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.loginvới phương thứcsso
Khắc phục sự cố
| Triệu chứng | Nguyên nhân |
|---|---|
| "SSO is not configured" sau khi nhập email | Khô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: plan | Gói của nhóm không còn bao gồm SSO |
SSO login is not available: domain-not-verified | Miền vẫn đang chờ xác minh DNS |
SSO login is not available: config-incomplete | Thiếu Client ID hoặc Client Secret — lưu lại thẻ SSO |
SSO login is not available: type-unsupported | Loạ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 failed | Issuer 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ại | IdP 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.