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 → trở lại InterMIND.
Có sẵn trên: 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: OpenID Connect (OIDC). Đăng nhập SAML 2.0 đang được phát triển — cấu hình SAML được lưu trữ nhưng chưa thể dùng để đăng nhập.
Điều kiện tiên quyết
- Một tên miền đã xác minh — xác minh tên miền email của bạn qua bản ghi DNS TXT trước (xem Quản lý tên miền). Đăng nhập SSO chỉ chấp nhận các tài khoản có tên 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 — phải phục vụ
/.well-known/openid-configurationdưới Issuer URL. Okta, Microsoft Entra ID và Google đều hỗ trợ.
Những gì cần đăng ký trong IdP của bạn
Tạo một OIDC Web Application trong IdP của bạn với:
| Thiết lập | Giá trị |
|---|---|
| Redirect URI (callback) | https://intermind.com/api/auth/sso/callback — cũng hiển thị trong thẻ SSO sau khi bạn chọn OIDC |
| Loại Grant | Authorization Code (PKCE S256 được sử dụng tự động) |
| Scopes | openid email profile |
ID token mà IdP của bạn cấp phải bao gồm email của người dùng, và tên miền của email phải nằm trong số các tên miền đã được xác minh của bạn — nếu không, việc đă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 có thể nhận ra |
| Issuer URL | Issuer của IdP — 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 - Gán người dùng hoặc nhóm cần được cấp 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 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 có tên miền đã xác minh của bạn đăng nhập bằng tài khoản Google của họ và tham gia nhóm của bạn tự động. (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 muốn dùng thông tin xác thực client tường minh.)
Kiểm tra kết nối
- Mở trang đăng nhập trong cửa sổ riêng tư/ẩn danh
- Nhấp Đăng nhập bằng SSO và nhập email công việc trên tên miền đã xác minh của bạn
- Bạn được chuyển hướng đến IdP của bạn; sau khi xác thực, bạn quay lại InterMIND đã đăng nhập
- Việc đăng nhập được ghi lại trong nhật ký kiểm toán của 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 nào được kích hoạt khớp với tên miền email đó — kiểm tra xem tên 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 | Tên 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 | Cấu hình được lưu là SAML — đăng nhập SAML chưa khả dụng |
SSO IdP discovery failed | Issuer URL sai hoặc không phục vụ /.well-known/openid-configuration |
| "login session expired, start again" | Đã quá 5 phút trôi qua 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 ngoài các tên miền đã xác minh của bạn, hoặc hoàn toàn không có claim email (Entra: thêm claim email tùy chọn) |
Thuộc tính bảo mật
Dành cho các bảng câu hỏi bảo mật: luồng SSO là 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 tên miền được xác minh qua DNS — một assertion cho bất kỳ email nào khác sẽ không bao giờ tạo ra phiên đăng nhập; client secret OIDC được mã hóa khi lưu trữ; mỗi lần đăng nhập SSO đều được ghi vào nhật ký kiểm toán của nhóm. Các cổng kiểm soát về gói, tên miền và cấu hình được thực thi ở phía máy chủ cả khi bắt đầu đăng nhập và tại callback.