1.3. 분산 영역 생성


1.3.1. Elytron의 분산 영역

분산 영역을 사용하면 기존 보안 영역을 참조하여 다양한 ID 저장소에서 검색할 수 있습니다. 가져온 ID는 인증 및 권한 부여 모두에 사용됩니다. Elytron은 분산 영역의 보안 영역을 distributed-realm 리소스에서 정의하는 순서대로 호출합니다.

분산-realm 구성의

/subsystem=elytron/distributed-realm=exampleSecurityRealm:add(realms=[exampleLDAPRealm,exampleFilesystemRealm])

이 예제에서 구성된 distributed-realm 은 두 개의 기존 보안 영역인 "exampleLDAPRealm", LDAP 영역인 "exampleFilesystemRealm"과 파일 시스템 영역인 "exampleFilesystemRealm"을 참조합니다. Elytron은 참조된 보안 영역을 다음과 같이 순차적으로 검색합니다.

  • Elytron은 먼저 LDAP 영역에서 일치하는 ID를 검색합니다.
  • Elytron이 일치하는 항목을 찾으면 인증이 성공합니다.
  • Elytron이 일치하는 항목을 찾지 못하면 파일 시스템 영역을 검색합니다.

기본적으로 ID 저장소와 일치하기 전에 ID 저장소에 대한 연결이 실패하면 예외 Cryostat UnavailableException 과 함께 인증이 실패하고 더 이상 영역을 검색하지 않습니다. ignore-unavailable-realms 속성을 true 로 설정하여 이 동작을 변경할 수 있습니다. ignore-unavailable-realmstrue 로 설정된 경우 ID 저장소에 대한 연결이 실패하면 Elytron은 나머지 영역을 계속 검색합니다.

ignore-unavailable-realmstrue 로 설정된 경우emit-events 는 기본적으로 true 로 설정되므로 쿼리된 영역을 사용할 수 없는 경우 SecurityEvent 가 생성됩니다. emit-eventsfalse 로 설정하여 이 기능을 끌 수 있습니다.

1.3.2. 분산 영역에 필요한 보안 영역을 생성하는 예

다음 예제에서는 ldap-realmfilesystem-realm 생성을 보여줍니다. 이러한 보안 영역은 분산-현실 에서 참조할 수 있습니다.

1.3.2.1. Elytron 예제에서 ldap-realm 생성

LDAP(Lightweight Directory Access Protocol) ID 저장소에서 지원하는 Elytron 보안 영역을 생성하여 JBoss EAP 서버 인터페이스 또는 서버에 배포된 애플리케이션을 보호합니다.

이 절차의 예에서는 다음 LDAP Data Interchange Format(LDIF)이 사용됩니다.

dn: ou=Users,dc=wildfly,dc=org
objectClass: organizationalUnit
objectClass: top
ou: Users

dn: uid=user1,ou=Users,dc=wildfly,dc=org
objectClass: top
objectClass: person
objectClass: inetOrgPerson
cn: user1
sn: user1
uid: user1
userPassword: userPassword1

dn: ou=Roles,dc=wildfly,dc=org
objectclass: top
objectclass: organizationalUnit
ou: Roles

dn: cn=Admin,ou=Roles,dc=wildfly,dc=org
objectClass: top
objectClass: groupOfNames
cn: Admin
member: uid=user1,ou=Users,dc=wildfly,dc=org

예제에 사용되는 LDAP 연결 매개변수는 다음과 같습니다.

  • LDAP URL: ldap://10.88.0.2
  • LDAP 관리자 암호: secret

    Elytron은 LDAP 서버와 연결하려면 이 작업이 필요합니다.

  • LDAP 관리자 고유 이름(DN): (cn=admin,dc=wildfly,dc=org)
  • LDAP 조직: wildfly

    조직 이름을 지정하지 않으면 기본값은 Example Inc 입니다.

  • LDAP 도메인: wildfly.org

    이는 플랫폼에 LDAP 검색 참조가 수신될 때 일치하는 이름입니다.

사전 요구 사항

  • LDAP ID 저장소를 구성했습니다.
  • JBoss EAP가 실행 중입니다.

프로세스

  1. LDAP 서버에 연결하는 데 사용되는 URL과 주체를 제공하는 디렉터리 컨텍스트를 구성합니다.

    /subsystem=elytron/dir-context=<dir_context_name>:add(url="<LDAP_URL>",principal="<principal_distinguished_name>",credential-reference=<credential_reference>)

    예제

    /subsystem=elytron/dir-context=exampleDirContext:add(url="ldap://10.88.0.2",principal="cn=admin,dc=wildfly,dc=org",credential-reference={clear-text="secret"})
    {"outcome" => "success"}

  2. 디렉터리 컨텍스트를 참조하는 LDAP 영역을 생성합니다. Search Base DN과 사용자 매핑 방법을 지정합니다.

    구문

    /subsystem=elytron/ldap-realm=<ldap_realm_name>add:(dir-context=<dir_context_name>,identity-mapping=search-base-dn="ou=<organization_unit>,dc=<domain_component>",rdn-identifier="<relative_distinguished_name_identifier>",user-password-mapper={from=<password_attribute_name>},attribute-mapping=[{filter-base-dn="ou=<organization_unit>,dc=<domain_component>",filter="<ldap_filter>",from="<ldap_attribute_name>",to="<identity_attribute_name>"}]})

    예제

    /subsystem=elytron/ldap-realm=exampleLDAPRealm:add(dir-context=exampleDirContext,identity-mapping={search-base-dn="ou=Users,dc=wildfly,dc=org",rdn-identifier="uid",user-password-mapper={from="userPassword"},attribute-mapping=[{filter-base-dn="ou=Roles,dc=wildfly,dc=org",filter="(&(objectClass=groupOfNames)(member={1}))",from="cn",to="Roles"}]})
    {"outcome" => "success"}

