SAML LÀ GÌ

     

Nếu bạn đã từng nghe OAuthhay OAuth2thì SAMLchính là một chuẩn khác để giải quyết bài toán tương tự với OAuthOAuth2.

Bạn đang xem: Saml là gì

Đang xem: Single sign

Bài toán mà các chuẩn trên giải quyết tên là SSO (Single Sign On).

SSOnảy sinh từ vấn đề khi các nhà cung cấp dịch vụ muốn người dùng có thể sử dụng các dịch vụ khác nhau mà chỉ cần đăng nhập vào một chỗ duy nhất, giúp cho việc sử dụng được thuận tiện cũng như giúp cho người dùng quản lý các username và password được giảm đi tối thiểu, thì đòi hỏi cần có một cách nào đó có thể xác thực và ủy quyền thông tin người dùng mà không cần bắt họ tạo tài khoản khác nhau trên những dịch vụ khác nhau.

Chú ý: SAMLtự động giải quyết cả 2 vấn đề xác thực (authentication)ủy quyền (authorization)nhưng OAuthOAuth2chỉ tự động giải quyết được vấn đề uỷ quyền(link tham khảo tại đây).

Xem thêm: Cách Tắt Truy Cập Nhanh Trên Google Drive Đơn Giản, Cách Ẩn Truy Cập Nhanh Trên Ổ Đĩa Google 2022

SAML(Security Assertion Markup Language) là một “chuẩn mở” cho phép nhà cung cấp thực thể (Identity Provider – IdP) xác thực người dùng và ủy quyền cho người dùng sử dụng một dịch vụ nào đó của nhà cung cấp dịch vụ(Service Provider – SP) mà không bắt buộc người dùng phải tạo tài khoản đăng nhập vào dịch vụ đó.

Định nghĩa như trên đọc sẽ khó hiểu, nhưng nếu bạn biết nút “Đăng nhập bằng Facebook” ở một số website thì mục đích của cái nút đó chính là mục đích của SAML.

2. Cách hoạt động của SAML.

Xem thêm: Mẫu Phiếu Đánh Giá Và Phân Loại Viên Chức 2016 Mới Nhất, Phiếu Đánh Giá Và Phân Loại Công Chức Năm 2016

*
*
*
*
*
*
*

Nếu bạn muốn các thông tin riêng biệt của IdPthì click vào View Setup Instructions, còn nếu bạn chỉ muốn metadata url của IdPđể SPcủa bạn có thể tự động lấy thông tin (như mình làm trong phần saml_settings trong rails ở trên) thì click vào Identity Provider metadatađể hiển thị thông tin metadata của IdPvà lấy url của nó, phần cấu hình tự động lấy thông tin của IdP từ metadatachính là câu lệnh này trong rails:

settings = idp_metadata_parser.parse_remote(“https://dev-879121.okta.com/app/abcefasdfasfafa/sso/saml/metadata”)

Sau khi đã cài đặt SPIdPxong thì bạn truy cập vào url http://localhost:3001/mrs/saml/sign_inđể test (mình dùng cổng 3001 cho rails app).

Link tham khảo:

https://en.wikipedia.org/wiki/SAML_Metadata

https://developer.okta.com/standards/SAML/setting_up_a_saml_application_in_okta/

https://security.stackexchange.com/questions/133065/why-is-it-a-bad-idea-to-use-plain-oauth2-for-authentication

https://stackoverflow.com/questions/12779532/differences-between-sp-initiated-sso-and-idp-initiated-sso