1.4. 장애 조치 영역 생성
1.4.1. Elytron의 장애 조치 영역 링크 복사링크가 클립보드에 복사되었습니다!
하나의 보안 영역이 실패하는 경우 Elytron에서는 다른 하나를 백업으로 사용하도록 Elytron에서 두 개의 기존 보안 영역을 참조하는 장애 조치( failover) 보안 영역인 페일오버-realm 을 구성할 수 있습니다.
Elytron의 페일오버 는 다음 두 가지 보안 영역을 참조합니다.
-
delegate-realm: 사용할 기본 보안 영역입니다. -
failover-realm: 백업으로 사용할 보안 영역입니다.
페일오버-realm 구성 예
/subsystem=elytron/failover-realm=exampleSecurityRealm:add(delegate-realm=exampleLDAPRealm,failover-realm=exampleFileSystemRealm)
예제에서 ldap-realm 인 LDAPRealm 은 delegate realm 및 exampleFileSystemRealm 으로 사용됩니다. 이 방법은 filesystem-realm 인 failover-realm 으로 사용됩니다. ldap-realm 이 실패하는 경우 Elytron은 인증 및 권한 부여를 위해 filesystem-realm 을 사용합니다.
페일오버-realm 에서는 delegate -realm이 호출됩니다. -realm 이 실패하는 경우에만 페일오버delegate 영역은 호출되지 않습니다. 여러 보안 영역에서 ID를 검색하려면 -realm 에 대한 연결이 성공하지만 필요한 ID를 찾을 수 없는 경우 장애 조치distributed-realm 을 사용합니다.
1.4.2. 장애 조치 영역에 필요한 보안 영역을 생성하는 예 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 ldap-realm 및 filesystem-realm 생성을 보여줍니다. 이러한 보안 영역은 페일오버-realm 에서 참조할 수 있습니다.
1.4.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 관리자 암호:
secretElytron은 LDAP 서버와 연결하려면 이 작업이 필요합니다.
-
LDAP 관리자 고유 이름(DN):
(cn=admin,dc=wildfly,dc=org) LDAP 조직:
wildfly조직 이름을 지정하지 않으면 기본값은
Example Inc입니다.LDAP 도메인:
wildfly.org이는 플랫폼에 LDAP 검색 참조가 수신될 때 일치하는 이름입니다.
사전 요구 사항
- LDAP ID 저장소를 구성했습니다.
- JBoss EAP가 실행 중입니다.
프로세스
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"}디렉터리 컨텍스트를 참조하는 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.4.2.2. Ely tron에서 파일 시스템 생성 예 링크 복사링크가 클립보드에 복사되었습니다!
파일 시스템 기반 ID 저장소에서 지원하는 Elytron 보안 영역을 생성하여 JBoss EAP 서버 인터페이스 또는 서버에 배포된 애플리케이션을 보호합니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
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"}사용자를 영역에 추가하고 사용자 역할을 구성합니다.
사용자를 추가합니다.
구문
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity(identity=<user_name>)예제
/subsystem=elytron/filesystem-realm=exampleFileSystemRealm:add-identity(identity=user1) {"outcome" => "success"}사용자의 암호를 설정합니다.
구문
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:set-password(identity=<user_name>, clear={password=<password>})예제
/subsystem=elytron/filesystem-realm=exampleFileSystemRealm:set-password(identity=user1, clear={password="passwordUser1"}) {"outcome" => "success"}사용자의 역할을 설정합니다.
구문
/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=user1, name=Roles, value=["Admin","Guest"]) {"outcome" => "success"}
이제 이 영역을 사용하여 보안 도메인을 생성하거나 페일오버-realm , 의 다른 영역과 결합할 수 있습니다.
distributed-realm 또는 aggregate-realm
1.4.3. Elytron에서 장애 조치(failover) 만들기 링크 복사링크가 클립보드에 복사되었습니다!
기존 보안 영역을 위임 영역, 사용할 기본 영역 및 페일오버 영역으로 참조하는 Elytron에 장애 조치(failover) 보안 영역을 만듭니다. Elytron은 위임 영역이 실패하는 경우 구성된 장애 조치 영역을 사용합니다. 보안 영역을 사용하여 관리 인터페이스 또는 서버에 배포된 애플리케이션에 인증 및 권한 부여를 추가하는 보안 도메인을 생성합니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
- 위임 및 페일오버 영역으로 사용할 영역을 생성했습니다.
프로세스
기존 보안 영역에서
페일오버-realm을 만듭니다.구문
/subsystem=elytron/failover-realm=<failover_realm_name>:add(delegate-realm=<realm_to_use_by_default>,failover-realm=<realm_to_use_as_backup>)예제
/subsystem=elytron/failover-realm=exampleSecurityRealm:add(delegate-realm=exampleLDAPRealm,failover-realm=exampleFileSystemRealm) {"outcome" => "success"}특성을 역할에 매핑하는 역할 디코더를 생성합니다.
구문
/subsystem=elytron/simple-role-decoder=<role_decoder_name>:add(attribute=<attribute>)예제
/subsystem=elytron/simple-role-decoder=from-roles-attribute:add(attribute=Roles) {"outcome" => "success"}failover-realm및 역할 디코더를 참조하는 보안 도메인을 생성합니다.구문
/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<failover_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<failover_realm_name>,role-decoder="<role_decoder_name>"}])예제
/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm,role-decoder="from-roles-attribute"}]) {"outcome" => "success"}
이제 생성된 보안 도메인을 사용하여 관리 인터페이스 및 애플리케이션에 인증 및 권한 부여를 추가할 수 있습니다. 자세한 내용은 관리 인터페이스 및 애플리케이션 보안을 참조하십시오.