이제 이 영역을 사용하여 보안 도메인을 생성하거나 페일오버-realm ,distributed-realm 또는 aggregate-realm 의 다른 영역과 결합할 수 있습니다. ldap -realm 에 대해 캐싱-realm 을 구성하여 조회 결과를 캐시하고 성능을 향상시킬 수도 있습니다.

1.3.2.2. Ely tron에서 파일 시스템 생성 예

파일 시스템 기반 ID 저장소에서 지원하는 Elytron 보안 영역을 생성하여 JBoss EAP 서버 인터페이스 또는 서버에 배포된 애플리케이션을 보호합니다.

사전 요구 사항

  • JBoss EAP가 실행 중입니다.

프로세스

  1. Elytron에서 filesystem-realm 을 만듭니다.

    구문

    /subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add(path=<file_path>)

    예제

    /subsystem=elytron/filesystem-realm=exampleFileSystemRealm:add(path=fs-realm-users,relative-to=jboss.server.config.dir)
    {"outcome" => "success"}

  2. 사용자를 영역에 추가하고 사용자 역할을 구성합니다.

    1. 사용자를 추가합니다.

      구문

      /subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity(identity=<user_name>)

      예제

      /subsystem=elytron/filesystem-realm=exampleFileSystemRealm:add-identity(identity=user2)
      {"outcome" => "success"}

    2. 사용자의 암호를 설정합니다.

      구문

      /subsystem=elytron/filesystem-realm=<filesystem_realm_name>:set-password(identity=<user_name>, clear={password=<password>})

      예제

      /subsystem=elytron/filesystem-realm=exampleFileSystemRealm:set-password(identity=user2, clear={password="passwordUser2"})
      {"outcome" => "success"}

    3. 사용자의 역할을 설정합니다.

      구문

      /subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity-attribute(identity=<user_name>, name=<roles_attribute_name>, value=[<role_1>,<role_N>])

      예제

      /subsystem=elytron/filesystem-realm=exampleFileSystemRealm:add-identity-attribute(identity=user2, name=Roles, value=["Admin","Guest"])
      {"outcome" => "success"}

이제 이 영역을 사용하여 보안 도메인을 생성하거나 페일오버-realm ,distributed-realm 또는 aggregate-realm 의 다른 영역과 결합할 수 있습니다.

1.3.3. Elytron에서 분산- 현지 생성

ID를 검색할 기존 보안 영역을 참조하는 Elytron에 분산-realm 을 만듭니다. distributed-realm 을 사용하여 관리 인터페이스 또는 서버에 배포된 애플리케이션에 인증 및 권한 부여를 추가하는 보안 도메인을 생성합니다.

사전 요구 사항

  • JBoss EAP가 실행 중입니다.
  • distributed-realm 에서 참조할 영역을 생성했습니다.

프로세스

  1. 기존 보안 영역을 참조하는 distributed-realm 을 생성합니다.

    구문

    /subsystem=elytron/distributed-realm=<distributed_realm_name>:add(realms=[<security_realm_1>, <security_realm_2>, ..., <security_realm_N>])

    예제

    /subsystem=elytron/distributed-realm=exampleSecurityRealm:add(realms=[exampleLDAPRealm, exampleFileSystemRealm])
    {"outcome" => "success"}

  2. 특성을 역할에 매핑하는 역할 디코더를 생성합니다.

    구문

    /subsystem=elytron/simple-role-decoder=<role_decoder_name>:add(attribute=<attribute>)

    예제

    /subsystem=elytron/simple-role-decoder=from-roles-attribute:add(attribute=Roles)
    {"outcome" => "success"}

  3. distributed-realm 및 역할 디코더를 참조하는 보안 도메인을 생성합니다.

    구문

    /subsystem=elytron/security-domain=<security_domain_name>:add(realms=[{realm=<distributed_realm_name>,role-decoder=<role_decoder_name>}],default-realm=<ldap_realm_name>,permission-mapper=<permission_mapper>)

    예제

    /subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm,role-decoder="from-roles-attribute"}])
    {"outcome" => "success"}

이제 생성된 보안 도메인을 사용하여 관리 인터페이스 및 애플리케이션에 인증 및 권한 부여를 추가할 수 있습니다. 자세한 내용은 관리 인터페이스 및 애플리케이션 보안을 참조하십시오.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동