SlideShare a Scribd company logo
Author: Minh Tri Lam
Minhtri.itp@gmail.com
1
NỘI DUNG TRÌNH BÀY
2
I. LỜI NÓI ĐẦU
3
 SSO là một trong những yêu cầu bắt buộc cần phải có khi xây dựng hệ thống trên nền tảng
điện toán đám mây (Cloud Computing). Vì trên nền tảng này chúng ta cung cấp rất nhiều dịch
vụ các dịch vụ cài đặt ở nhiều server khác nhau và kê cả trên cùng một dịch vụ cũng có thể có
hàng trăm, nghìn server cân bằng tải đảm bảo hệ thống dữ liệu lớn và hoạt động xuyên suốt
24/7.
 Bên cạnh đó SSO còn giúp giải quyết bài toán quản lý tài khoản tập trung cho nhiều ứng dụng
dạng dịch vụ (Giống như việc quản lý tài khoản tập trung của Google chỉ cần bạn đăng nhập
một lần và có thể sử dụng tất cả các dịch vụ khác được cung cấp từ Google như Doc, Mail,
Plus, YouTube,…).
 Tài liệu này là một ví dụ minh họa cho việc xây dựng SSO với OpenSource.
 Trên thực tế chúng tôi đã xây dựng thành công giải pháp SSO tùy biến trên các nền tảng
ASP.NET, PHP, JAVA không sử dụng opensource bên cạnh đó vẫn tuân thủ các chuẩn của
SAML.
 Chúng tôi sẽ cung cấp hoàn toàn miễn phí về giải pháp kỹ thuật cho các cơ quan, tổ chức, cá
nhân hoạt động với mục đích phi lợi nhuận (như giáo dục, chính phủ).
 SSO với SAML giải quyết được bài toán giải pháp không phụ thuộc vào nền tảng với chi phí
đầu tư ~0. Chỉ cần một ít kiến thức cơ bản chúng ta có thể tự mình xây dựng hoàn chỉnh.
I. SINGLE SIGN ON (SSO) – GIỚI THIỆU
4
 Khi các hệ thống thông tin ngày càng mở rộng thì người
dùng, người quản trị phải đối mặt với giao diện ngày càng
phức tạp của phần mềm và họ phải thực hiện đăng ký tài
khoản, đăng nhập nhiều lần vào các hệ thống khác nhau
với tài khoản và các phương thức chứng thực khác nhau
để thực hiện các chức năng mà họ cần.
I. SINGLE SIGN ON (SSO) – GIỚI THIỆU
5
 SSO là một phương thức điều khiển truy cập cho phép người dùng chỉ đăng
nhập một lần và có thể sử dụng chứng thực này trên các hệ thống phần mềm
độc lập với nhau trong suốt phiên truy cập.
 LỢI ÍCH CỦA VIỆC SỬ DỤNG SSO
 Giúp người dùng không mất thời gian để đăng nhập quá nhiều lần vào
các hệ thống khác nhau
 Không cần phải nhớ quá nhiều mật khẩu và tài khoản.
 Giảm chi phí cho việc hỗ trợ người dùng về tài khoản và mật khẩu
 Quản lý tài khoản tập trung đồng bộ giữa các hệ thống.
I. SINGLE SIGN ON (SSO) – THÀNH PHẦN CỞ BẢN
6
1. Service provider:
 Cung cấp các chức năng /nghiệp vụ mà người dùng cần
sử dụng
 Kết nối với dịch vụ chứng thực của Identity provider .
 Không quản lý tài khoản người dùng
1. Identity provider :
1. Quản lý tài khoản người dùng
2. Cung cấp đến các Service provider các dịch vụ chứng
thực
 Ngày nay có rất nhiều hãng phần mềm cung cấp các sản
phẩm/ dịch vụ SSO. Tuy nhiên đa số các sản phẩm đều có
bản quyền thương mại. Tham khảo
(http://en.wikipedia.org/wiki/List_of_single_sign-
on_implementations)
 Bên cạnh các phẩm/dịch vụ SSO, Security Assertion Markup
Language 2.0 (SAML 2.0) được phát triển như là một giao
thức cho phép trao đổi dữ liệu chứng thực bảo mật giữa các
hệ thống.
I. SINGLE SIGN ON (SSO) – PHƯƠNG THỨC CÀI ĐẶT
7
II. SECURITY ASSERTION MAKUP LANGUAGE 2.0 (SAML)
8
 SAML được OASIS phát triển dựa trên ngôn ngữ XML.
 SAML được công nhận như là một tiêu chuẩn trao đổi dữ liệu
vào tháng 3 năm 2005.
 SAML được nhiều các nhân, tổ chức hỗ trợ và phát triển.
 Với đặc điểm là một giao thức, ngôn ngữ, tiêu chuẩn SAML
cho phép:
 Cài đặt trên nhiều nền tảng, công nghệ, ngôn ngữ lập trình
khác nhau.
 Trao đổi được với nhiều hệ thống tuân thủ theo chuẩn
SAML.
 Có thể mở rộng và tuỳ biến theo nhu cầu của cá nhân.
 Hoàn toàn miễn phí.
II. SAML - USE CASE CƠ BẢN
9
II. SAML – MESSAGE CƠ BẢN
10
 SAML 2.0 AUTHN REQUEST
<samlp:AuthnRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="_d3b8b3d463d0e03c48296e578ff0469a5159c8a944" Version="2.0"
IssueInstant="2013-02-18T02:57:14Z" Destination="http://demo10.e-
school.edu.vn/simplesaml/saml2/idp/SSOService.php"
AssertionConsumerServiceURL="http://localhost:12788/dotnetSaml/Cons
ume.aspx"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST"><saml:Issuer>http://localhost:12788/dotnetSaml/Consume.aspx</s
aml:Issuer><samlp:NameIDPolicy
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"
AllowCreate="true"/></samlp:AuthnRequest>
II. SAML – MESSAGE CƠ BẢN
11
 SAML 2.0 LOGOUT REQUEST
