simplesamplephp sp + idp ปัญหาการตั้งค่า

ฉันกำลังใช้งานอินสแตนซ์ simplesamplephp สองอินสแตนซ์ (อันหนึ่งสำหรับ SP และอีกอันสำหรับ IdP) และเล่นกับ SSO IdP ของฉันใช้ openLDAP เพื่อการอนุญาต

ฉันเริ่มต้นจากโค้ด php ต่อไปนี้โดยใส่ไว้ในไฟล์ example.php ใส่ไฟล์ example.php ใน apache httpd และเข้าชมจากเบราว์เซอร์:

$as = new SimpleSAML_Auth_Simple('example-sp');
$as->requireAuth();
$attr = $as->getAttributes();
print ………..

ดูเหมือนว่าคำขอการรับรองความถูกต้องสามารถส่งจาก sp ถึง Idp และนี่คือบันทึก sp:

Jul 06 19:56:06 simplesamlphp DEBUG [a08a5cff76] Session: 'example-sp' not valid because we are not authenticated.
Jul 06 19:56:06 simplesamlphp DEBUG [a08a5cff76] Saved state: '_04c9e1a8c58932ab2d79c179a90d4e9c88e9c693f3'
Jul 06 19:56:06 simplesamlphp DEBUG [a08a5cff76] Sending SAML 2 AuthnRequest to 'https://idp.example.com/simplesaml/saml2/idp/metadata.php'
Jul 06 19:56:06 simplesamlphp DEBUG [a08a5cff76] Sending message:
Jul 06 19:56:06 simplesamlphp DEBUG [a08a5cff76] <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="_04c9e1a8c58932ab2d79c179a90d4e9c88e9c693f3" Version="2.0" IssueInstant="2013-07-06T19:56:06Z" Destination="https://idp.example.com/simplesaml/saml2/idp/SSOService.php" AssertionConsumerServiceURL="https://sp.example.com/simplesaml/module.php/saml/sp/saml2-acs.php/example-sp" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST">
Jul 06 19:56:06 simplesamlphp DEBUG [a08a5cff76]   <saml:Issuer>example-sp-host</saml:Issuer>
Jul 06 19:56:06 simplesamlphp DEBUG [a08a5cff76]   <samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" AllowCreate="true"/>
Jul 06 19:56:06 simplesamlphp DEBUG [a08a5cff76] </samlp:AuthnRequest>

จากนั้นในบันทึก Idp ฉันเห็นสิ่งต่อไปนี้ (ปรากฏว่า IdP สามารถรับคำขอได้):

Jul 06 19:56:06 simplesamlphp INFO [37f32bab7b] SAML2.0 - IdP.SSOService: Accessing SAML 2.0 IdP endpoint SSOService
Jul 06 19:56:06 simplesamlphp DEBUG [37f32bab7b] Received message:
Jul 06 19:56:06 simplesamlphp DEBUG [37f32bab7b] <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="_04c9e1a8c58932ab2d79c179a90d4e9c88e9c693f3" Version="2.0" IssueInstant="2013-07-06T19:56:06Z" Destination="https://idp.example.com/simplesaml/saml2/idp/SSOService.php" AssertionConsumerServiceURL="https://sp.example.com/simplesaml/module.php/saml/sp/saml2-acs.php/example-sp" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST">
Jul 06 19:56:06 simplesamlphp DEBUG [37f32bab7b]   <saml:Issuer>example-sp-host</saml:Issuer>
Jul 06 19:56:06 simplesamlphp DEBUG [37f32bab7b]   <samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" AllowCreate="true"/>
Jul 06 19:56:06 simplesamlphp DEBUG [37f32bab7b] </samlp:AuthnRequest>

จากนั้นในบันทึก sp ฉันเห็นสิ่งต่อไปนี้:

Jul 06 19:56:06 simplesamlphp DEBUG [a08a5cff76] Redirect to 636 byte URL: https://idp.example.com/simplesaml/saml2/idp/SSOService.php?SAMLRequest=fVLfb4IwEP5XSN8RRKfQAInTLDNxk4jbw16WWs7RBFrWK%2Fvx36%2BAi%2B5hJs1dcnff912%2FNkZWVw1dtKaUO3hvAY3zVVcSad9ISKslVQwFUslqQGo4zRcPGxqMfNpoZRRXFbmAXEcwRNBGKEmc9Sohr%2F6URzBmIb8Jo0nADkExj%2Fh4HrHIL6YQ8TC0YRZNjhPiPINGi0yIJbJwxBbWEg2Txpb88cT15%2FbsfZ%2BOZzQIX4izsrcRkpkeVRrTIPU8UTQjKHWp0Iy4qj0UdVNBt7rXhaAb8PJ8m4P%2BEBxGTdkQZ%2FG791JJbGvQp%2B7TbnNmxn%2BJa1W0VU%2FlDUJDDlzGsa%2BecC5arezk6q2QhZBv1w09DENI7%2Ff7zM22%2BZ6kccdNe4N0emZ2uxx7l814eP1HS7teZaoS%2FNu5U7pm5rpqVxGFe%2BxHqdFMogBprE9VpT6XGpiBhBjdAvHSQfLvH0t%2FAA%3D%3D&RelayState=https%3A%2F%2Fsp.example.com%2Fexample.php 

