Máy chủ định danh đang hoạt động

DXSOL SSO
Identity Connect

Máy chủ định danh tập trung theo chuẩn OpenID Connect 1.0OAuth 2.0: một lần đăng nhập cho mọi ứng dụng nghiệp vụ, tài khoản liên kết (federation) về hệ thống gốc, không lưu mật khẩu tại IdP.

Issuer https://sso.dxsolbim.com Grant authorization_code · refresh_token PKCE S256 bắt buộc
Ứng dụng SPA public client · PKCE Resource API Bearer JWT · JWKS DXSOL SSO Authorization Server Hệ thống gốc (KPI) authorize / token access token
Giao diện lập trình

Điểm cuối OpenID Connect

Danh sách dưới đây được đọc trực tiếp từ cấu hình máy chủ OpenIddict đang chạy — luôn khớp với thực tế. Ứng dụng khách chỉ cần đọc discovery document, mọi địa chỉ còn lại sẽ được tự động phát hiện.

Discovery

GET

Siêu dữ liệu máy chủ: issuer, các điểm cuối, scope, thuật toán ký — client đọc file này để tự cấu hình.

Đang bật OpenID Connect Discovery 1.0

JWKS

GET

Bộ khoá công khai để Resource Server xác thực chữ ký JWT mà không cần gọi ngược về IdP.

Đang bật RFC 7517

Authorization

GET

Khởi tạo luồng Authorization Code + PKCE: xác thực người dùng, lấy đồng ý, phát mã uỷ quyền.

Đang bật RFC 6749 §3.1

Token

POST

Đổi authorization code (kèm code_verifier) lấy access token / id token / refresh token.

Đang bật RFC 6749 §3.2

UserInfo

GET · POST

Trả claim hồ sơ người dùng cho access token hợp lệ (sub, name, email, roles).

Đang bật OIDC Core §5.3

End Session

GET · POST

Kết thúc phiên đăng nhập tại IdP rồi chuyển hướng về post_logout_redirect_uri của ứng dụng.

Đang bật OIDC RP-Initiated Logout

Introspection

POST
— chưa kích hoạt —

Kiểm tra trạng thái token cho resource server. Chỉ cần khi có client bí mật (confidential).

Chưa bật RFC 7662

Revocation

POST
— chưa kích hoạt —

Thu hồi refresh token / access token trước hạn khi người dùng đăng xuất hoặc lộ token.

Chưa bật RFC 7009

Vì sao Introspection và Revocation chưa bật?

  • Hai điểm cuối này yêu cầu client xác thực bằng client secret. Toàn bộ ứng dụng hiện tại là SPA — public client, không giữ được bí mật, nên không dùng tới.
  • Access token là JWS tự chứa, Resource API xác thực bằng chữ ký lấy từ JWKS — không cần gọi introspection cho mỗi request.
  • Khi có client máy chủ (confidential) hoặc yêu cầu thu hồi token tức thời, bật thêm bằng SetIntrospectionEndpointUris / SetRevocationEndpointUris.
Bảo mật

Phòng thủ nhiều lớp, theo đúng chuẩn

Mọi lớp bảo vệ đều dựa trên đặc tả công khai (RFC / OIDC Core), không dùng cơ chế tự chế.

PKCE S256 bắt buộc

Mọi luồng Authorization Code phải kèm code_challenge. Mã uỷ quyền bị chặn cũng vô dụng nếu thiếu code_verifier.

Không lưu mật khẩu tại IdP

Danh tính được liên kết (federate) về hệ thống gốc qua kênh máy chủ–máy chủ. Cơ sở dữ liệu SSO chỉ chứa bảng OpenIddict.

Xác thực hai lớp (OTP)

OTP qua e-mail hoặc SMS, bật cho toàn bộ ứng dụng hoặc chỉ cho vai trò nhạy cảm (super, admin).

Token ký số RS256

Access token dạng JWS (không mã hoá), xác thực bằng khoá công khai từ JWKS — Resource API không cần biết bí mật nào của IdP.

Phiên trượt & refresh token

Cookie HttpOnly hết hạn sau 1 giờ, tự gia hạn khi còn hoạt động. Refresh token cho phép làm mới quyền truy cập mà không hỏi lại mật khẩu.

Giới hạn nguồn gọi

Chỉ redirect URI đã đăng ký mới được nhận mã uỷ quyền; CORS khoá theo danh sách origin tin cậy trong cấu hình.

Luồng xác thực

Authorization Code + PKCE

Luồng duy nhất được khuyến nghị cho ứng dụng trình duyệt — token không bao giờ đi qua thanh địa chỉ.

Chuyển hướng

Ứng dụng gọi /connect/authorize kèm code_challenge.

Đăng nhập

IdP hiển thị trang đăng nhập mang nhận diện riêng của từng ứng dụng.

Liên kết & OTP

Xác thực về hệ thống gốc, gửi OTP nếu chính sách yêu cầu.

Đổi mã

Ứng dụng đổi mã tại /connect/token kèm code_verifier.

Gọi API

Đính access token vào header; API xác thực chữ ký qua JWKS.

Ứng dụng đã đăng ký

2 ứng dụng dùng chung một danh tính

Người dùng đăng nhập một lần tại IdP và truy cập được mọi ứng dụng dưới đây, theo đúng phạm vi (scope) được cấp.

Phần mềm theo dõi, đánh giá KPI công chức

kpi-angular
OTP: mọi người dùng
Loại client
public · PKCE
Scope API
kpi_api
Redirect URI
https://kpi.dxsolbim.com/callback
Kênh OTP
email

Phần mềm Quản lý cán bộ

canbo-app
OTP: vai trò super, admin
Loại client
public · PKCE
Scope API
canbo_api
Redirect URI
https://canbo.dxsolbim.com/callback
Kênh OTP
email
canbo_api email kpi_api offline_access openid profile roles