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

What's hot

What's hot (20)

iNTRODUCTION TO AWS IOT
iNTRODUCTION TO AWS IOTiNTRODUCTION TO AWS IOT
iNTRODUCTION TO AWS IOT
 
Active directory and application
Active directory and applicationActive directory and application
Active directory and application
 
Access Control for the Cloud: AWS Identity and Access Management (IAM) (SEC20...
Access Control for the Cloud: AWS Identity and Access Management (IAM) (SEC20...Access Control for the Cloud: AWS Identity and Access Management (IAM) (SEC20...
Access Control for the Cloud: AWS Identity and Access Management (IAM) (SEC20...
 
Building for Scale with AWS Media Services
Building for Scale with AWS Media ServicesBuilding for Scale with AWS Media Services
Building for Scale with AWS Media Services
 
Cross-account encryption with AWS KMS and Slack Enterprise Key Management - S...
Cross-account encryption with AWS KMS and Slack Enterprise Key Management - S...Cross-account encryption with AWS KMS and Slack Enterprise Key Management - S...
Cross-account encryption with AWS KMS and Slack Enterprise Key Management - S...
 
Gateway/APIC security
Gateway/APIC securityGateway/APIC security
Gateway/APIC security
 
Asp.Net Identity
Asp.Net IdentityAsp.Net Identity
Asp.Net Identity
 
AWS IAM Introduction
AWS IAM IntroductionAWS IAM Introduction
AWS IAM Introduction
 
DEV204_Debugging Modern Applications Introduction to AWS X-Ray
DEV204_Debugging Modern Applications Introduction to AWS X-RayDEV204_Debugging Modern Applications Introduction to AWS X-Ray
DEV204_Debugging Modern Applications Introduction to AWS X-Ray
 
Active directory security assessment
Active directory security assessmentActive directory security assessment
Active directory security assessment
 
Cloud Computing and Amazon Web Services
Cloud Computing and Amazon Web ServicesCloud Computing and Amazon Web Services
Cloud Computing and Amazon Web Services
 
IAM Recommended Practices
IAM Recommended PracticesIAM Recommended Practices
IAM Recommended Practices
 
Amazon AWS Free-Tier
Amazon AWS Free-TierAmazon AWS Free-Tier
Amazon AWS Free-Tier
 
Deep Dive into AWS SAM
Deep Dive into AWS SAMDeep Dive into AWS SAM
Deep Dive into AWS SAM
 
WIN403_AWS Directory Service for Microsoft Active Directory Deep Dive
WIN403_AWS Directory Service for Microsoft Active Directory Deep DiveWIN403_AWS Directory Service for Microsoft Active Directory Deep Dive
WIN403_AWS Directory Service for Microsoft Active Directory Deep Dive
 
Getting Started with Amazon WorkSpaces
 Getting Started with Amazon WorkSpaces Getting Started with Amazon WorkSpaces
Getting Started with Amazon WorkSpaces
 
Infrastructure as Code in AWS using Cloudformation
Infrastructure as Code in AWS using CloudformationInfrastructure as Code in AWS using Cloudformation
Infrastructure as Code in AWS using Cloudformation
 
Amazon Macie Demo
Amazon Macie DemoAmazon Macie Demo
Amazon Macie Demo
 
Media Workloads on AWS
Media Workloads on AWSMedia Workloads on AWS
Media Workloads on AWS
 
Preparing your enteprise for Hybrid AD Join and Conditional Access
Preparing your enteprise for Hybrid AD Join and Conditional AccessPreparing your enteprise for Hybrid AD Join and Conditional Access
Preparing your enteprise for Hybrid AD Join and Conditional Access
 

Viewers also liked

SBC 2012 - Windows Security (Lương Trung Thành)
SBC 2012 - Windows Security (Lương Trung Thành)SBC 2012 - Windows Security (Lương Trung Thành)
SBC 2012 - Windows Security (Lương Trung Thành)
Security Bootcamp
 
59436013 tan-cong-va-bao-ve-he-thong-tocbatdat-i-train-com-vn
59436013 tan-cong-va-bao-ve-he-thong-tocbatdat-i-train-com-vn59436013 tan-cong-va-bao-ve-he-thong-tocbatdat-i-train-com-vn
59436013 tan-cong-va-bao-ve-he-thong-tocbatdat-i-train-com-vn
Luan Dt
 

Viewers also liked (20)

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

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

Tim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chongTim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chong
Vu Trung Kien
 
Báo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụngBáo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụng
Vượng Đặng
 
Nguyễn Đằng Vân_Báo Cáo Giữa Kỳ
Nguyễn Đằng Vân_Báo Cáo Giữa KỳNguyễn Đằng Vân_Báo Cáo Giữa Kỳ
Nguyễn Đằng Vân_Báo Cáo Giữa Kỳ
Nguyễn Vân
 
Báo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳBáo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳ
Nguyễn Vân
 
Báo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳBáo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳ
Thu Hien
 
Báo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳBáo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳ
Tai Ly
 
Baocao ltm
Baocao ltmBaocao ltm
Baocao ltm
ptlong96
 
Tìm hiểu web service
Tìm hiểu web serviceTìm hiểu web service
Tìm hiểu web service
Thieu Mao
 

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

Luận văn: Tích hợp dịch vụ nghiệp vụ ngân hàng theo mô hình soa
Luận văn: Tích hợp dịch vụ nghiệp vụ ngân hàng theo mô hình soaLuận văn: Tích hợp dịch vụ nghiệp vụ ngân hàng theo mô hình soa
Luận văn: Tích hợp dịch vụ nghiệp vụ ngân hàng theo mô hình soa
 
Portal solution with sharepoint 2007
Portal solution with sharepoint 2007Portal solution with sharepoint 2007
Portal solution with sharepoint 2007
 
Tim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chongTim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chong
 
Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake php
 
Luận văn xây dựng cổng thông tin điện tử ubnd tỉnh quảng bình bằng wordpress
Luận văn xây dựng cổng thông tin điện tử ubnd tỉnh quảng bình bằng wordpressLuận văn xây dựng cổng thông tin điện tử ubnd tỉnh quảng bình bằng wordpress
Luận văn xây dựng cổng thông tin điện tử ubnd tỉnh quảng bình bằng wordpress
 
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì?  9 Thứ thú vị có thể làm với PHPPHP có thể làm gì?  9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
 
Báo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụngBáo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụng
 
Nguyen Dang Van
Nguyen Dang VanNguyen Dang Van
Nguyen Dang Van
 
Nguyễn Đằng Vân_Báo Cáo Giữa Kỳ
Nguyễn Đằng Vân_Báo Cáo Giữa KỳNguyễn Đằng Vân_Báo Cáo Giữa Kỳ
Nguyễn Đằng Vân_Báo Cáo Giữa Kỳ
 
Báo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳBáo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳ
 
Báo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳBáo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳ
 
Báo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳBáo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳ
 
Owncloud - cloud solution for SME
Owncloud - cloud solution for SMEOwncloud - cloud solution for SME
Owncloud - cloud solution for SME
 
Giới thiệu NukeViet 5 và Autoweb
Giới thiệu NukeViet 5 và AutowebGiới thiệu NukeViet 5 và Autoweb
Giới thiệu NukeViet 5 và Autoweb
 
Baocao ltm
Baocao ltmBaocao ltm
Baocao ltm
 
Bao cao thuc tap
Bao cao thuc tapBao cao thuc tap
Bao cao thuc tap
 
Bao cao wesite bán giày.docx
Bao cao wesite bán giày.docxBao cao wesite bán giày.docx
Bao cao wesite bán giày.docx
 
Tìm hiểu web service
Tìm hiểu web serviceTìm hiểu web service
Tìm hiểu web service
 
Giải pháp quản trị và vận hành hệ thống CNTT theo tiêu chuẩn ITIL/ ISO 20000
Giải pháp quản trị và vận hành hệ thống CNTT theo tiêu chuẩn ITIL/ ISO 20000Giải pháp quản trị và vận hành hệ thống CNTT theo tiêu chuẩn ITIL/ ISO 20000
Giải pháp quản trị và vận hành hệ thống CNTT theo tiêu chuẩn ITIL/ ISO 20000
 
chuong 1 - Tong quan ve Lap trinh mang.ppt
chuong 1 - Tong quan ve Lap trinh mang.pptchuong 1 - Tong quan ve Lap trinh mang.ppt
chuong 1 - Tong quan ve Lap trinh mang.ppt
 

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