<samlp:LogoutRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="_7633c2ab595835208b8dabc3316c86670a210af4e1" Version="2.0"
IssueInstant="2013-02-19T01:26:18Z" Destination="http://demo10.e-
school.edu.vn/simplesaml/saml2/idp/SingleLogoutService.php"><saml:Iss
uer>http://localhost:12788/dotnetSaml/Consume.aspx</saml:Issuer><saml
:NameID
SPNameQualifier="http://localhost:12788/dotnetSaml/Consume.aspx"
Format="urn:oasis:names:tc:SAML:2.0:nameid-
format:transient">_63eb38e923fe6e15aba03da682666d2ee007c67ce1</sa
ml:NameID><samlp:SessionIndex>_fd6b46d7e35d00178c7c1c5aed01406
ced47956d8a</samlp:SessionIndex></samlp:LogoutRequest>
II. SAML – MESSAGE CƠ BẢN
12
 SAML 2.0 AUTHN RESPONSE
<?xml version="1.0"?> <samlp:Response
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
ID="_162f441d28cff78e3bb1d3c2bf3e48b5ed532605fd" <saml:Attribute
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
Name="mobile"> <saml:AttributeValue
xsi:type="xs:string">+4741107700</saml:AttributeValue> </saml:Attribute>
<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-
format:basic" Name="o"> <saml:AttributeValue xsi:type="xs:string">Feide
RnD</saml:AttributeValue> </saml:Attribute> <saml:Attribute
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
Name="ou"> <saml:AttributeValue
xsi:type="xs:string">Guests</saml:AttributeValue> </saml:Attribute>
</saml:AttributeStatement> </saml:Assertion> </samlp:Response>
III.SIMPLE SAML PHP – GIỚI THIỆU
13
 SimpleSAMLphp là phần mềm mã nguồn mở viết bằng ngôn
ngữ php. Hỗ trợ giao thức SAML như là một Service Provider
và cả Identity Provider.
 Thuận lợi của SimpleSAMLphp
 Do được viết bằng php và sử dụng giao thức SAML nên
SimpleSAMLphp có thể chạy được trên bất kỳ nền tảng nào
 Được thiết kế theo hướng module cho phép mở rộng
 Đa ngôn ngữ
 Đã qua kiểm tra
IV. CÀI ĐẶT VÀ CẤU HÌNH - SIMPLESAMLPHP
14
 Download source tại:http://simplesamlphp.org/download
 Cài đặt SimpleSAMLphp như là Service Provider
 Thông tin tham khảo/hướng dẫn cấu hình.
 http://simplesamlphp.org/docs/stable/simplesamlphp-sp
 Cài đặt SimpleSAMLphp như là Identity Provider
 Thông tin tham khảo/hướng dẫn cấu hình.
 http://simplesamlphp.org/docs/stable/simplesamlphp-idp
Lưu ý để tránh tình trạng chồng chéo session nên không được phép cài
đặt cả Service Provider và Identity Provider thuộc cùng một domain.
IV. CÀI ĐẶT VÀ CẤU HÌNH - SIMPLESAMLPHP
15
 Chuẩn bị:
1. Tạo domain cho service provider.
2. Tạo domain cho identity provider.
3. Tạo key ssl cho server (sử dụng openssl).
4. Giải nén source simplesamlphp vào các domain đã tạo.
5. Ghi nhận các thông tin domain để chuận bị cấu hình.
IV. CÀI ĐẶT VÀ CẤU HÌNH – SIMPLESAMLPHP (CẤU HÌNH CHUNG CHO CẢ SP VÀ
IDP)
16
1. CẤU HÌNH CHUNG CHO SIMPLE SAML PHP
Làm theo hướng dẫn từng bước tại:
http://simplesamlphp.org/docs/stable/simplesamlph
p-install
Lưu ý đổi tất cả các thông tin mật khẩu mặc định ỏ
file config thì simplesamlphp mới cho phép thực
thi.
Sau khi cấu hình thực hiện kiểm tra hoạt động của
simplesamlphp.
IV. CÀI ĐẶT VÀ CẤU HÌNH – SIMPLESAMLPHP (SERVICE PROVIDER -PHP)
17
2. CẤU HÌNH FILE CONFIG/AUTHSOURCES.PHP
 Ví dụ cấu hình idp cho default sp:
