การติดตั้ง Shibboleth Single Sign-On
ตอนที่ 10 - จัดเตรียมแอททริบิวท์
15. จัดเตรียมแอททริบิวท์
แอททริบิวท์คือข้อมูลที่จะถูกส่งจากระบบ
Login Module ของ IdP กลับมาที่ SP หลังจากที่ล็อกอินผ่านแล้ว
โดยปกติแล้วเราอาจจะต้องการข้อมูลบางอย่างเช่น ชื่อ นามสกุล เบอร์โทร ตำแหน่งงาน
ของผู้ใช้ซึ่งข้อมูลเหล่านี้มักจะมีเก็บไว้ในระบบ LDAP อยู่แล้ว
เพียงแต่เราจำเป็นต้องบอกให้ IdP ส่งข้อมูลเหล่านี้ออกมาด้วย
15.1 ตรวจสอบว่ามีแอททริบิวท์อะไรบ้างด้วยไฟล์
shibenv.php
ก่อนอื่นเราจำเป็นต้องตรวจสอบก่อนว่ามีแอททริบิวท์อะไรบ้างที่รับมาจาก
IdP โดยก็อปปีไฟล์ shibenv.php
จากโฟลเดอร์ c:\sso\setup\samples\app1 มาวางไว้ที่โฟลเดอร์
c:\sso\Apache2.2\htdocs\secure แล้วทดลองเบราซ์ไปที่ไฟล์ shibenv.php
ผ่านทางหน้าต่างเบราเซอร์ โดยไปที่ http://127.0.0.1/secure/shibenv.php
ซึ่งควรจะได้ผลลัพธ์ดังนี้
เมื่อรันไฟล์ shibenv.php เราจะพบว่าแอททริบิวท์ยังไม่ถูกส่งมาจาก
IdP เช่น REMOTE_USER ยังไม่มีค่า
ซึ่งหากเป็นเช่นนี้จะทำให้แอพพลิเคชันของเราไม่สามารถตรวจสอบได้ว่าใครเป็นผู้เข้ามาใช้งานระบบเราอยู่ในปัจจุบัน
15.2 แก้ไขไฟล์ attribute-map.xml
ที่ SP
เปิดไฟล์ attribute-map.xml จากโฟลเดอร์ c:\sso\shibboleth-sp\etc\shibboleth ขึ้นมาแก้ไขดังนี้
เปิดคอมเมนต์ด้านล่างบริเวณ
LDAP-based attributes ออกให้หมด
แล้วบันทึกไฟล์ attribute-map.xml ไว้
15.3 แก้ไขไฟล์ attribute-resolver.xml
ที่ IdP
เปิดไฟล์ attribute-resolver.xml จากโฟลเดอร์ c:\sso\shibboleth-idp\conf ขึ้นมาแก้ไขดังนี้
เปิดคอมเมนต์ XML ของบริเวณที่เขียนว่า Core schema
attributes ออกให้หมด
เปิดคอมเมนต์ที่บริเวณ inetOrgPerson attributes ออกมาให้หมดด้วย
ให้เปิดคอมเมนต์ที่ <resolver:DataConnector id=”myLDAP” ... > และแก้ไขให้ค่าคอนฟิกตรงกับระบบ LDAP ของเราคือ ldapURL=”ldap://127.0.0.1:10389”
baseDN=”ou=users,ou=system” principal=”uid=admin,ou=system”
principalCredential=”secret”
บันทึกไฟล์ attribute-resolver.xml ไว้
แล้วดำเนินการที่ขั้นต่อไป
15.4 แก้ไขไฟล์ attribute-filter.xml
ที่ IdP
เปิดไฟล์ attribute-filter.xml จากโฟลเดอร์ c:\sso\shibboleth-idp\conf
ขึ้นมาแก้ไขดังนี้
บันทึกไฟล์ attribute-filter.xml ไว้แล้วดำเนินการที่ขั้นต่อไป
15.5 ทดสอบการส่งค่าแอททริบิวท์จาก IdP
มาที่ SP
ให้รีสตาทร์ Shibboleth 2.0 Daemon, Apache Web Server และ Tomcat
ใหม่อีกครั้ง และเบราซ์ไปที่ http://127.0.0.1/secure เมื่อล็อกอินเข้าระบบแล้ว ให้เบราซ์ต่อไปที่ http://127.0.0.1/secure/shibenv.php
จะได้ผลลัพธ์ดังนี้
ซึ่งโปรแกรมเมอร์ที่เขียนโปรแกรม
PHP สามารถตรวจสอบผู้ใช้ว่าเป็นใครได้โดยเขียนโปรแกรม
$user
= $_SERVER[‘cn’]
15.6 ทดสอบเปิดมากกว่า 1 เซสชัน
ให้ทดสอบโดยเปิดโปรแกรม iexplore มากกว่า 1 เซสชันโดยรันคำสั่ง
iexplore –new “http://127.0.0.1/secure” แล้วล็อกอินเข้าเป็น
user1 และ user2 ตามลำดับ
เมื่อลองตรวจสอบค่าใน $_SERVER จะพบว่า cn และ sn จะถูกแยกกันไปตามแต่ละเซสชันของผู้ใช้อย่างถูกต้อง
ความคิดเห็น
แสดงความคิดเห็น