แต่ในเบราว์เซอร์ของฉัน ฉันได้รับข้อผิดพลาดดังต่อไปนี้:

The website encountered an error while retrieving https://idp.example.com/simplesaml/saml2/idp/SSOService.php?SAMLRequest=fVLfb4IwEP5XSN8RRKfQAInTLDNxk4jbw16WWs7RBFrWK%2Fvx36%2BAi%2B5hJs1dcnff912%2FNkZWVw1dtKaUO3hvAY3zVVcSad9ISKslVQwFUslqQGo4zRcPGxqMfNpoZRRXFbmAXEcwRNBGKEmc9Sohr%2F6URzBmIb8Jo0nADkExj%2Fh4HrHIL6YQ8TC0YRZNjhPiPINGi0yIJbJwxBbWEg2Txpb88cT15%2FbsfZ%2BOZzQIX4izsrcRkpkeVRrTIPU8UTQjKHWp0Iy4qj0UdVNBt7rXhaAb8PJ8m4P%2BEBxGTdkQZ%2FG791JJbGvQp%2B7TbnNmxn%2BJa1W0VU%2FlDUJDDlzGsa%2BecC5arezk6q2QhZBv1w09DENI7%2Ff7zM22%2BZ6kccdNe4N0emZ2uxx7l814eP1HS7teZaoS%2FNu5U7pm5rpqVxGFe%2BxHqdFMogBprE9VpT6XGpiBhBjdAvHSQfLvH0t%2FAA%3D%3D&RelayState=https%3A%2F%2Fsp.example.com%2Fexample.php. It may be down for maintenance or configured incorrectly.

หมายเหตุ 1 - ฉันไม่แน่ใจว่าทำไมในบันทึก sp จึงระบุว่า "เซสชัน: 'example-sp' ไม่ถูกต้องเนื่องจากเราไม่ได้รับการรับรองความถูกต้อง" บางที ณ จุดนั้นบริบทด้านความปลอดภัยยังไม่ได้รับการจัดตั้งขึ้นและนั่นคือเหตุผลว่าทำไมเราจึงต้องดำเนินการ $as->requireAuth() เพื่อ?

หมายเหตุ 2 - ข้อผิดพลาดในเบราว์เซอร์บ่งชี้อะไร หมายความว่าฉันต้องตั้งค่าไฟล์ html หรือแบบฟอร์มเพิ่มเติมเพื่อป้อนชื่อผู้ใช้ / รหัสผ่านสำหรับการตรวจสอบความถูกต้องของ LDAP หรือไม่ มีเบาะแสใด ๆ เกี่ยวกับวิธีการตั้งค่าต่าง ๆ ?

หมายเหตุ 3 - ฉันติดตามการเปลี่ยนแปลงการกำหนดค่าส่วนใหญ่ตามคำแนะนำ simplesamlphp SP และ IdP ยกเว้นว่าฉันไม่ได้เปลี่ยนค่า 'certFingerprint' นั่นอาจจะเป็นประเด็นหรือเปล่า? ฉันมีสำเนา SSL ที่ลงนามของ goDaddy.com สำหรับ IdP และ SP ของฉัน - ฉันควรใช้มันหรือไม่

จริงๆ แล้วฉันคาดว่า SSOService.php จะนำ sp ไปที่ loginuserpass.php แต่ไม่แน่ใจว่าทำไมถึงไม่เป็นเช่นนั้น ฉันคิดว่าฉันอาจพลาดการตั้งค่าที่ไหนสักแห่ง แต่ไม่แน่ใจว่าอยู่ที่ไหน...

ขอบคุณ!


person Eric H.    schedule 07.07.2013    source แหล่งที่มา


คำตอบ (1)


ดูเหมือนว่าฉันพิมพ์ผิดในไฟล์การกำหนดค่า saml20-sp-remote.php ที่เป็นสาเหตุของปัญหานี้ เมื่อแก้ไขแล้ว ฉันจะถูกนำไปที่หน้าจอเข้าสู่ระบบ Idp ตอนนี้ก็แค่ต้องไปต่อ!

person Eric H.    schedule 07.07.2013