Keycloak — เพิ่ม Identity Provider ให้สามารถ Authenticate ด้วย ADFS ผ่าน Protocol SAML 2
หลังจากติดตั้ง Keycloak และ ADFS เรียบร้อยแล้ว ทำการเชื่อมต่อระหว่าง Keycloak และ ADFS ตามขั้นตอน ต่อไปนี้
- โหลดไฟล์ Federation metadata จาก ADFS โดยสามารถตรวจสอบ Endpoint ได้จาก AD FS Management
https://adfs.lllife.dev/FederationMetadata/2007-06/FederationMetadata.xml
2. เพิ่ม Identity Provider
ใน Keycloak โดยเลือก Provider เป็น SAML 2
และ Import ไฟล์ในข้อ 1. ใน Section Import External IDP Configuration
แล้วกดปุ่ม Save
4. โหลดไฟล์ Endpoint descriptor ของ Keycloak โดยให้ดูจาก Callback URL ในข้อ 3. โดยเติม /decriptor
เข้าไปด้านหลัง
ตัวอย่าง
$ wget https://saml.lllife.dev/auth/realms/adfs/broker/adfs/endpoint/descriptor --output-document adfs-adfs.xml
5. เพิ่ม Relying Party Trusts ใน ADFS โดยเลือก Claims aware
6. ในขั้นตอน Select Data Source
ให้ Import ไฟล์ในข้อ 4. จากนั้นกด Next
7. ตั้งชื่อ Relaying Party ว่า Keycloak
8. เซ็ต Service control policy โดยเลือกเป็น Permit everyone กด Next
9. จะได้ Relying Party Trusts ชื่อ Keycloak ดังนี้
10. Implement โปรแกรมสำหรับเชื่อมต่อกับ Keycloak ผ่าน Protocol OpenID Connect เช่น ASP.NET App ในการ Login จะมีการ Redirect ไปยัง Keycloak และสามารถขอ Login ผ่าน ADFS ผ่านปุ่ม adfs
11. เมื่อ Login สำเร็จโปรแกรมจะ Redirect กลับไปยัง Web App อัตโนมัติ