130 likes | 336 Views
Overview. Active Directory Server 와 Apache 를 통한 SSO 구현 KLDP Conf. 장정철. Overview. LDAP Lightweight Directory Access Protocol Directory( 계층구조 ) 서비스를 조회하고 수정하는 프로토콜 Directory 는 논리 , 계층 방식 속에서 조직화된 , 비슷한 특성을 가진 객체들의 모임 전화번호부 – 가나다 순의 일련의 이름을 가지고 있고 , 이름마다 전화번호와 주소를 가진다
E N D
Overview Active Directory Server와 Apache를 통한 SSO 구현 KLDP Conf 장정철
Overview • LDAP • Lightweight Directory Access Protocol • Directory(계층구조) 서비스를 조회하고 수정하는 프로토콜 • Directory는 논리,계층 방식 속에서 조직화된, 비슷한 특성을 가진 객체들의 모임 • 전화번호부 – 가나다 순의 일련의 이름을 가지고있고, 이름마다 전화번호와 주소를 가진다 • 계층구조를 조회하고 수정할 수 있는 특성 때문에, LDAP 은인증을 위한 다른 서비스에 의해 자주 사용된다.
Overview • ADS • Active Directory Server • Domain Controller • MS에 의해 구현된 LDAP 기반의 Directory service • NTDS라고도 불렸었음 • 윈도우 기반의 컴퓨터들에서 중앙 집중의 권한과 인증 관리를 위해 사용된다.
Why SSO? • 관리의 편의성 • 사용자의 계정을 통합적으로 관리할 수 있다 • 사용자의 접근 권한을 그룹단위로 설정하여 편하게 관리 할 수 있다 • 통합의 용이성 • 새로운 서비스를 제공할 때 마다 계정을 일일이 생성해줄 필요가 없다. • 전혀 다른 서비스들도 하나의 통합 인증을 통해 접근할 수 있다. • Subversion • Trac • Dokuwiki • Samba
ADS auth with Apache • Requirement • Apache module • auth_basic • authnz_ldap • authz_default • Active Directory authentication <Location "/"> AuthBasicProvider ldap AuthType Basic AuthzLDAPAuthoritative off AuthName "My Subversion server" AuthLDAPURL "ldap://directory.example.com:389/DC=example,DC=com?sAMAccountName?sub?(objectClass=*)" NONE AuthLDAPBindDN "CN=apache,CN=Users,DC=example,DC=com" AuthLDAPBindPassword hackme require valid-user </Location>
Subversion • Requirement • dav • dav_svn <Location /svn/qoom-sr> DAV svn SVNPath /home/svn/qoom-sr AuthType Basic AuthName "Qoom Island Game Server Repository" AuthBasicProvider "ldap" AuthLDAPURL "ldap://dc.j-interactive.com:3268/DC=j-interactive,DC=com?sAMAccountName?sub?(objectClass=user)" AuthLDAPBindDN user@j-interactive.com AuthLDAPBindPassword "password" authzldapauthoritative Off require ldap-group CN=qoom-sr,OU=User,OU=J-Interactive,DC=j-interactive,DC=com </Location>
Trac • Requirement • mod_python <Location /qoom-sr> SetHandler mod_python PythonHandler trac.web.modpython_frontend PythonOption TracEnv /home/trac/qoom-sr PythonOption TracLocale "en_US.UTF8" PythonOption TracUriRoot /qoom-sr SetEnv PYTHON_EGG_CACHE /home/trac/qoom-sr AuthBasicProvider ldap AuthType Basic authzldapauthoritative Off AuthName "Qoom Island Game Server“ AuthLDAPURL "ldap://dc.j-interactive.com:3268/DC=j-interactive,DC=com?sAMAccountName?sub?(objectClass=*)" NONE AuthLDAPBindDN trac@j-interactive.com AuthLDAPBindPassword “password" require ldap-group CN=qoom-sr,OU=User,OU=J-Interactive,DC=j-interactive,DC=com require ldap-group CN=qoom-cl,OU=User,OU=J-Interactive,DC=j-interactive,DC=com </Location>
Dokuwiki • Requirement • php with ldap • ldap.conf.php <?php $conf['useacl'] = 1; $conf['openregister']= 0; $conf['authtype'] = 'ldap'; $conf['auth']['ldap']['server'] = 'j-interactive.com'; $conf['auth']['ldap']['binddn'] = '%{user}@%{server}'; $conf['auth']['ldap']['usertree'] = 'dc=j-interactive,dc=com'; $conf['auth']['ldap']['userfilter'] = '(userPrincipalName=%{user}@%{server})'; $conf['auth']['ldap']['mapping']['name'] = 'displayname'; $conf['auth']['ldap']['mapping']['grps'] = array('memberof' => '/CN=(.+?),/i'); $conf['auth']['ldap']['referrals'] = 0; # Switch referrals off for use with Active Directory $conf['auth']['ldap']['version'] = 3; ?>
Reference site • Link • http://www.jejik.com/articles/2007/06/apache_and_subversion_authentication_with_microsoft_active_directory/ • http://download.softerra.com/files/ldapbrowser26.msi