8.4. OSGi 컨테이너에서 LDAP 인증 활성화


이 섹션에서는 OSGi 컨테이너에서 LDAP 영역을 구성하는 방법을 설명합니다. 컨테이너가 X.500 디렉터리 서버에 저장된 사용자 항목을 기반으로 인증 정보를 인증하도록 새 영역은 기본 karaf 영역을 재정의합니다.

8.4.1. 참고 자료

다음과 같이 LDAP 인증에 대한 자세한 문서는 다음과 같습니다.

8.4.2. 독립 실행형 OSGi 컨테이너 절차

독립 실행형 OSGi 컨테이너에서 LDAP 인증을 활성화하려면 다음을 수행합니다.

  1. X.500 디렉터리 서버가 실행 중인지 확인합니다.
  2. 터미널 창에 다음 명령을 입력하여 Karaf 컨테이너를 시작합니다.

    ./bin/fuse
  3. ldap-module.xml 이라는 파일을 생성합니다.
  4. 예 8.1. “독립 실행형용 JAAS Cryostat”ldap-module.xml 에 복사합니다.

    예 8.1. 독립 실행형용 JAAS Cryostat

    <?xml version="2.0" encoding="UTF-8"?>
    <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
      xmlns:jaas="http://karaf.apache.org/xmlns/jaas/v1.0.0"
      xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0">
    
      <jaas:config name="karaf" rank="200">
        <jaas:module className="org.apache.karaf.jaas.modules.ldap.LDAPLoginModule"
                     flags="required">
          initialContextFactory=com.sun.jndi.ldap.LdapCtxFactory
          connection.url=ldap://localhost:389
          connection.username=cn=Directory Manager
          connection.password=DIRECTORY_MANAGER_PASSWORD
          connection.protocol=
          user.base.dn=ou=People,dc=localdomain
          user.filter=(&amp;(objectClass=inetOrgPerson)(uid=%u))
          user.search.subtree=true
          role.base.dn=ou=Groups,dc=localdomain
          role.name.attribute=cn
          role.filter=(uniquemember=%fqdn)
          role.search.subtree=true
          authentication=simple
        </jaas:module>
      </jaas:config>
    </blueprint>

    ldap-module.xml 파일에서 다음 설정을 사용자 지정해야 합니다.

    connection.url
    이 URL을 디렉터리 서버 인스턴스의 실제 위치로 설정합니다. 일반적으로 이 URL의 형식은 ldap://Hostname:포트 입니다. 예를 들어 389 Directory Server의 기본 포트는 IP 포트 389 입니다.
    connection.username
    디렉터리 서버에 대한 연결을 인증하는 데 사용되는 사용자 이름을 지정합니다. 389 Directory Server의 경우 기본값은 일반적으로 cn=Directory Manager 입니다.
    connection.password
    디렉터리 서버에 연결하기 위한 자격 증명의 암호 부분을 지정합니다.
    인증

    인증 프로토콜에 대해 다음 대안 중 하나를 지정할 수 있습니다.

    • 간단히 말해 사용자 인증 정보가 제공되며 이 경우 connection.usernameconnection.password 옵션을 설정해야 합니다.
    • none 은 인증이 수행되지 않음을 나타냅니다. 이 경우 connection.usernameconnection.password 옵션을 설정하지 않아야 합니다.

      이 로그인 모듈은 karaf 라는 JAAS 영역을 생성합니다. 이 영역은 Fuse에서 사용하는 기본 JAAS 영역과 동일한 이름입니다. 순위 속성 값이 0 보다 큰 이 영역을 재정의하면 순위가 0 인 표준 karaf 영역을 재정의합니다.

      LDAP를 사용하도록 Fuse를 구성하는 방법에 대한 자세한 내용은 2.1.7절. “JAAS LDAP 로그인 모듈” 을 참조하십시오.

      중요

      위의 JAAS 속성을 설정할 때 속성 값을 큰따옴표로 묶 지 마십시오.

  5. 새 LDAP 모듈을 배포하려면 ldap-module.xml 을 Karaf 컨테이너의 deploy/ 디렉터리(hot deploy)에 복사합니다.

    LDAP 모듈이 자동으로 활성화됩니다.

    참고

    이후 LDAP 모듈 배포를 취소해야 하는 경우 Karaf 컨테이너가 실행되는 동안 deploy/ 디렉토리에서 ldap-module.xml 파일을 삭제하여 이를 수행할 수 있습니다.

8.4.3. LDAP 인증 테스트

다음과 같이 Karaf 클라이언트 유틸리티를 사용하여 실행 중인 컨테이너에 연결하여 새 LDAP 영역을 테스트합니다.

  1. 새 명령 프롬프트를 엽니다.
  2. 디렉토리를 Karaf InstallDir/bin 디렉토리로 변경합니다.
  3. identity jdoe 를 사용하여 실행 중인 컨테이너 인스턴스에 로그인하려면 다음 명령을 입력합니다.

    ./client -u jdoe -p secret

    컨테이너의 원격 콘솔에 성공적으로 로그인해야 합니다. 명령 콘솔에서 jaas: 다음에 [Tab] 키를 입력합니다.

    jdoe@root()> jaas:
    Display all 31 possibilities? (31 lines)?
    jaas:cancel
    jaas:group-add
    ...
    jaas:whoami

    jdoe 는 모든 jaas 명령에 액세스할 수 있습니다( 관리자 역할과 일치).

  4. logout 명령을 입력하여 원격 콘솔을 로그아웃합니다.
  5. identity janedoe 를 사용하여 실행 중인 컨테이너 인스턴스에 로그인하려면 다음 명령을 입력합니다.

    ./client -u janedoe -p secret

    컨테이너의 원격 콘솔에 성공적으로 로그인해야 합니다. 명령 콘솔에서 jaas: 다음에 [Tab] 키를 입력합니다.

    janedoe@root()> jaas:
    Display all 25 possibilities? (25 lines)?
    jaas:cancel
    jaas:group-add
    ...
    jaas:users

    janedoe 는 거의 모든 jaas 명령에 액세스할 수 있습니다( manager 역할과 일치).

  6. logout 명령을 입력하여 원격 콘솔을 로그아웃합니다.
  7. identity crider 를 사용하여 실행 중인 컨테이너 인스턴스에 로그인하려면 다음 명령을 입력합니다.

    ./client -u crider -p secret

    컨테이너의 원격 콘솔에 성공적으로 로그인해야 합니다. 명령 콘솔에서 jaas: 다음에 [Tab] 키를 입력합니다.

    crider@root()> jaas:
    jaas:manage
    jaas:realm-list
    jaas:realm-manage
    jaas:realms
    jaas:user-list
    jaas:users

    마케터는 5개의 jaas 명령에만 액세스할 수 있습니다(예: 뷰어 역할과 일치).

  8. logout 명령을 입력하여 원격 콘솔을 로그아웃합니다.

8.4.4. 문제 해결

LDAP 연결을 테스트하는 동안 문제가 발생하면 DEBUG 에 로깅 수준을 늘리면 LDAP 서버 연결에서 발생하는 상황을 자세히 추적할 수 있습니다.

다음 단계를 수행합니다.

  1. Karaf 콘솔에서 다음 명령을 입력하여 로깅 수준을 DEBUG 로 늘립니다.

    log:set DEBUG
  2. Karaf 로그를 실시간으로 관찰합니다.

    log:tail

    로그 목록에서 이스케이프하려면 Ctrl-C를 입력합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.