'default-sp' => array('saml:SP‘,'idp' => 'http://demo10.e-
school.edu.vn/simplesaml/saml2/idp/metadata.php'),
IV. CÀI ĐẶT VÀ CẤU HÌNH – SIMPLESAMLPHP (SERVICE PROVIDER -PHP)
18
3. CẤU HÌNH METADATA CHO REMOTE IDP TẠI SP
 Ví dụ cấu hình file /metadata/saml20-idp-remote.php
<?php$metadata['http://demo10.e-school.edu.vn/simplesaml/saml2/idp/metadata.php'] = array ( 'metadata-set' =>
'saml20-idp-remote', 'entityid' => 'http://demo10.e-school.edu.vn/simplesaml/saml2/idp/metadata.php',
'SingleSignOnService' => array ( 0 => array ( 'Binding' =>
'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', 'Location' => 'http://demo10.e-
school.edu.vn/simplesaml/saml2/idp/SSOService.php', ), ), 'SingleLogoutService' => 'http://demo10.e-
school.edu.vn/simplesaml/saml2/idp/SingleLogoutService.php', 'certData' =>
'MIICpTCCAg4CCQD4gyrdy8ygpzANBgkqhkiG9w0BAQUFADCBljELMAkGA1UEBhMCdm4xFDASBgNV
BAgTC0hvIENoaSBNaW5oMRQwEgYDVQQHEwtIbyBDaGkgTWluaDEQMA4GA1UEChMHVmlldHRlbDE
RMA8GA1UECxMIdHR1ZGNudHQxEDAOBgNVBAMTB3ZpZXR0ZWwxJDAiBgkqhkiG9w0BCQEWFW1
pbmh0cmkuaXRwQGdtYWlsLmNvbTAeFw0xMzAyMDYxMTE4NDZaFw0xNDAyMDYxMTE4NDZaMIGW
MQswCQYDVQQGEwJ2bjEUMBIGA1UECBMLSG8gQ2hpIE1pbmgxFDASBgNVBAcTC0hvIENoaSBNaW
5oMRAwDgYDVQQKEwdWaWV0dGVsMREwDwYDVQQLEwh0dHVkY250dDEQMA4GA1UEAxMHdmll
dHRlbDEkMCIGCSqGSIb3DQEJARYVbWluaHRyaS5pdHBAZ21haWwuY29tMIGfMA0GCSqGSIb3DQEBA
QUAA4GNADCBiQKBgQDAERXrONa3IThAZcqV2qt1i16nxFw9j2N6zUp9vBh316cIAYpp+Xi/ls/
+iN7Up6ktkt9hCRPKJ/vn4Pcbk8+dHfip90oDoZz0Aiq7NoLTib4xwDUoBOAKdjueUVcLDPSinV6mWKsy7R/
VF0VgNbcZQin607bMDkcsuUiRAl6sWwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAJKyRtKK0xgNYBt
uanubq6ZC67oJfrIAvqA2eivTCf2Y823AMTYggKnX5iFKwe6Ok4ewwKV11UYdiUC6G9oZdP4uq7MD3ak3b
4gWp3l8rgD4jU00cpI9PWA5EhdTAbJo8y9swWXq+L66RzHy53Dm+kDVlKGKiLXbvrKkvnqY2YvT',
'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient',);
IV. CÀI ĐẶT VÀ CẤU HÌNH – SIMPLESAMLPHP (SERVICE PROVIDER –ASP.NET)
19
 TẠO SAML REQUEST
<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="_d3b8b3d463d0e03c48296e578ff0469a5159c8a944" Version="2.0"
IssueInstant="2013-02-18T02:57:14Z" Destination="http://demo10.e-
school.edu.vn/simplesaml/saml2/idp/SSOService.php"
AssertionConsumerServiceURL="http://localhost:3955/dotnetSaml/Consume.aspx"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST"><saml:Issuer>http://localhost:3955/dotnetSaml/Consume.aspx</saml:Issuer
><samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:2.0:nameid-
format:transient" AllowCreate="true"/></samlp:AuthnRequest>
IV. CÀI ĐẶT VÀ CẤU HÌNH – SIMPLESAMLPHP (SERVICE PROVIDER –ASP.NET)
20
 MÃ HÓA SAML REQUEST
 Sử dụng công cụ theo link bên dưới để chuyển yêu cầu dạng saml
thành dạng mã hoá url (byte code).
 CÔNG CỤ:
 https://rnd.feide.no/simplesaml/module.php/saml2debug/debug.php
 KẾT QUẢ SAU KHI MÃ HÓA:
lZJNb%2BJADIb%2FSjT3ZPIFhBEgUVBVpG5BDbuHvVRDxjQjTWayY6dl%2F%2F0mQFfsBWkvPth
%2B7NevPEPZmFYsO6rtK
%2FzqACk4NcaiOBfmrPNWOIkahZUNoKBKlMtvzyKNYtF6R65yht0g9wmJCJ60syzYrOfsTWWH4pCpfJyp
GOKsyot0OobRpDge43w8laNkNK0KOc1zFvwAjz05Z%2F2gHkfsYGORpKU%2BFSdZGKdhUuzjVIwmIsl
%2FsmDdX6OtpDNVE7WCcwWNS%2BIIQqxq50wEqos%2BLEfdtAaGA%2FgQUq5Vy8tyW4L
%2F0BVEbd2yYPmlfuUsdg34a%2FX76%2FPf
%2BcZV0tQOSSTppCi4cmSBymHwlYokticW7K7mPWirtH2%2F79vh0oTiab%2FfhbttuWeL2SBUnH3wi%2F
%2FbPuO37OzyAy%2F91s1654yufgePzjeS7osaMlqFx3OrIC8tarDU%2B2SM
%2B1x5kARzRr4DxheXlf9%2B2uIP
IV. CÀI ĐẶT VÀ CẤU HÌNH – SIMPLESAMLPHP (SERVICE PROVIDER –ASP.NET)
21
 TẠO YÊU CẦU CHỨNG THỰC GỬI ĐẾN IDP:
 Sau khi thực hiện mã hoá tiếp theo sẽ tạo yêu cầu chứng thực gửi đến idp
 Ví dụ yêu cầu chứng thực được tạo ra trên asp.net provider
http://demo10.e-school.edu.vn/simplesaml/saml2/idp/SSOService.php?SAMLRequest=lZJNb%2BJADIb
%2FSjT3ZPIFhBEgUVBVpG5BDbuHvVRDxjQjTWayY6dl%2F%2F0mQFfsBWkvPth%2B7NevPEPZmFYsO6rtK
%2FzqACk4NcaiOBfmrPNWOIkahZUNoKBKlMtvzyKNYtF6R65yht0g9wmJCJ60syzYrOfsTWWH4pCpfJypGOKsy
ot0OobRpDge43w8laNkNK0KOc1zFvwAjz05Z%2F2gHkfsYGORpKU%2BFSdZGKdhUuzjVIwmIsl
%2FsmDdX6OtpDNVE7WCcwWNS%2BIIQqxq50wEqos%2BLEfdtAaGA%2FgQUq5Vy8tyW4L
%2F0BVEbd2yYPmlfuUsdg34a%2FX76%2FPf
%2BcZV0tQOSSTppCi4cmSBymHwlYokticW7K7mPWirtH2%2F79vh0oTiab%2FfhbttuWeL2SBUnH3wi%2F
%2FbPuO37OzyAy%2F91s1654yufgePzjeS7osaMlqFx3OrIC8tarDU%2B2SM%2B1x5kARzRr4DxheXlf9%2B2uIP
 Tạo asp request và redirect đến trang ứng dụng của sp với url đã tạo ở bước
trên
Response.Redirect(“http://demo10.e-school.edu.vn/simplesaml/saml2/idp/SSOService.php?SAMLRequest=lZJNb%2BJADIb
%2FSjT3ZPIFhBEgUVBVpG5BDbuHvVRDxjQjTWayY6dl%2F%2F0mQFfsBWkvPth%2B7NevPEPZmFYsO6rtK
%2FzqACk4NcaiOBfmrPNWOIkahZUNoKBKlMtvzyKNYtF6R65yht0g9wmJCJ60syzYrOfsTWWH4pCpfJypGOKsyot0OobRpDge43w8laNkNK0KOc
1zFvwAjz05Z%2F2gHkfsYGORpKU%2BFSdZGKdhUuzjVIwmIsl%2FsmDdX6OtpDNVE7WCcwWNS%2BIIQqxq50wEqos%2BLEfdtAaGA
%2FgQUq5Vy8tyW4L%2F0BVEbd2yYPmlfuUsdg34a%2FX76%2FPf%2BcZV0tQOSSTppCi4cmSBymHwlYokticW7K7mPWirtH2%2F79vh0oTiab
%2FfhbttuWeL2SBUnH3wi%2F%2FbPuO37OzyAy%2F91s1654yufgePzjeS7osaMlqFx3OrIC8tarDU%2B2SM%2B1x5kARzRr4DxheXlf9%2B2uIP”);
IV. CÀI ĐẶT VÀ CẤU HÌNH – SIMPLESAMLPHP (IDENTITY PROVIDER -PHP)
22
 CẤU HÌNH METADATA CHO REMOTE SP TẠI IDP
 Ví dụ cấu hình file /metadata/saml20-sp-remote.php
<?php
$metadata['https://sp.smas.vn/simplesaml/module.php/saml/sp/metadata.php/default-sp'] = array (
'AssertionConsumerService' => 'https://sp.smas.vn/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',
'SingleLogoutService' => 'https://sp.smas.vn/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp',
);
$metadata['https://mytest.vn/simplesaml/module.php/saml/sp/metadata.php/default-sp'] = array (
'AssertionConsumerService' => 'https://mytest.vn/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp',
'SingleLogoutService' => 'https://mytest.vn/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp',
);
$metadata['http://localhost:3955/dotnetSaml/Consume.aspx'] = array (
'AssertionConsumerService' => 'http://localhost:3955/dotnetSaml/Consume.aspx',
'SingleLogoutService' => '',
);
IV. CÀI ĐẶT VÀ CẤU HÌNH – SỬ DỤNG OPENSSL
23
 Hướng dẫn cấu hình ssl và tạo serverkey cho apache
 Sử dụng phần mềm openssl và làm theo hướng dẫn theo link
bên dưới
• Link download openssl: http://gnuwin32.sourceforge.net/packages/openssl.htm
• Link hướng dẫn :http://stackoverflow.com/questions/4221874/how-do-i-create-https-
for-localhost-apache
V. VẤN ĐỀ KHI ÁP DỤNG
24
 Cần xây dựng lại mô hình quản lý người
dùng cho identity provider.
 Xây dựng phương pháp chứng thực phù hợp.
 Xậy dựng các thuộc tính trao đổi về thông tin
người dùng giữa identity provider và service
provider.
VI. DEMO
25
 Tham khảo:
 http://en.wikipedia.org/wiki/Single_sign-on
 http://www.opengroup.org/security/sso/sso_intro.htm
 http://en.wikipedia.org/wiki/SAML_2.0
 http://simplesamlphp.org
 http://simplesamlphp.org/docs/1.8/authX509:authX509
 https://rnd.feide.no/simplesaml/module.php/saml2debug/debug.php
 https://onelogin.zendesk.com/entries/20186386-Introduction-to-OneLogin-s-SAML-
Toolkits
 http://stackoverflow.com/questions/4221874/how-do-i-create-https-for-localhost-apache
 Source cài đặt:
 http://simplesamlphp.org/download
 http://gnuwin32.sourceforge.net/packages/openssl.htm
THANKYOU!
26

More Related Content

PPTX
SSO with SAML 2.0
PDF
Finding attacks with these 6 events
PPTX
An Overview of Web Services: SOAP and REST
PPTX
dominocamp2022.t1s1.dde.pptx
PDF
Rest web services
PDF
Slides do Treinamento - OWASP TOP 10 (Em português)
PDF
What is Dependency Injection in Spring Boot | Edureka
PPTX
Apache Flink Training: DataStream API Part 1 Basic
SSO with SAML 2.0
Finding attacks with these 6 events
An Overview of Web Services: SOAP and REST
dominocamp2022.t1s1.dde.pptx
Rest web services
Slides do Treinamento - OWASP TOP 10 (Em português)
What is Dependency Injection in Spring Boot | Edureka
Apache Flink Training: DataStream API Part 1 Basic

What's hot (20)

PDF
Splunk
PDF
Introduction to OAuth2.0
PPT
Asp.net
PDF
Ch 10: Hacking Web Servers
PDF
Overview of web services
PPTX
7314 l12 slides_vn
DOCX
Tìm Hiểu Các Kỹ Thuật Kiểm Thử Phần Mềm và Một Số Ứng Dụng Trong Thực Tế
POTX
IBM Domino / IBM Notes Performance Tuning
PDF
Presentación de Arquitectura en la Nube
PPTX
Google cloud Dataflow & Apache Flink
PDF
WSO2 Enterprise Service Bus - Product Overview
DOC
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
PDF
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
PPTX
SSRF exploit the trust relationship
PPTX
Pacu ~ Rhino Security
PDF
Node.js e Express
PDF
Hướng dẫn sử dụng Selenium ide
PDF
Introduction to SAML 2.0
PDF
Single sign on using SAML
PDF
HTTP Security Headers
Splunk
Introduction to OAuth2.0
Asp.net
Ch 10: Hacking Web Servers
Overview of web services
7314 l12 slides_vn
Tìm Hiểu Các Kỹ Thuật Kiểm Thử Phần Mềm và Một Số Ứng Dụng Trong Thực Tế
IBM Domino / IBM Notes Performance Tuning
Presentación de Arquitectura en la Nube
Google cloud Dataflow & Apache Flink
WSO2 Enterprise Service Bus - Product Overview
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
Bài 1: Làm quen với SQL Server 2008 - Giáo trình FPT
SSRF exploit the trust relationship
Pacu ~ Rhino Security
Node.js e Express
Hướng dẫn sử dụng Selenium ide
Introduction to SAML 2.0
Single sign on using SAML
HTTP Security Headers
Ad

Viewers also liked (20)

PPTX
IdP, SAML, OAuth
DOC
Digital library opensource
DOCX
Mixing asp.net mvc & web form into hybrid project
DOC
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
PPT
Secure coding guide lines (Web Sercurity)
PPT
Joomla CMS framework (1.6 - Old version)
DOC
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
DOC
Digital library standard and technology
PPTX
SQL SERVER BUSINESS INTELLIGENCE & WINDOWS SERVICE
DOC
KHẢO SÁT NHU CẦU QUẢN LÝ SỬ DỤNG VÀ CHIA SẺ TÀI NGUYÊN SỐ
PPT
ADO .NET Entity framework
DOCX
Nunit framework for .NET application
PPT
Jenkins (Continuous Integration System with Jenkins)
DOCX
MSSQL SERVER 2008 REPLICATION (PEER TO PEER)
DOCX
Vai trò của Jenkins trong mô hình phát triển phần mềm Agile
PPTX
PHPUnit with Mocking and Crawling
PDF
SBC 2012 - Windows Security (Lương Trung Thành)
PDF
59436013 tan-cong-va-bao-ve-he-thong-tocbatdat-i-train-com-vn
PDF
Basic Security Training day 1
PPTX
Network security monitoring (ELK)
IdP, SAML, OAuth
Digital library opensource
Mixing asp.net mvc & web form into hybrid project
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Secure coding guide lines (Web Sercurity)
Joomla CMS framework (1.6 - Old version)
Hướng dẫn lập trình với SCSF phần II(smart client software factory)
Digital library standard and technology
SQL SERVER BUSINESS INTELLIGENCE & WINDOWS SERVICE
KHẢO SÁT NHU CẦU QUẢN LÝ SỬ DỤNG VÀ CHIA SẺ TÀI NGUYÊN SỐ
ADO .NET Entity framework
Nunit framework for .NET application
Jenkins (Continuous Integration System with Jenkins)
MSSQL SERVER 2008 REPLICATION (PEER TO PEER)
Vai trò của Jenkins trong mô hình phát triển phần mềm Agile
PHPUnit with Mocking and Crawling
SBC 2012 - Windows Security (Lương Trung Thành)
59436013 tan-cong-va-bao-ve-he-thong-tocbatdat-i-train-com-vn
Basic Security Training day 1
Network security monitoring (ELK)
Ad

Similar to SINGLE SIGN ON (SSO) WITH SECURITY ASSERTION MAKUP LANGUAGE (SAML) (20)

DOC
Xây dựng hệ thống Mail Exchange cho doanh nghiệp.doc
PPTX
báo cáo đồ án môn lập trình mạng máy tính
PDF
41060-Article Text-130234-1-10-20190706.pdf
PDF
Computer_Network_Chapter08_ApplicationLaye.pdf
DOC
Vps server internet
PDF
2010 de taicuoiky
PDF
Foss in-academia-oct-2014-b
PDF
Nghiên cứu 1 số giải pháp an toàn và bảo thông tin trong giao dịch điện tử
PDF
Foss in-academia-sep-2014
PDF
BÀI GIẢNG An ninh mạng máy tính.pdf
PDF
Ssl report
DOC
Đồ án mạng-Tìm hiểu hệ thống domain controler trên Windows Server 2003
PDF
Module6_Chuẩn kỹ năng sử dụng CNTT cơ bản
PPTX
Social media and benefits of this. Internet and social platforms
PPTX
Phan mem nhu mot dich vu tren dien toan dam may
PDF
Foss in-academia-sep-2014-b
PPTX
giới thittju tổng quan môn internet phần 1
PDF
Lap trinhmangvoic sharp
DOC
Luận Văn Nghiên Cứu Bảo Mật Web Service.doc
PDF
Security standard-present-th06-2013-shorter
Xây dựng hệ thống Mail Exchange cho doanh nghiệp.doc
báo cáo đồ án môn lập trình mạng máy tính
41060-Article Text-130234-1-10-20190706.pdf
Computer_Network_Chapter08_ApplicationLaye.pdf
Vps server internet
2010 de taicuoiky
Foss in-academia-oct-2014-b
Nghiên cứu 1 số giải pháp an toàn và bảo thông tin trong giao dịch điện tử
Foss in-academia-sep-2014
BÀI GIẢNG An ninh mạng máy tính.pdf
Ssl report
Đồ án mạng-Tìm hiểu hệ thống domain controler trên Windows Server 2003
Module6_Chuẩn kỹ năng sử dụng CNTT cơ bản
Social media and benefits of this. Internet and social platforms
Phan mem nhu mot dich vu tren dien toan dam may
Foss in-academia-sep-2014-b
giới thittju tổng quan môn internet phần 1
Lap trinhmangvoic sharp
Luận Văn Nghiên Cứu Bảo Mật Web Service.doc
Security standard-present-th06-2013-shorter

SINGLE SIGN ON (SSO) WITH SECURITY ASSERTION MAKUP LANGUAGE (SAML)

  • 1. Author: Minh Tri Lam Minhtri.itp@gmail.com 1
  • 3. I. LỜI NÓI ĐẦU 3  SSO là một trong những yêu cầu bắt buộc cần phải có khi xây dựng hệ thống trên nền tảng điện toán đám mây (Cloud Computing). Vì trên nền tảng này chúng ta cung cấp rất nhiều dịch vụ các dịch vụ cài đặt ở nhiều server khác nhau và kê cả trên cùng một dịch vụ cũng có thể có hàng trăm, nghìn server cân bằng tải đảm bảo hệ thống dữ liệu lớn và hoạt động xuyên suốt 24/7.  Bên cạnh đó SSO còn giúp giải quyết bài toán quản lý tài khoản tập trung cho nhiều ứng dụng dạng dịch vụ (Giống như việc quản lý tài khoản tập trung của Google chỉ cần bạn đăng nhập một lần và có thể sử dụng tất cả các dịch vụ khác được cung cấp từ Google như Doc, Mail, Plus, YouTube,…).  Tài liệu này là một ví dụ minh họa cho việc xây dựng SSO với OpenSource.  Trên thực tế chúng tôi đã xây dựng thành công giải pháp SSO tùy biến trên các nền tảng ASP.NET, PHP, JAVA không sử dụng opensource bên cạnh đó vẫn tuân thủ các chuẩn của SAML.  Chúng tôi sẽ cung cấp hoàn toàn miễn phí về giải pháp kỹ thuật cho các cơ quan, tổ chức, cá nhân hoạt động với mục đích phi lợi nhuận (như giáo dục, chính phủ).  SSO với SAML giải quyết được bài toán giải pháp không phụ thuộc vào nền tảng với chi phí đầu tư ~0. Chỉ cần một ít kiến thức cơ bản chúng ta có thể tự mình xây dựng hoàn chỉnh.
  • 4. I. SINGLE SIGN ON (SSO) – GIỚI THIỆU 4  Khi các hệ thống thông tin ngày càng mở rộng thì người dùng, người quản trị phải đối mặt với giao diện ngày càng phức tạp của phần mềm và họ phải thực hiện đăng ký tài khoản, đăng nhập nhiều lần vào các hệ thống khác nhau với tài khoản và các phương thức chứng thực khác nhau để thực hiện các chức năng mà họ cần.
  • 5. I. SINGLE SIGN ON (SSO) – GIỚI THIỆU 5  SSO là một phương thức điều khiển truy cập cho phép người dùng chỉ đăng nhập một lần và có thể sử dụng chứng thực này trên các hệ thống phần mềm độc lập với nhau trong suốt phiên truy cập.  LỢI ÍCH CỦA VIỆC SỬ DỤNG SSO  Giúp người dùng không mất thời gian để đăng nhập quá nhiều lần vào các hệ thống khác nhau  Không cần phải nhớ quá nhiều mật khẩu và tài khoản.  Giảm chi phí cho việc hỗ trợ người dùng về tài khoản và mật khẩu  Quản lý tài khoản tập trung đồng bộ giữa các hệ thống.
  • 6. I. SINGLE SIGN ON (SSO) – THÀNH PHẦN CỞ BẢN 6 1. Service provider:  Cung cấp các chức năng /nghiệp vụ mà người dùng cần sử dụng  Kết nối với dịch vụ chứng thực của Identity provider .  Không quản lý tài khoản người dùng 1. Identity provider : 1. Quản lý tài khoản người dùng 2. Cung cấp đến các Service provider các dịch vụ chứng thực
  • 7.  Ngày nay có rất nhiều hãng phần mềm cung cấp các sản phẩm/ dịch vụ SSO. Tuy nhiên đa số các sản phẩm đều có bản quyền thương mại. Tham khảo (http://en.wikipedia.org/wiki/List_of_single_sign- on_implementations)  Bên cạnh các phẩm/dịch vụ SSO, Security Assertion Markup Language 2.0 (SAML 2.0) được phát triển như là một giao thức cho phép trao đổi dữ liệu chứng thực bảo mật giữa các hệ thống. I. SINGLE SIGN ON (SSO) – PHƯƠNG THỨC CÀI ĐẶT 7
  • 8. II. SECURITY ASSERTION MAKUP LANGUAGE 2.0 (SAML) 8  SAML được OASIS phát triển dựa trên ngôn ngữ XML.  SAML được công nhận như là một tiêu chuẩn trao đổi dữ liệu vào tháng 3 năm 2005.  SAML được nhiều các nhân, tổ chức hỗ trợ và phát triển.  Với đặc điểm là một giao thức, ngôn ngữ, tiêu chuẩn SAML cho phép:  Cài đặt trên nhiều nền tảng, công nghệ, ngôn ngữ lập trình khác nhau.  Trao đổi được với nhiều hệ thống tuân thủ theo chuẩn SAML.  Có thể mở rộng và tuỳ biến theo nhu cầu của cá nhân.  Hoàn toàn miễn phí.
  • 9. II. SAML - USE CASE CƠ BẢN 9
  • 10. II. SAML – MESSAGE CƠ BẢN 10  SAML 2.0 AUTHN REQUEST <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="_d3b8b3d463d0e03c48296e578ff0469a5159c8a944" Version="2.0" IssueInstant="2013-02-18T02:57:14Z" Destination="http://demo10.e- school.edu.vn/simplesaml/saml2/idp/SSOService.php" AssertionConsumerServiceURL="http://localhost:12788/dotnetSaml/Cons ume.aspx" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP- POST"><saml:Issuer>http://localhost:12788/dotnetSaml/Consume.aspx</s aml:Issuer><samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" AllowCreate="true"/></samlp:AuthnRequest>
  • 11. II. SAML – MESSAGE CƠ BẢN 11  SAML 2.0 LOGOUT REQUEST <samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="_7633c2ab595835208b8dabc3316c86670a210af4e1" Version="2.0" IssueInstant="2013-02-19T01:26:18Z" Destination="http://demo10.e- school.edu.vn/simplesaml/saml2/idp/SingleLogoutService.php"><saml:Iss uer>http://localhost:12788/dotnetSaml/Consume.aspx</saml:Issuer><saml :NameID SPNameQualifier="http://localhost:12788/dotnetSaml/Consume.aspx" Format="urn:oasis:names:tc:SAML:2.0:nameid- format:transient">_63eb38e923fe6e15aba03da682666d2ee007c67ce1</sa ml:NameID><samlp:SessionIndex>_fd6b46d7e35d00178c7c1c5aed01406 ced47956d8a</samlp:SessionIndex></samlp:LogoutRequest>
  • 12. II. SAML – MESSAGE CƠ BẢN 12  SAML 2.0 AUTHN RESPONSE <?xml version="1.0"?> <samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ID="_162f441d28cff78e3bb1d3c2bf3e48b5ed532605fd" <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" Name="mobile"> <saml:AttributeValue xsi:type="xs:string">+4741107700</saml:AttributeValue> </saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname- format:basic" Name="o"> <saml:AttributeValue xsi:type="xs:string">Feide RnD</saml:AttributeValue> </saml:Attribute> <saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" Name="ou"> <saml:AttributeValue xsi:type="xs:string">Guests</saml:AttributeValue> </saml:Attribute> </saml:AttributeStatement> </saml:Assertion> </samlp:Response>
  • 13. III.SIMPLE SAML PHP – GIỚI THIỆU 13  SimpleSAMLphp là phần mềm mã nguồn mở viết bằng ngôn ngữ php. Hỗ trợ giao thức SAML như là một Service Provider và cả Identity Provider.  Thuận lợi của SimpleSAMLphp  Do được viết bằng php và sử dụng giao thức SAML nên SimpleSAMLphp có thể chạy được trên bất kỳ nền tảng nào  Được thiết kế theo hướng module cho phép mở rộng  Đa ngôn ngữ  Đã qua kiểm tra
  • 14. IV. CÀI ĐẶT VÀ CẤU HÌNH - SIMPLESAMLPHP 14  Download source tại:http://simplesamlphp.org/download  Cài đặt SimpleSAMLphp như là Service Provider  Thông tin tham khảo/hướng dẫn cấu hình.  http://simplesamlphp.org/docs/stable/simplesamlphp-sp  Cài đặt SimpleSAMLphp như là Identity Provider  Thông tin tham khảo/hướng dẫn cấu hình.  http://simplesamlphp.org/docs/stable/simplesamlphp-idp Lưu ý để tránh tình trạng chồng chéo session nên không được phép cài đặt cả Service Provider và Identity Provider thuộc cùng một domain.
  • 15. IV. CÀI ĐẶT VÀ CẤU HÌNH - SIMPLESAMLPHP 15  Chuẩn bị: 1. Tạo domain cho service provider. 2. Tạo domain cho identity provider. 3. Tạo key ssl cho server (sử dụng openssl). 4. Giải nén source simplesamlphp vào các domain đã tạo. 5. Ghi nhận các thông tin domain để chuận bị cấu hình.
  • 16. IV. CÀI ĐẶT VÀ CẤU HÌNH – SIMPLESAMLPHP (CẤU HÌNH CHUNG CHO CẢ SP VÀ IDP) 16 1. CẤU HÌNH CHUNG CHO SIMPLE SAML PHP Làm theo hướng dẫn từng bước tại: http://simplesamlphp.org/docs/stable/simplesamlph p-install Lưu ý đổi tất cả các thông tin mật khẩu mặc định ỏ file config thì simplesamlphp mới cho phép thực thi. Sau khi cấu hình thực hiện kiểm tra hoạt động của simplesamlphp.
  • 17. IV. CÀI ĐẶT VÀ CẤU HÌNH – SIMPLESAMLPHP (SERVICE PROVIDER -PHP) 17 2. CẤU HÌNH FILE CONFIG/AUTHSOURCES.PHP  Ví dụ cấu hình idp cho default sp: 'default-sp' => array('saml:SP‘,'idp' => 'http://demo10.e- school.edu.vn/simplesaml/saml2/idp/metadata.php'),
  • 18. IV. CÀI ĐẶT VÀ CẤU HÌNH – SIMPLESAMLPHP (SERVICE PROVIDER -PHP) 18 3. CẤU HÌNH METADATA CHO REMOTE IDP TẠI SP  Ví dụ cấu hình file /metadata/saml20-idp-remote.php <?php$metadata['http://demo10.e-school.edu.vn/simplesaml/saml2/idp/metadata.php'] = array ( 'metadata-set' => 'saml20-idp-remote', 'entityid' => 'http://demo10.e-school.edu.vn/simplesaml/saml2/idp/metadata.php', 'SingleSignOnService' => array ( 0 => array ( 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', 'Location' => 'http://demo10.e- school.edu.vn/simplesaml/saml2/idp/SSOService.php', ), ), 'SingleLogoutService' => 'http://demo10.e- school.edu.vn/simplesaml/saml2/idp/SingleLogoutService.php', 'certData' => 'MIICpTCCAg4CCQD4gyrdy8ygpzANBgkqhkiG9w0BAQUFADCBljELMAkGA1UEBhMCdm4xFDASBgNV BAgTC0hvIENoaSBNaW5oMRQwEgYDVQQHEwtIbyBDaGkgTWluaDEQMA4GA1UEChMHVmlldHRlbDE RMA8GA1UECxMIdHR1ZGNudHQxEDAOBgNVBAMTB3ZpZXR0ZWwxJDAiBgkqhkiG9w0BCQEWFW1 pbmh0cmkuaXRwQGdtYWlsLmNvbTAeFw0xMzAyMDYxMTE4NDZaFw0xNDAyMDYxMTE4NDZaMIGW MQswCQYDVQQGEwJ2bjEUMBIGA1UECBMLSG8gQ2hpIE1pbmgxFDASBgNVBAcTC0hvIENoaSBNaW 5oMRAwDgYDVQQKEwdWaWV0dGVsMREwDwYDVQQLEwh0dHVkY250dDEQMA4GA1UEAxMHdmll dHRlbDEkMCIGCSqGSIb3DQEJARYVbWluaHRyaS5pdHBAZ21haWwuY29tMIGfMA0GCSqGSIb3DQEBA QUAA4GNADCBiQKBgQDAERXrONa3IThAZcqV2qt1i16nxFw9j2N6zUp9vBh316cIAYpp+Xi/ls/ +iN7Up6ktkt9hCRPKJ/vn4Pcbk8+dHfip90oDoZz0Aiq7NoLTib4xwDUoBOAKdjueUVcLDPSinV6mWKsy7R/ VF0VgNbcZQin607bMDkcsuUiRAl6sWwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAJKyRtKK0xgNYBt uanubq6ZC67oJfrIAvqA2eivTCf2Y823AMTYggKnX5iFKwe6Ok4ewwKV11UYdiUC6G9oZdP4uq7MD3ak3b 4gWp3l8rgD4jU00cpI9PWA5EhdTAbJo8y9swWXq+L66RzHy53Dm+kDVlKGKiLXbvrKkvnqY2YvT', 'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient',);
  • 19. IV. CÀI ĐẶT VÀ CẤU HÌNH – SIMPLESAMLPHP (SERVICE PROVIDER –ASP.NET) 19  TẠO SAML REQUEST <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="_d3b8b3d463d0e03c48296e578ff0469a5159c8a944" Version="2.0" IssueInstant="2013-02-18T02:57:14Z" Destination="http://demo10.e- school.edu.vn/simplesaml/saml2/idp/SSOService.php" AssertionConsumerServiceURL="http://localhost:3955/dotnetSaml/Consume.aspx" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP- POST"><saml:Issuer>http://localhost:3955/dotnetSaml/Consume.aspx</saml:Issuer ><samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:2.0:nameid- format:transient" AllowCreate="true"/></samlp:AuthnRequest>
  • 20. IV. CÀI ĐẶT VÀ CẤU HÌNH – SIMPLESAMLPHP (SERVICE PROVIDER –ASP.NET) 20  MÃ HÓA SAML REQUEST  Sử dụng công cụ theo link bên dưới để chuyển yêu cầu dạng saml thành dạng mã hoá url (byte code).  CÔNG CỤ:  https://rnd.feide.no/simplesaml/module.php/saml2debug/debug.php  KẾT QUẢ SAU KHI MÃ HÓA: lZJNb%2BJADIb%2FSjT3ZPIFhBEgUVBVpG5BDbuHvVRDxjQjTWayY6dl%2F%2F0mQFfsBWkvPth %2B7NevPEPZmFYsO6rtK %2FzqACk4NcaiOBfmrPNWOIkahZUNoKBKlMtvzyKNYtF6R65yht0g9wmJCJ60syzYrOfsTWWH4pCpfJyp GOKsyot0OobRpDge43w8laNkNK0KOc1zFvwAjz05Z%2F2gHkfsYGORpKU%2BFSdZGKdhUuzjVIwmIsl %2FsmDdX6OtpDNVE7WCcwWNS%2BIIQqxq50wEqos%2BLEfdtAaGA%2FgQUq5Vy8tyW4L %2F0BVEbd2yYPmlfuUsdg34a%2FX76%2FPf %2BcZV0tQOSSTppCi4cmSBymHwlYokticW7K7mPWirtH2%2F79vh0oTiab%2FfhbttuWeL2SBUnH3wi%2F %2FbPuO37OzyAy%2F91s1654yufgePzjeS7osaMlqFx3OrIC8tarDU%2B2SM %2B1x5kARzRr4DxheXlf9%2B2uIP
  • 21. IV. CÀI ĐẶT VÀ CẤU HÌNH – SIMPLESAMLPHP (SERVICE PROVIDER –ASP.NET) 21  TẠO YÊU CẦU CHỨNG THỰC GỬI ĐẾN IDP:  Sau khi thực hiện mã hoá tiếp theo sẽ tạo yêu cầu chứng thực gửi đến idp  Ví dụ yêu cầu chứng thực được tạo ra trên asp.net provider http://demo10.e-school.edu.vn/simplesaml/saml2/idp/SSOService.php?SAMLRequest=lZJNb%2BJADIb %2FSjT3ZPIFhBEgUVBVpG5BDbuHvVRDxjQjTWayY6dl%2F%2F0mQFfsBWkvPth%2B7NevPEPZmFYsO6rtK %2FzqACk4NcaiOBfmrPNWOIkahZUNoKBKlMtvzyKNYtF6R65yht0g9wmJCJ60syzYrOfsTWWH4pCpfJypGOKsy ot0OobRpDge43w8laNkNK0KOc1zFvwAjz05Z%2F2gHkfsYGORpKU%2BFSdZGKdhUuzjVIwmIsl %2FsmDdX6OtpDNVE7WCcwWNS%2BIIQqxq50wEqos%2BLEfdtAaGA%2FgQUq5Vy8tyW4L %2F0BVEbd2yYPmlfuUsdg34a%2FX76%2FPf %2BcZV0tQOSSTppCi4cmSBymHwlYokticW7K7mPWirtH2%2F79vh0oTiab%2FfhbttuWeL2SBUnH3wi%2F %2FbPuO37OzyAy%2F91s1654yufgePzjeS7osaMlqFx3OrIC8tarDU%2B2SM%2B1x5kARzRr4DxheXlf9%2B2uIP  Tạo asp request và redirect đến trang ứng dụng của sp với url đã tạo ở bước trên Response.Redirect(“http://demo10.e-school.edu.vn/simplesaml/saml2/idp/SSOService.php?SAMLRequest=lZJNb%2BJADIb %2FSjT3ZPIFhBEgUVBVpG5BDbuHvVRDxjQjTWayY6dl%2F%2F0mQFfsBWkvPth%2B7NevPEPZmFYsO6rtK %2FzqACk4NcaiOBfmrPNWOIkahZUNoKBKlMtvzyKNYtF6R65yht0g9wmJCJ60syzYrOfsTWWH4pCpfJypGOKsyot0OobRpDge43w8laNkNK0KOc 1zFvwAjz05Z%2F2gHkfsYGORpKU%2BFSdZGKdhUuzjVIwmIsl%2FsmDdX6OtpDNVE7WCcwWNS%2BIIQqxq50wEqos%2BLEfdtAaGA %2FgQUq5Vy8tyW4L%2F0BVEbd2yYPmlfuUsdg34a%2FX76%2FPf%2BcZV0tQOSSTppCi4cmSBymHwlYokticW7K7mPWirtH2%2F79vh0oTiab %2FfhbttuWeL2SBUnH3wi%2F%2FbPuO37OzyAy%2F91s1654yufgePzjeS7osaMlqFx3OrIC8tarDU%2B2SM%2B1x5kARzRr4DxheXlf9%2B2uIP”);
  • 22. IV. CÀI ĐẶT VÀ CẤU HÌNH – SIMPLESAMLPHP (IDENTITY PROVIDER -PHP) 22  CẤU HÌNH METADATA CHO REMOTE SP TẠI IDP  Ví dụ cấu hình file /metadata/saml20-sp-remote.php <?php $metadata['https://sp.smas.vn/simplesaml/module.php/saml/sp/metadata.php/default-sp'] = array ( 'AssertionConsumerService' => 'https://sp.smas.vn/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp', 'SingleLogoutService' => 'https://sp.smas.vn/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp', ); $metadata['https://mytest.vn/simplesaml/module.php/saml/sp/metadata.php/default-sp'] = array ( 'AssertionConsumerService' => 'https://mytest.vn/simplesaml/module.php/saml/sp/saml2-acs.php/default-sp', 'SingleLogoutService' => 'https://mytest.vn/simplesaml/module.php/saml/sp/saml2-logout.php/default-sp', ); $metadata['http://localhost:3955/dotnetSaml/Consume.aspx'] = array ( 'AssertionConsumerService' => 'http://localhost:3955/dotnetSaml/Consume.aspx', 'SingleLogoutService' => '', );
  • 23. IV. CÀI ĐẶT VÀ CẤU HÌNH – SỬ DỤNG OPENSSL 23  Hướng dẫn cấu hình ssl và tạo serverkey cho apache  Sử dụng phần mềm openssl và làm theo hướng dẫn theo link bên dưới • Link download openssl: http://gnuwin32.sourceforge.net/packages/openssl.htm • Link hướng dẫn :http://stackoverflow.com/questions/4221874/how-do-i-create-https- for-localhost-apache
  • 24. V. VẤN ĐỀ KHI ÁP DỤNG 24  Cần xây dựng lại mô hình quản lý người dùng cho identity provider.  Xây dựng phương pháp chứng thực phù hợp.  Xậy dựng các thuộc tính trao đổi về thông tin người dùng giữa identity provider và service provider.
  • 26.  Tham khảo:  http://en.wikipedia.org/wiki/Single_sign-on  http://www.opengroup.org/security/sso/sso_intro.htm  http://en.wikipedia.org/wiki/SAML_2.0  http://simplesamlphp.org  http://simplesamlphp.org/docs/1.8/authX509:authX509  https://rnd.feide.no/simplesaml/module.php/saml2debug/debug.php  https://onelogin.zendesk.com/entries/20186386-Introduction-to-OneLogin-s-SAML- Toolkits  http://stackoverflow.com/questions/4221874/how-do-i-create-https-for-localhost-apache  Source cài đặt:  http://simplesamlphp.org/download  http://gnuwin32.sourceforge.net/packages/openssl.htm THANKYOU! 26