การรวม LDAP

บทความนี้ประกอบด้วยตัวอย่างการกําหนดค่าบางส่วนสําหรับการใช้ LDAP สําหรับการรับรองความถูกต้องด้วย ONEWEB 4.0 ลองกําหนดค่าขั้นตอนนี้

ตั้งค่าการเชื่อมต่อ LDAP

ข้อมูลพื้นฐานจากการเชื่อมต่อจะถูกกําหนดด้วยแอตทริบิวต์ต่อไปนี้

security-domain name: ชื่อแอตทริบิวต์สําหรับ ONEWEB 4.0 คงที่เป็นการอ้างอิง "LDAPAuthLocal" จาก jboss-web.xml url: URL ของเซิร์ฟเวอร์ LDAP ที่จะเชื่อมต่อ ตัวอย่าง "ldap://[ที่อยู่ IP ของเซิร์ฟเวอร์]:[พอร์ต]" bindDN: ชื่อจําเพาะที่จะใช้เมื่อสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ เมื่อใช้ bindDN มักจะมาพร้อมกับรหัสผ่านที่เกี่ยวข้อง bindCredential: รหัสผ่านที่จําเป็นสําหรับชื่อ bindDN ที่ระบุเพื่อสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ baseCtxDN: จุดเริ่มต้นที่จะเริ่มค้นหา baseFilter: ตัวกรองการค้นหาที่ใช้เพื่อค้นหาบริบทของผู้ใช้ในการตรวจสอบสิทธิ์ ชื่อผู้ใช้/userDN ที่ป้อนตามที่ได้รับจากการเรียกกลับโมดูลการเข้าสู่ระบบจะถูกแทนที่ลงในตัวกรองทุกที่ที่เห็นนิพจน์{0} ลักษณะการทํางานการแทนที่นี้มาจากวิธีการมาตรฐาน DirContext.search(Name, String, Object[], SearchControls cons) ตัวอย่างทั่วไปสําหรับตัวกรองการค้นหาคือ (uid={0}) rolesCtxDN: ตัวกรองการค้นหาที่ใช้เพื่อค้นหาบทบาทที่เกี่ยวข้องกับผู้ใช้ที่ได้รับการรับรองความถูกต้อง roleAttributeID: ชื่อของแอตทริบิวต์บทบาทของบริบทที่สอดคล้องกับชื่อของบทบาท searchScope: ใช้ขอบเขตเริ่มต้นคือ SUBTREE_SCOPE

สําหรับ Wildfly กําหนดค่า "stanalone.xml" tag "<profile>" sub tag "<subsystem>" <security-domains> ให้ลองแทรก ดูตัวอย่างด้านล่าง

<security-domain name="LDAPAuthLocal" cache-type="default">
        <authentication>
               <login-module code="Remoting" flag="optional">
                       <module-option name="password-stacking" value="useFirstPass"/>
               </login-module>
               <login-module code="LdapExtended" flag="required">
                       <module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
                       <module-option name="java.naming.provider.url" value="ldap://[IP Address]:[Port]"/>
                       <module-option name="java.naming.security.authentication" value="simple"/>
                       <module-option name="bindDN" value="CN=SystemAdmin,OU=People,dc=example,dc=com"/>
                       <module-option name="bindCredential" value="secret"/>
                       <module-option name="baseCtxDN" value="OU=Roles,dc=example,dc=com"/>
                       <module-option name="baseFilter" value="(sAMAccountName={0})"/>
                       <module-option name="rolesCtxDN" value="OU=People,dc=example,dc=com"/>
                       <module-option name="roleFilter" value="(member={1})"/>
                       <module-option name="roleAttributeID" value="sAMAccountName"/>
                       <module-option name="roleAttributeIsDN" value="true"/>
                       <module-option name="roleRecursion" value="1"/>
                       <module-option name="defaultRole" value="AllUser"/>
                       <module-option name="searchScope" value="SUBTREE_SCOPE"/>
                       <module-option name="allowEmptyPasswords" value="false"/>
                       <module-option name="throwValidateError" value="true"/>
               </login-module>
        </authentication>
</security-domain>

ระบุโดเมนความปลอดภัย JBoss ในไฟล์ jboss-web.xml ให้ระบุโดเมนความปลอดภัยที่จําเป็น ดูตัวอย่างด้านล่าง

<jboss-web>
    <security-domain>java:/jaas/LDAPAuthLocal</security-domain>
</jboss-web>

Last updated