Được dịch bằng AI. Cộng đồng chưa xem xét. Đọc bằng tiếng Anh

Blog · 26 tháng 9, 2023 · Steve Simpson · Danh tính

Đi sâu vào xác thực SAML

Hiểu SAML trong đăng nhập một lần với Salesforce

Trong lĩnh vực xác thực, SAML (Security Assertion Markup Language) đóng vai trò then chốt trong việc đảm bảo truy cập liền mạch giữa các ứng dụng. Hãy đi sâu vào SAML, hiểu tầm quan trọng của nó trong đăng nhập một lần (SSO), và khám phá cách hiện thực nó với Salesforce.

Bối cảnh

Hãy tưởng tượng một tình huống bạn có hai Org Salesforce: một nhà cung cấp danh tính (IDP) và một nhà cung cấp dịch vụ. Nhà cung cấp dịch vụ có dữ liệu bạn muốn truy cập, nhưng thay vì dùng nhiều thông tin đăng nhập, bạn muốn làm điều đó chỉ với một bộ thông tin đăng nhập. Khái niệm nghe đơn giản, nhưng cơ chế phía sau có thể rất phức tạp.

Sơ đồ: đăng nhập một lần từ org Salesforce này sang org khác. Trình duyệt được chuyển đến org nhà cung cấp danh tính với một SAML request và quay lại org nhà cung cấp dịch vụ với một SAML assertion; mỗi org giữ chứng chỉ của org kia và người dùng được khớp bằng Federation ID

Các thuật ngữ then chốt trong SAML

Truy cập của người dùng: Khi một người dùng cố tiếp cận một tài nguyên được bảo vệ trên nhà cung cấp dịch vụ trước khi xác thực.

Chuyển hướng: Nếu người dùng chưa được xác thực, nhà cung cấp dịch vụ sẽ chuyển hướng họ đến nhà cung cấp danh tính bằng một SAML request. Nếu cần, một relay state (URL mà người dùng định truy cập ban đầu) có thể được gửi kèm.

Xác thực tại IDP: Nhà cung cấp danh tính xác minh danh tính người dùng, thường qua tên người dùng, mật khẩu hoặc xác thực đa yếu tố.

SAML assertion: Sau khi xác thực, IDP gửi một SAML assertion đến nhà cung cấp dịch vụ.

Sự tin cậy của nhà cung cấp dịch vụ: Nhà cung cấp dịch vụ xác thực SAML assertion, trích xuất thông tin người dùng và cấp quyền truy cập. Nếu trước đó có relay state, nhà cung cấp dịch vụ điều hướng đến URL cụ thể đó.

Tóm tắt SAML: quy trình cơ bản (người dùng truy cập, chuyển hướng, xác thực, assertion, chuyển hướng về, cấp quyền truy cập), các ưu điểm, và các thuật ngữ then chốt

Lợi ích của đăng nhập một lần

Truy cập đơn giản: Người dùng chỉ cần một bộ thông tin đăng nhập để truy cập nhiều dịch vụ.

Bảo mật: SAML dùng chữ ký số để đảm bảo tính toàn vẹn dữ liệu và ngăn chặn giả mạo.

Khả năng tương tác: Là một giao thức chuẩn, SAML có thể giao tiếp với nhiều IDP và nhà cung cấp dịch vụ trên các nền tảng công nghệ khác nhau.

Đi sâu hơn: xem xét các luồng SAML

SAML request: Do nhà cung cấp dịch vụ khởi tạo gửi đến IDP, yêu cầu nó xác thực một người dùng.

Ví dụ SAML request (AuthnRequest) từ org nhà cung cấp dịch vụ đến org nhà cung cấp danh tính

SAML response: Một thông điệp từ IDP sau khi xác thực, chứa thông tin về người dùng.

Ví dụ SAML response từ nhà cung cấp danh tính, với bên phát hành và chữ ký số

Assertion: Đây là những tuyên bố của IDP về người dùng, bao gồm các thuộc tính như tên người dùng hay email.

Chữ ký số: Được dùng để xác minh các assertion, đảm bảo chúng không bị sửa đổi trái phép.

Relay state: Một URL liên kết sâu đảm bảo người dùng được chuyển hướng trở lại đích đến dự định ban đầu sau khi xác thực.

Khi một người dùng bắt đầu truy cập, một SAML request được gửi đến IDP, và sau khi xác minh, IDP gửi lại một SAML assertion. Assertion này, khi được nhà cung cấp dịch vụ xác thực, cấp cho người dùng quyền truy cập như mong muốn.

Sơ đồ trình tự: đăng nhập SAML do nhà cung cấp dịch vụ khởi tạo. Người dùng yêu cầu một trang, được chuyển đến nhà cung cấp danh tính để đăng nhập, quay lại với một SAML assertion, và nhà cung cấp dịch vụ xác thực nó rồi tạo một phiên

Dùng các công cụ như SAML Tracer cho trình duyệt, ta có thể hình dung luồng này. Nó cho một cái nhìn minh bạch về quy trình xác thực, từ yêu cầu ban đầu đến lần chuyển hướng cuối cùng sau khi xác thực.

Các biện pháp bảo mật trong SAML assertion

Để chống lại các mối đe dọa bảo mật tiềm ẩn:

Dấu thời gian được dùng để ngăn tấn công phát lại, đảm bảo SAML assertion chỉ hợp lệ trong một khoảng thời gian ngắn.

Chữ ký số bảo đảm dữ liệu không bị giả mạo trong quá trình trao đổi.

Ngoài ra, assertion có thể chứa các thuộc tính người dùng, như địa chỉ email hay loại người dùng, cho phép kiểm soát truy cập chi tiết hơn ở phía nhà cung cấp dịch vụ.

Kết luận

Về cốt lõi, SAML là một giao thức dựa trên XML chứa các thành phần then chốt cho việc xác thực. Dù có vẻ như phép màu, nó là kết quả của công nghệ được suy tính kỹ lưỡng, được thiết kế để chặn đứng các cuộc tấn công như “kẻ đứng giữa” hay các kịch bản phát lại.

Khả năng tích hợp nhiều nhà cung cấp dịch vụ với nhiều nền tảng công nghệ IDP khác nhau khiến nó trở thành nền tảng của thế giới xác thực số.

Hãy đón xem

Hãy tự tin bắt đầu hành trình Salesforce Identity của bạn! Để có thêm góc nhìn và mẹo hay, hãy theo dõi tại www.SteveTechArc.com và kênh YouTube @SteveTechArc (opens in a new tab). Hãy đăng ký và nâng cao hiểu biết của bạn về Salesforce Identity.

Góp phần thay đổi thế giới bằng cách chia sẻ kiến thức tích hợp với các kiến trúc sư đồng nghiệp và những ai đang trên hành trình trở thành kiến trúc sư!

Bản ghi lời thoại được AI hỗ trợ

STA 3.6