ID 저장소를 사용하여 애플리케이션 및 관리 인터페이스 보안
파일 시스템, 데이터베이스, LDAP(Lightweight Directory Access Protocol) 또는 사용자 정의 ID 저장소와 같은 ID 저장소를 사용하여 JBoss EAP 관리 인터페이스 및 배포된 애플리케이션을 보호하는 가이드
초록
JBoss EAP 문서에 대한 피드백 제공 링크 복사링크가 클립보드에 복사되었습니다!
오류를 보고하거나 문서를 개선하기 위해 Red Hat Jira 계정에 로그인하여 문제를 제출하십시오. Red Hat Jira 계정이 없는 경우 계정을 생성하라는 메시지가 표시됩니다.
프로세스
- 티켓을 생성하려면 다음 링크를 클릭하십시오.
- 요약 에 문제에 대한 간략한 설명을 입력합니다.
- 설명에서 문제 또는 개선 사항에 대한 자세한 설명을 제공합니다. 문서에서 문제가 발생한 위치에 URL을 포함합니다.
- Submit 을 클릭하고 문제를 적절한 문서 팀으로 라우팅합니다.
보다 포괄적 수용을 위한 오픈 소스 용어 교체 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
1장. ID 저장소 구성 링크 복사링크가 클립보드에 복사되었습니다!
1.1. 파일 시스템-realm생성 링크 복사링크가 클립보드에 복사되었습니다!
1.1.1. Elytron의 파일 시스템 영역 링크 복사링크가 클립보드에 복사되었습니다!
파일 시스템 보안 영역인 filesystem-realm 을 사용하면 Elytron에서 파일 시스템 기반 ID 저장소를 사용하여 사용자 자격 증명 및 속성을 저장할 수 있습니다. Elytron은 각 ID를 파일 시스템의 XML 파일에 관련 자격 증명 및 특성과 함께 저장합니다. XML 파일의 이름은 ID의 이름입니다. 각 ID와 인증 정보를 여러 개 연결할 수 있습니다.
기본적으로 ID는 다음과 같이 파일 시스템에 저장됩니다.
Elytron은 두 가지 수준의 디렉토리 해시를 ID가 저장되는 디렉터리 구조에 적용합니다. 예를 들어 "user1"이라는 ID는
u/s/user1.xml위치에 저장됩니다.이 작업은 단일 디렉터리에 저장할 수 있는 파일 수와 성능상의 일부 파일 시스템에 설정된 제한을 극복하기 위해 수행됩니다.
levels속성을 사용하여 적용할 디렉터리 해시의 수를 구성합니다.ID 이름은 파일 이름으로 사용하기 전에 Base32로 인코딩됩니다. 일부 파일 시스템은 대소문자를 구분하지 않거나 파일 이름에 허용되는 문자 집합을 제한할 수 있기 때문에 수행됩니다.
인코딩된속성을false로 설정하여 인코딩을 해제할 수 있습니다.
다른 속성 및 기본값에 대한 자세한 내용은 filesystem-realm 특성을 참조하십시오.
암호화
filesystem-realm 은 ID 파일에 ID를 저장할 때 명확한 암호, 해시된 암호 및 속성을 위해 Base64 인코딩을 사용합니다. 보안을 강화하기 위해 인증 정보 저장소에 저장된 시크릿 키를 사용하여 일반 암호, 해시된 암호 및 속성을 암호화할 수 있습니다. 시크릿 키는 암호 및 특성을 암호화하고 해독하는 데 사용됩니다.
무결성 검사
파일 시스템-realm으로 생성된 ID가 변조되지 않도록 파일 시스템 생성 중에 파일 시스템-realm의 키 쌍을 참조하여 에서 무결성 검사를 활성화할 수 있습니다. filesystem-realm
무결성 검사는 다음과 같이 filesystem-realm 에서 작동합니다.
-
무결성 검사가 활성화된
filesystem-realm에서 ID를 생성하면 Elytron은 ID 파일을 만들고 서명을 생성합니다. - 예를 들어 ID 파일을 읽을 때마다 ID를 업데이트하거나 인증을 위해 ID를 로드할 때 Elytron은 서명에 대해 ID 파일 콘텐츠를 확인하여 파일이 마지막으로 승인된 쓰기 이후 변조되지 않았는지 확인합니다.
연결된 서명이 있는 기존 ID를 업데이트할 때 Elytron은 콘텐츠를 업데이트하고 원래 콘텐츠가 확인을 통과한 후 새 서명을 생성합니다.
확인에 실패하면 다음과 같은 실패 메시지가 표시됩니다.
{ "outcome" => "failed", "failure-description" => "WFLYCTL0158: Operation handler failed:java.lang.RuntimeException: WFLYELY01008: Failed to obtain the authorization identity.", "rolled-back" => true }{ "outcome" => "failed", "failure-description" => "WFLYCTL0158: Operation handler failed:java.lang.RuntimeException: WFLYELY01008: Failed to obtain the authorization identity.", "rolled-back" => true }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.2. Ely tron에서 파일 시스템 생성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 서버 인터페이스 또는 서버에 배포된 애플리케이션을 보호하기 위해 영역을 참조하는 filesystem-realm 및 보안 도메인을 만듭니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
Elytron에서
filesystem-realm을 만듭니다.구문
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add(path=<file_path>)
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add(path=<file_path>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add(path=fs-realm-users,relative-to=jboss.server.config.dir) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add(path=fs-realm-users,relative-to=jboss.server.config.dir) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자를 영역에 추가하고 사용자 역할을 구성합니다.
사용자를 추가합니다.
구문
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity(identity=<user_name>)
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity(identity=<user_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity(identity=user1) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity(identity=user1) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자의 암호를 설정합니다.
구문
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:set-password(identity=<user_name>, clear={password=<password>})/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:set-password(identity=<user_name>, clear={password=<password>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:set-password(identity=user1, clear={password="passwordUser1"}) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:set-password(identity=user1, clear={password="passwordUser1"}) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자의 역할을 설정합니다.
구문
/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=<filesystem_realm_name>:add-identity-attribute(identity=<user_name>, name=<roles_attribute_name>, value=[<role_1>,<role_N>])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity-attribute(identity=user1, name=Roles, value=["Admin","Guest"]) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity-attribute(identity=user1, name=Roles, value=["Admin","Guest"]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
filesystem-realm을 참조하는 보안 도메인을 생성합니다.구문
/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<filesystem_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<filesystem_realm_name>,role-decoder="<role_decoder_name>"}])/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<filesystem_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<filesystem_realm_name>,role-decoder="<role_decoder_name>"}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
Elytron이
filesystem-realm에서 ID를 로드할 수 있는지 확인하려면 다음 명령을 사용합니다.구문
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이제 생성된 보안 도메인을 사용하여 관리 인터페이스 및 애플리케이션에 인증 및 권한 부여를 추가할 수 있습니다. 자세한 내용은 관리 인터페이스 및 애플리케이션 보안을 참조하십시오.
1.1.3. Elytron에서 암호화된 파일 시스템 만들기 -realm 링크 복사링크가 클립보드에 복사되었습니다!
암호화된 파일 시스템-realm 을 만들어 JBoss EAP 애플리케이션 또는 서버 인터페이스를 보호하고 사용자 자격 증명이 암호화되어 안전한지 확인합니다.
1.1.3.1. 독립 실행형 서버에 대한 secret-key-credential-store 생성 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 secret-key-credential-store 를 생성합니다. secret-key-credential-store 를 생성할 때 JBoss EAP는 기본적으로 시크릿 키를 생성합니다. 생성된 키의 이름은 key 이고 크기는 256비트입니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
-
JBoss EAP가 실행 중인 사용자 계정에 대해
secret-key-credential-store가 포함된 디렉터리에 대한 읽기/쓰기 액세스 권한이 있어야 합니다.
프로세스
관리 CLI를 사용하여
secret-key-credential-store를 생성하려면 다음 명령을 사용합니다.구문
/subsystem=elytron/secret-key-credential-store=<name_of_credential_store>:add(path="<path_to_the_credential_store>", relative-to=<path_to_store_file>)
/subsystem=elytron/secret-key-credential-store=<name_of_credential_store>:add(path="<path_to_the_credential_store>", relative-to=<path_to_store_file>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/secret-key-credential-store=examplePropertiesCredentialStore:add(path=examplePropertiesCredentialStore.cs, relative-to=jboss.server.config.dir) {"outcome" => "success"}/subsystem=elytron/secret-key-credential-store=examplePropertiesCredentialStore:add(path=examplePropertiesCredentialStore.cs, relative-to=jboss.server.config.dir) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.3.2. 암호화된 파일 시스템 생성-realm 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 서버 인터페이스 또는 서버에 배포된 애플리케이션을 보호하기 위해 영역을 참조하는 암호화된 파일 시스템-realm 및 보안 도메인을 만듭니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
secret-key-credential-store를 생성했습니다.자세한 내용은 독립 실행형 서버의
secret-key-credential-store생성을 참조하십시오.
프로세스
Elytron에서
암호화된 파일 시스템-realm을 만듭니다.구문
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add(path=<file_path>,credential-store=<name_of_credential_store>,secret-key=<key>)
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add(path=<file_path>,credential-store=<name_of_credential_store>,secret-key=<key>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add(path=fs-realm-users,relative-to=jboss.server.config.dir, credential-store=examplePropertiesCredentialStore, secret-key=key) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add(path=fs-realm-users,relative-to=jboss.server.config.dir, credential-store=examplePropertiesCredentialStore, secret-key=key) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자를 영역에 추가하고 사용자 역할을 구성합니다.
사용자를 추가합니다.
구문
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity(identity=<user_name>)
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity(identity=<user_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity(identity=user1) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity(identity=user1) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자의 암호를 설정합니다.
구문
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:set-password(identity=<user_name>, clear={password=<password>})/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:set-password(identity=<user_name>, clear={password=<password>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:set-password(identity=user1, clear={password="passwordUser1"}) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:set-password(identity=user1, clear={password="passwordUser1"}) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자의 역할을 설정합니다.
구문
/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=<filesystem_realm_name>:add-identity-attribute(identity=<user_name>, name=<roles_attribute_name>, value=[<role_1>,<role_N>])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity-attribute(identity=user1, name=Roles, value=["Admin","Guest"]) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity-attribute(identity=user1, name=Roles, value=["Admin","Guest"]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
filesystem-realm을 참조하는 보안 도메인을 생성합니다.구문
/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<filesystem_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<filesystem_realm_name>,role-decoder="<role_decoder_name>"}])/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<filesystem_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<filesystem_realm_name>,role-decoder="<role_decoder_name>"}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
Elytron이 암호화된
filesystem-realm에서 ID를 로드할 수 있는지 확인하려면 다음 명령을 사용합니다.구문
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이제 생성된 보안 도메인을 사용하여 관리 인터페이스 및 애플리케이션에 인증 및 권한 부여를 추가할 수 있습니다.
1.1.4. Elytron에서 무결성 지원이 포함된 파일 시스템 생성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 애플리케이션 또는 서버 인터페이스를 보호하고 사용자 인증 정보가 변경되지 않도록 하는 무결성으로 파일 시스템-realm 을 만듭니다.
1.1.4.1. 관리 CLI를 사용하여 키 쌍 생성 링크 복사링크가 클립보드에 복사되었습니다!
Elytron의 키 쌍을 사용하여 키 저장소를 만듭니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
키 저장소를 생성합니다.
구문
/subsystem=elytron/key-store=<key_store_name>:add(path=<path_to_key_store_file>,credential-reference={<password>})/subsystem=elytron/key-store=<key_store_name>:add(path=<path_to_key_store_file>,credential-reference={<password>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleKeystore:add(path=keystore, relative-to=jboss.server.config.dir, type=JKS, credential-reference={clear-text=secret}) {"outcome" => "success"}/subsystem=elytron/key-store=exampleKeystore:add(path=keystore, relative-to=jboss.server.config.dir, type=JKS, credential-reference={clear-text=secret}) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 키 저장소에 키 쌍을 만듭니다.
구문
/subsystem=elytron/key-store=<key_store_name>:generate-key-pair(alias=<alias>,algorithm=<key_algorithm>,key-size=<size_of_key>,validity=<validity_in_days>,distinguished-name="<distinguished_name>")
/subsystem=elytron/key-store=<key_store_name>:generate-key-pair(alias=<alias>,algorithm=<key_algorithm>,key-size=<size_of_key>,validity=<validity_in_days>,distinguished-name="<distinguished_name>")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleKeystore:generate-key-pair(alias=localhost,algorithm=RSA,key-size=1024,validity=365,distinguished-name="CN=localhost") {"outcome" => "success"}/subsystem=elytron/key-store=exampleKeystore:generate-key-pair(alias=localhost,algorithm=RSA,key-size=1024,validity=365,distinguished-name="CN=localhost") {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 키 저장소 파일에 키 쌍을 저장합니다.
구문
/subsystem=elytron/key-store=<key_store_name>:store()
/subsystem=elytron/key-store=<key_store_name>:store()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleKeystore:store() { "outcome" => "success", "result" => undefined }/subsystem=elytron/key-store=exampleKeystore:store() { "outcome" => "success", "result" => undefined }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.4.2. 무결성 지원이 포함된 파일 시스템 생성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 서버 인터페이스 또는 서버에 배포된 애플리케이션을 보호하기 위해 영역을 참조하는 보안 도메인과 무결성 지원이 포함된 파일 시스템-realm 을 만듭니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
secret-key-credential-store를 생성했습니다.자세한 내용은 관리 CLI를 사용하여 키 쌍 생성을 참조하십시오.
프로세스
Elytron에서
filesystem-realm을 만듭니다.구문
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add(path=<file_path>,key-store=<key_store_name>,key-store-alias=<key_store_alias>)
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add(path=<file_path>,key-store=<key_store_name>,key-store-alias=<key_store_alias>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add(path=fs-realm-users,relative-to=jboss.server.config.dir, key-store=exampleKeystore, key-store-alias=localhost) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add(path=fs-realm-users,relative-to=jboss.server.config.dir, key-store=exampleKeystore, key-store-alias=localhost) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자를 영역에 추가하고 사용자 역할을 구성합니다.
사용자를 추가합니다.
구문
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity(identity=<user_name>)
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity(identity=<user_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity(identity=user1) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity(identity=user1) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자의 암호를 설정합니다.
구문
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:set-password(identity=<user_name>, clear={password=<password>})/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:set-password(identity=<user_name>, clear={password=<password>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:set-password(identity=user1, clear={password="passwordUser1"}) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:set-password(identity=user1, clear={password="passwordUser1"}) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자의 역할을 설정합니다.
구문
/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=<filesystem_realm_name>:add-identity-attribute(identity=<user_name>, name=<roles_attribute_name>, value=[<role_1>,<role_N>])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity-attribute(identity=user1, name=Roles, value=["Admin","Guest"]) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity-attribute(identity=user1, name=Roles, value=["Admin","Guest"]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
filesystem-realm을 참조하는 보안 도메인을 생성합니다.구문
/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<filesystem_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<filesystem_realm_name>,role-decoder="<role_decoder_name>"}])/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<filesystem_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<filesystem_realm_name>,role-decoder="<role_decoder_name>"}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
Elytron이
filesystem-realm에서 ID를 로드할 수 있는지 확인하려면 다음 명령을 사용합니다.구문
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이제 생성된 보안 도메인을 사용하여 관리 인터페이스 및 애플리케이션에 인증 및 권한 부여를 추가할 수 있습니다. 자세한 내용은 관리 인터페이스 및 애플리케이션 보안을 참조하십시오.
1.1.4.3. 무결성 지원이 활성화된 기존 파일 시스템에서 키 쌍 업데이트 링크 복사링크가 클립보드에 복사되었습니다!
기존 키가 손상된 경우 무결성 지원이 활성화된 파일 시스템에서 참조하는 키 쌍을 업데이트할 수 있습니다. 또한 키를 교체하는 것이 좋습니다.
사전 요구 사항
- 키 쌍을 생성했습니다.
무결성 검사가 활성화된
파일 시스템-realm을 생성했습니다.자세한 내용은 무결성 지원이 포함된
파일 시스템생성 을 참조하십시오.
프로세스
기존 키 저장소에 키 쌍을 만듭니다.
구문
/subsystem=elytron/key-store=<key_store_name>:generate-key-pair(alias=<alias>,algorithm=<key_algorithm>,key-size=<size_of_key>,validity=<validity_in_days>,distinguished-name="<distinguished_name>")
/subsystem=elytron/key-store=<key_store_name>:generate-key-pair(alias=<alias>,algorithm=<key_algorithm>,key-size=<size_of_key>,validity=<validity_in_days>,distinguished-name="<distinguished_name>")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleKeystore:generate-key-pair(alias=localhost2,algorithm=RSA,key-size=1024,validity=365,distinguished-name="CN=localhost") {"outcome" => "success"}/subsystem=elytron/key-store=exampleKeystore:generate-key-pair(alias=localhost2,algorithm=RSA,key-size=1024,validity=365,distinguished-name="CN=localhost") {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 키 저장소 파일에 키 쌍을 저장합니다.
구문
/subsystem=elytron/key-store=<key_store_name>:store()
/subsystem=elytron/key-store=<key_store_name>:store()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleKeystore:store() { "outcome" => "success", "result" => undefined }/subsystem=elytron/key-store=exampleKeystore:store() { "outcome" => "success", "result" => undefined }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 키 저장소 별칭을 업데이트하여 새 키 쌍을 참조합니다.
구문
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:write-attribute(name=key-store-alias, value=<key_store_alias>)
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:write-attribute(name=key-store-alias, value=<key_store_alias>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 키 쌍을 사용하여
파일 시스템-realm의 파일을 새 서명으로 업데이트합니다.구문
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:update-key-pair()
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:update-key-pair()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:update-key-pair() {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:update-key-pair() {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 관리 CLI 명령을 사용하여
filesystem-realm에서 참조된 키 쌍이 업데이트되었는지 확인합니다.구문
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:read-resource()
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:read-resource()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
filesystem-realm 에서 참조된 키 쌍이 업데이트되었습니다.
1.1.5. 암호화되지 않은 파일 시스템 암호화 -realm 링크 복사링크가 클립보드에 복사되었습니다!
Elytron에 파일 시스템-realm 이 구성된 경우 WildFly Elytron Tool을 사용하여 암호화를 추가할 수 있습니다.
1.1.5.1. 독립 실행형 서버에 대한 secret-key-credential-store 생성 링크 복사링크가 클립보드에 복사되었습니다!
관리 CLI를 사용하여 secret-key-credential-store 를 생성합니다. secret-key-credential-store 를 생성할 때 JBoss EAP는 기본적으로 시크릿 키를 생성합니다. 생성된 키의 이름은 key 이고 크기는 256비트입니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
-
JBoss EAP가 실행 중인 사용자 계정에 대해
secret-key-credential-store가 포함된 디렉터리에 대한 읽기/쓰기 액세스 권한이 있어야 합니다.
프로세스
관리 CLI를 사용하여
secret-key-credential-store를 생성하려면 다음 명령을 사용합니다.구문
/subsystem=elytron/secret-key-credential-store=<name_of_credential_store>:add(path="<path_to_the_credential_store>", relative-to=<path_to_store_file>)
/subsystem=elytron/secret-key-credential-store=<name_of_credential_store>:add(path="<path_to_the_credential_store>", relative-to=<path_to_store_file>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/secret-key-credential-store=examplePropertiesCredentialStore:add(path=examplePropertiesCredentialStore.cs, relative-to=jboss.server.config.dir) {"outcome" => "success"}/subsystem=elytron/secret-key-credential-store=examplePropertiesCredentialStore:add(path=examplePropertiesCredentialStore.cs, relative-to=jboss.server.config.dir) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.5.2. 암호화되지 않은 파일 시스템-realm 을 암호화된 파일 시스템-realm으로 변환 링크 복사링크가 클립보드에 복사되었습니다!
WildFly Elytron 툴 을 암호화된 파일 시스템으로 변환할 수 있습니다.
filesystem-realm 명령을 사용하여 암호화되지 않은 파일 시스템-realm
사전 요구 사항
기존
filesystem-realm이 있습니다.자세한 내용은 Elytron에서
파일 시스템생성 을 참조하십시오.secret-key-credential-store를 생성했습니다.자세한 내용은 독립 실행형 서버의
secret-key-credential-store생성을 참조하십시오.- JBoss EAP가 실행 중입니다.
프로세스
암호화되지 않은
파일 시스템-realm을 암호화된 파일 시스템으로 변환합니다.구문
JBOSS_HOME/bin/elytron-tool.sh filesystem-realm-encrypt --input-location <existing_filesystem_realm_name> --output-location JBOSS_HOME/standalone/configuration/<target_filesystem_realm_name> --credential-store <path_to_credential_store>/<credential_store>
$ JBOSS_HOME/bin/elytron-tool.sh filesystem-realm-encrypt --input-location <existing_filesystem_realm_name> --output-location JBOSS_HOME/standalone/configuration/<target_filesystem_realm_name> --credential-store <path_to_credential_store>/<credential_store>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
JBOSS_HOME/bin/elytron-tool.sh filesystem-realm-encrypt --input-location JBOSS_HOME/standalone/configuration/fs-realm-users --output-location JBOSS_HOME/standalone/configuration/fs-realm-users-enc --credential-store JBOSS_HOME/standalone/configuration/examplePropertiesCredentialStore.cs Creating encrypted realm for: JBOSS_HOME/standalone/configuration/fs-realm-users Found credential store and alias, using pre-existing key
$ JBOSS_HOME/bin/elytron-tool.sh filesystem-realm-encrypt --input-location JBOSS_HOME/standalone/configuration/fs-realm-users --output-location JBOSS_HOME/standalone/configuration/fs-realm-users-enc --credential-store JBOSS_HOME/standalone/configuration/examplePropertiesCredentialStore.cs Creating encrypted realm for: JBOSS_HOME/standalone/configuration/fs-realm-users Found credential store and alias, using pre-existing keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow WildFly Elytron 명령
filesystem-realm-encrypt는--output-location인수로 지정된filesystem-realm을 생성합니다. 또한elytron하위 시스템에filesystem-realm리소스를 추가하는 데 사용할 수 있는filesystem-realm의 루트에 CLI 스크립트를 생성합니다.작은 정보명령 실행에 대한 요약을 보려면
--summary옵션을 사용합니다.생성된 CLI 스크립트를 사용하여
elytron하위 시스템에filesystem-realm리소스를 추가합니다.Synax
JBOSS_HOME/bin/jboss-cli.sh --connect --file=<target_filesystem_realm_directory>/<target_filesystem_realm_name>.cli
$ JBOSS_HOME/bin/jboss-cli.sh --connect --file=<target_filesystem_realm_directory>/<target_filesystem_realm_name>.cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
JBOSS_HOME/bin/jboss-cli.sh --connect --file=JBOSS_HOME/standalone/configuration/fs-realm-users-enc/encrypted-filesystem-realm.cli
$ JBOSS_HOME/bin/jboss-cli.sh --connect --file=JBOSS_HOME/standalone/configuration/fs-realm-users-enc/encrypted-filesystem-realm.cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow
암호화된 filesystem-realm 을 사용하여 JBoss EAP 서버 인터페이스 또는 서버에 배포된 애플리케이션을 보호하는 영역을 참조하는 보안 도메인을 생성할 수 있습니다.
1.1.6. 기존 filesystem-realm에 무결성 지원 추가 링크 복사링크가 클립보드에 복사되었습니다!
Elytron에 파일 시스템-realm 이 구성된 경우 WildFly Elytron Tool을 사용하여 무결성 검사를 활성화하여 키 쌍으로 서명할 수 있습니다.
1.1.6.1. 관리 CLI를 사용하여 키 쌍 생성 링크 복사링크가 클립보드에 복사되었습니다!
Elytron의 키 쌍을 사용하여 키 저장소를 만듭니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
키 저장소를 생성합니다.
구문
/subsystem=elytron/key-store=<key_store_name>:add(path=<path_to_key_store_file>,credential-reference={<password>})/subsystem=elytron/key-store=<key_store_name>:add(path=<path_to_key_store_file>,credential-reference={<password>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleKeystore:add(path=keystore, relative-to=jboss.server.config.dir, type=JKS, credential-reference={clear-text=secret}) {"outcome" => "success"}/subsystem=elytron/key-store=exampleKeystore:add(path=keystore, relative-to=jboss.server.config.dir, type=JKS, credential-reference={clear-text=secret}) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 키 저장소에 키 쌍을 만듭니다.
구문
/subsystem=elytron/key-store=<key_store_name>:generate-key-pair(alias=<alias>,algorithm=<key_algorithm>,key-size=<size_of_key>,validity=<validity_in_days>,distinguished-name="<distinguished_name>")
/subsystem=elytron/key-store=<key_store_name>:generate-key-pair(alias=<alias>,algorithm=<key_algorithm>,key-size=<size_of_key>,validity=<validity_in_days>,distinguished-name="<distinguished_name>")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleKeystore:generate-key-pair(alias=localhost,algorithm=RSA,key-size=1024,validity=365,distinguished-name="CN=localhost") {"outcome" => "success"}/subsystem=elytron/key-store=exampleKeystore:generate-key-pair(alias=localhost,algorithm=RSA,key-size=1024,validity=365,distinguished-name="CN=localhost") {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 키 저장소 파일에 키 쌍을 저장합니다.
구문
/subsystem=elytron/key-store=<key_store_name>:store()
/subsystem=elytron/key-store=<key_store_name>:store()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleKeystore:store() { "outcome" => "success", "result" => undefined }/subsystem=elytron/key-store=exampleKeystore:store() { "outcome" => "success", "result" => undefined }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.6.2. filesystem-realm의 무결성 검사 활성화 링크 복사링크가 클립보드에 복사되었습니다!
WildFly Elytron 툴 파일 시스템-realm- integrity 명령을 사용하여 비어 있지 않은 기존 파일 시스템(realm )에서 무결성 검사가 포함된 파일 시스템-realm 을 생성할 수 있습니다.
다음 사용 사례에 filesystem-realm-integrity 명령을 사용할 수 있습니다.
-
기존
파일시스템에서 무결성 검사를 통해 새 파일 시스템 만들기-realm. -
기존
filesystem-realm에 무결성 검사 추가
사전 요구 사항
기존
filesystem-realm이 있습니다.자세한 내용은 Elytron에서
파일 시스템생성 을 참조하십시오.키 쌍을 생성했습니다.
자세한 내용은 관리 CLI를 사용하여 키 쌍 생성을 참조하십시오.
- JBoss EAP가 실행 중입니다.
프로세스
기존
filesystem-realm을 사용하고 키 쌍으로 서명하여 무결성이 지원되는filesystem-realm을 생성합니다.기존
filesystem-realm에 무결성 지원을 추가하려면 다음 명령에서--output-location및--realm-name옵션을 생략합니다.--output-location및--realm-name옵션을 지정하면 명령은 기존 옵션을 업데이트하지 않고 무결성 검사를 사용하여 새파일 시스템-realm을 생성합니다.구문
JBOSS_HOME/bin/elytron-tool.sh filesystem-realm-integrity --input-location <path_to_existing_filesystem_realm> --keystore <path_to_key_store_file> --password <keystore_password> --key-pair <key_pair_alias> --output-location <path_for_new_filesystem_realm> --realm-name <name_of_new_filesystem_realm>
$ JBOSS_HOME/bin/elytron-tool.sh filesystem-realm-integrity --input-location <path_to_existing_filesystem_realm> --keystore <path_to_key_store_file> --password <keystore_password> --key-pair <key_pair_alias> --output-location <path_for_new_filesystem_realm> --realm-name <name_of_new_filesystem_realm>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
JBOSS_HOME/bin/elytron-tool.sh filesystem-realm-integrity --input-location JBOSS_HOME/standalone/configuration/fs-realm-users/ --keystore JBOSS_HOME/standalone/configuration/keystore --password secret --key-pair localhost --output-location JBOSS_HOME/standalone/configuration/fs-realm-users --realm-name exampleRealmWithIntegrity
$ JBOSS_HOME/bin/elytron-tool.sh filesystem-realm-integrity --input-location JBOSS_HOME/standalone/configuration/fs-realm-users/ --keystore JBOSS_HOME/standalone/configuration/keystore --password secret --key-pair localhost --output-location JBOSS_HOME/standalone/configuration/fs-realm-users --realm-name exampleRealmWithIntegrityCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exmaple 출력
Creating filesystem realm with integrity verification for: JBOSS_HOME/standalone/configuration/fs-realm-users
Creating filesystem realm with integrity verification for: JBOSS_HOME/standalone/configuration/fs-realm-usersCopy to Clipboard Copied! Toggle word wrap Toggle overflow WildFly Elytron 명령
는filesystem-realm-integrity--output-location인수로 지정된 파일 시스템-realm을 생성합니다. 또한elytron하위 시스템에filesystem-realm리소스를 추가하는 데 사용할 수 있는filesystem-realm의 루트에 CLI 스크립트를 생성합니다.작은 정보명령 실행에 대한 요약을 보려면
--summary옵션을 사용합니다.생성된 CLI 스크립트를 사용하여
elytron하위 시스템에filesystem-realm리소스를 추가합니다.구문
JBOSS_HOME/bin/jboss-cli.sh --connect --file=<target_filesystem_realm_directory>/<target_filesystem_realm_name>.cli
$ JBOSS_HOME/bin/jboss-cli.sh --connect --file=<target_filesystem_realm_directory>/<target_filesystem_realm_name>.cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
JBOSS_HOME/bin/jboss-cli.sh --connect --file=JBOSS_HOME/standalone/configuration/fs-realm-users/exampleRealmWithIntegrity.cli
$ JBOSS_HOME/bin/jboss-cli.sh --connect --file=JBOSS_HOME/standalone/configuration/fs-realm-users/exampleRealmWithIntegrity.cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow
filesystem-realm 을 사용하여 이 영역을 참조하는 보안 도메인을 생성하여 JBoss EAP 서버 인터페이스 또는 서버에 배포된 애플리케이션을 보호할 수 있습니다.
1.2. JDBC 영역 생성 링크 복사링크가 클립보드에 복사되었습니다!
1.2.1. Elytron에서 jdbc-realm 만들기 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 서버 인터페이스 또는 서버에 배포된 애플리케이션을 보호하기 위해 영역을 참조하는 jdbc-realm 및 보안 도메인을 만듭니다.
절차의 예제에서는 다음과 같이 구성된 PostgreSQL 데이터베이스를 사용합니다.
- 데이터베이스 이름: postgresdb
데이터베이스 로그인 인증 정보:
- 사용자 이름: postgres
- 암호: postgres
- 표 이름: example_jboss_eap_users
example_jboss_eap_users contents:
Expand 사용자 이름 암호 역할 user1
passwordUser1
관리자
user2
passwordUser2
게스트
사전 요구 사항
- 사용자를 포함하는 데이터베이스를 구성했습니다.
- JBoss EAP가 실행 중입니다.
- 적절한 JDBC 드라이버를 다운로드했습니다.
프로세스
관리 CLI를 사용하여 데이터베이스 드라이버를 배포합니다.
구문
deploy <path_to_jdbc_driver>/<jdbc-driver>
deploy <path_to_jdbc_driver>/<jdbc-driver>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
deploy PATH_TO_JDBC_DRIVER/postgresql-42.2.9.jar
deploy PATH_TO_JDBC_DRIVER/postgresql-42.2.9.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터베이스를 데이터 소스로 구성합니다.
구문
data-source add --name=<data_source_name> --jndi-name=<jndi_name> --driver-name=<jdbc-driver> --connection-url=<database_URL> --user-name=<database_username> --password=<database_username>
data-source add --name=<data_source_name> --jndi-name=<jndi_name> --driver-name=<jdbc-driver> --connection-url=<database_URL> --user-name=<database_username> --password=<database_username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
data-source add --name=examplePostgresDS --jndi-name=java:jboss/examplePostgresDS --driver-name=postgresql-42.2.9.jar --connection-url=jdbc:postgresql://localhost:5432/postgresdb --user-name=postgres --password=postgres
data-source add --name=examplePostgresDS --jndi-name=java:jboss/examplePostgresDS --driver-name=postgresql-42.2.9.jar --connection-url=jdbc:postgresql://localhost:5432/postgresdb --user-name=postgres --password=postgresCopy to Clipboard Copied! Toggle word wrap Toggle overflow Elytron에
jdbc-realm을 만듭니다.구문
/subsystem=elytron/jdbc-realm=<jdbc_realm_name>:add(principal-query=[<sql_query_to_load_users>])
/subsystem=elytron/jdbc-realm=<jdbc_realm_name>:add(principal-query=[<sql_query_to_load_users>])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/jdbc-realm=exampleSecurityRealm:add(principal-query=[{sql="SELECT password,roles FROM example_jboss_eap_users WHERE username=?",data-source=examplePostgresDS,clear-password-mapper={password-index=1},attribute-mapping=[{index=2,to=Roles}]}]) {"outcome" => "success"}/subsystem=elytron/jdbc-realm=exampleSecurityRealm:add(principal-query=[{sql="SELECT password,roles FROM example_jboss_eap_users WHERE username=?",data-source=examplePostgresDS,clear-password-mapper={password-index=1},attribute-mapping=[{index=2,to=Roles}]}]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이 예제에서는 단일
주체 쿼리에서 암호 및 역할을 가져오는 방법을 보여줍니다. 역할 또는 추가 인증 또는 권한 부여 정보를 가져오기 위해 여러쿼리가 필요한 경우 특성쿼리를 생성할 수도 있습니다.매핑 특성을 사용하여 추가 주체-지원되는 암호 매퍼 목록은 암호 매퍼 를 참조하십시오. ???
jdbc-realm을 참조하는 보안 도메인을 만듭니다.구문
/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<jdbc_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=< jdbc_realm_name>,role-decoder="<role_decoder_name>"}])/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<jdbc_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=< jdbc_realm_name>,role-decoder="<role_decoder_name>"}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
Elytron이 데이터베이스에서 데이터를 로드할 수 있는지 확인하려면 다음 명령을 사용합니다.
구문
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력은 Elytron이 데이터베이스에서 데이터를 로드할 수 있음을 확인합니다.
이제 생성된 보안 도메인을 사용하여 관리 인터페이스 및 애플리케이션에 인증 및 권한 부여를 추가할 수 있습니다. 자세한 내용은 관리 인터페이스 및 애플리케이션 보안을 참조하십시오.
1.3. LDAP 영역 생성 링크 복사링크가 클립보드에 복사되었습니다!
1.3.1. Elytron의 LDAP 영역 링크 복사링크가 클립보드에 복사되었습니다!
LDAP(Lightweight Directory Access Protocol) 영역 ldap-realm 은 LDAP ID 저장소에서 ID를 로드하는 데 사용할 수 있는 보안 영역입니다.
다음 예제에서는 JBoss EAP의 Elytron ID로 LDAP의 ID를 매핑하는 방법을 보여줍니다.
LDAP Data Interchange Format (LDIF) 파일 예
LDAP 영역을 생성하는 명령의 예
/subsystem=elytron/dir-context=exampleDirContext:add(url="ldap://10.88.0.2",principal="cn=admin,dc=wildfly,dc=org",credential-reference={clear-text="secret"})
/subsystem=elytron/ldap-realm=exampleSecurityRealm: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"}]})
/subsystem=elytron/dir-context=exampleDirContext:add(url="ldap://10.88.0.2",principal="cn=admin,dc=wildfly,dc=org",credential-reference={clear-text="secret"})
/subsystem=elytron/ldap-realm=exampleSecurityRealm: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"}]})
명령을 실행하면 다음 구성이 생성됩니다.
- 1
- 영역 정의입니다.
-
name은ldap-realm영역 이름입니다. -
dir-context는 LDAP 서버에 연결할 구성입니다.
-
- 2
- ID 매핑 방법을 정의합니다.
R
DN-identifier는 주체의 이름을 LDAP 항목에서 가져오는 데 사용할 고유 이름(DN)의 상대 고유 이름(RDN)입니다. 예제 LDIF에서uid는 기본DN=ou=Users,dc=wildfly,dc=org의 주체 이름을 표시하도록 구성됩니다.search-base-dn은 ID를 검색할 기본 DN입니다. 예제 LDIF에서는dn: ou=Users,dc=wildfly,dc=org로 정의됩니다.
- 3
- ID 속성 매핑에 대한 LDAP 속성을 정의합니다.
- 4
- 특정 LDAP 속성을 Elytron ID 속성으로 매핑하는 방법을 구성합니다.
-
에서매핑할 LDAP 속성입니다. 정의되지 않은 경우 항목의 DN이 사용됩니다. -
to는 LDAP 속성에서 매핑된 ID 특성의 이름입니다. 제공되지 않는 경우 속성의 이름은 의 이름과 동일합니다.from도 정의되지 않은 경우 항목의 DN이 사용됩니다. filter는 특정 속성의 값을 가져오는 데 사용할 필터입니다. 문자열 '{0}'은 사용자 ID DN으로 '{1}' 사용자 이름으로 교체됩니다.-
objectclass는 사용할 LDAP 오브젝트 클래스입니다. LDIF 예제에서 사용할 오브젝트 클래스는groupOfNames로 정의됩니다. -
멤버는 매핑할 멤버입니다.{0}은 사용자 이름으로 교체되고{1}은 사용자 ID DN으로 교체됩니다. 이 예에서{1}은멤버를user1에 매핑하는 데 사용됩니다.
-
filter-base-dn은 필터를 적용해야 하는 컨텍스트의 이름입니다.예제 필터의 결과는
user1사용자가Admin역할로 매핑된다는 것입니다.
-
- 5
user-password-mapper는 ID의 암호를 가져오는 LDAP 속성을 정의합니다. 이 예제에서는 LDIF에로 정의된 userPassword 로 구성됩니다.userPassword1
1.3.2. Elytron에서 ldap-realm 생성 링크 복사링크가 클립보드에 복사되었습니다!
LDAP(Lightweight Directory Access Protocol) ID 저장소에서 지원하는 Elytron 보안 영역을 만듭니다. 보안 영역을 사용하여 관리 인터페이스 또는 서버에 배포된 애플리케이션에 인증 및 권한 부여를 추가하는 보안 도메인을 생성합니다.
캐싱 영역으로 구성된 LDAP- realm은 Active Directory를 지원하지 않습니다. 자세한 내용은 Elytron .NET Framework CLI를 통해 LDAP/AD 사용자 암호 변경을 참조하십시오.
elytron 하위 시스템이 LDAP 서버를 사용하여 인증을 수행하는 경우 LDAP 서버에 연결할 수 없는 경우 JBoss EAP는 500 오류 코드 또는 내부 서버 오류를 반환합니다.
LDAP 서버를 사용할 수 있게 되는 경우에도 LDAP 영역을 사용하여 보안된 관리 인터페이스와 애플리케이션에 액세스할 수 있도록 장애 조치 영역을 사용합니다. 자세한 내용은 장애 조치 영역 생성을 참조하십시오.
이 절차의 예에서는 다음 LDAP Data Interchange Format(LDIF)이 사용됩니다.
예제에 사용되는 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=<dir_context_name>:add(url="<LDAP_URL>",principal="<principal_distinguished_name>",credential-reference=<credential_reference>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/dir-context=exampleDirContext:add(url="ldap://10.88.0.2",principal="cn=admin,dc=wildfly,dc=org",credential-reference={clear-text="secret"})/subsystem=elytron/dir-context=exampleDirContext:add(url="ldap://10.88.0.2",principal="cn=admin,dc=wildfly,dc=org",credential-reference={clear-text="secret"})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 디렉터리 컨텍스트를 참조하는 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=<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>"}]})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/ldap-realm=exampleSecurityRealm: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"}]})/subsystem=elytron/ldap-realm=exampleSecurityRealm: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"}]})Copy to Clipboard Copied! Toggle word wrap Toggle overflow LDIF 파일에 해시된 암호를 저장하는 경우 다음 속성을 지정할 수 있습니다.
-
hash-encoding: 이 속성은 일반 텍스트로 저장되지 않는 경우 암호의 문자열 형식을 지정합니다. 기본적으로base64인코딩으로 설정되어 있지만16진수도 지원됩니다. -
hash-charset: 이 속성은 암호 문자열을 바이트 배열로 변환할 때 사용할 문자를 지정합니다. 기본적으로UTF-8로 설정됩니다.
주의참조된 LDAP 서버에 참조에 루프가 포함된 경우 JBoss EAP에서
java.lang.OutOfMemoryError오류가 발생할 수 있습니다.-
특성을 역할에 매핑하는 역할 디코더를 생성합니다.
구문
/subsystem=elytron/simple-role-decoder=<role_decoder_name>:add(attribute=<attribute>)
/subsystem=elytron/simple-role-decoder=<role_decoder_name>:add(attribute=<attribute>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/simple-role-decoder=from-roles-attribute:add(attribute=Roles)
/subsystem=elytron/simple-role-decoder=from-roles-attribute:add(attribute=Roles)Copy to Clipboard Copied! Toggle word wrap Toggle overflow LDAP 영역 및 역할 디코더를 참조하는 보안 도메인을 생성합니다.
구문
/subsystem=elytron/security-domain=<security_domain_name>:add(realms=[{realm=<ldap_realm_name>,role-decoder=<role_decoder_name>}],default-realm=<ldap_realm_name>,permission-mapper=<permission_mapper>)/subsystem=elytron/security-domain=<security_domain_name>:add(realms=[{realm=<ldap_realm_name>,role-decoder=<role_decoder_name>}],default-realm=<ldap_realm_name>,permission-mapper=<permission_mapper>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/security-domain=exampleSecurityDomain:add(realms=[{realm=exampleSecurityRealm,role-decoder=from-roles-attribute}],default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper)/subsystem=elytron/security-domain=exampleSecurityDomain:add(realms=[{realm=exampleSecurityRealm,role-decoder=from-roles-attribute}],default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이제 생성된 보안 도메인을 사용하여 관리 인터페이스 및 애플리케이션에 인증 및 권한 부여를 추가할 수 있습니다. 자세한 내용은 관리 인터페이스 및 애플리케이션 보안을 참조하십시오.
1.4. 속성 영역 생성 링크 복사링크가 클립보드에 복사되었습니다!
1.4.1. Elytron에서 속성을 참조하는 보안 도메인 생성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 관리 인터페이스 또는 서버에 배포한 애플리케이션을 보호하기 위해 영역을 참조하는 속성-realm 및 보안 도메인을 생성합니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
권한이 부여된 사용자 및
users.properties파일의 주석 처리된 줄에 작성된 올바른 영역이 있는 기존 레거시 속성 파일이 있습니다.예:
$EAP_HOME/standalone/configuration/my-example-users.properties#$REALM_NAME=exampleSecurityRealm$ user1=078ed9776d4b8e63b6e51135ec45cc75
#$REALM_NAME=exampleSecurityRealm$ user1=078ed9776d4b8e63b6e51135ec45cc75Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
user1의 암호는userPassword1입니다. 암호는HEX( MD5(user1:exampleSecurityRealm:userPassword1 ))로 해시됩니다.
-
users.properties파일에 나열된 권한 있는 사용자에게는groups.properties파일에 역할이 있습니다.예:
$EAP_HOME/standalone/configuration/my-example-groups.propertiesuser1=Admin
user1=AdminCopy to Clipboard Copied! Toggle word wrap Toggle overflow
프로세스
Elytron
에서 속성을만듭니다.구문
/subsystem=elytron/properties-realm=<properties_realm_name>:add(users-properties={path=<file_path>},groups-properties={path=<file_path>})/subsystem=elytron/properties-realm=<properties_realm_name>:add(users-properties={path=<file_path>},groups-properties={path=<file_path>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/properties-realm=exampleSecurityRealm:add(users-properties={path=my-example-users.properties,relative-to=jboss.server.config.dir,plain-text=true},groups-properties={path=my-example-groups.properties,relative-to=jboss.server.config.dir})/subsystem=elytron/properties-realm=exampleSecurityRealm:add(users-properties={path=my-example-users.properties,relative-to=jboss.server.config.dir,plain-text=true},groups-properties={path=my-example-groups.properties,relative-to=jboss.server.config.dir})Copy to Clipboard Copied! Toggle word wrap Toggle overflow properties-realm을 참조하는 보안 도메인을 생성합니다.구문
/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<properties_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<properties_realm_name>,role-decoder="<role_decoder_name>"}])/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<properties_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<properties_realm_name>,role-decoder="<role_decoder_name>"}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm,role-decoder=groups-to-roles}])/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm,role-decoder=groups-to-roles}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
Elytron이 속성 파일에서 데이터를 로드할 수 있는지 확인하려면 다음 명령을 사용합니다.
구문
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력은 Elytron이 속성 파일에서 데이터를 로드할 수 있음을 확인합니다.
이제 생성된 보안 도메인을 사용하여 관리 인터페이스 및 애플리케이션에 인증 및 권한 부여를 추가할 수 있습니다. 자세한 내용은 관리 인터페이스 및 애플리케이션 보안을 참조하십시오.
1.5. 사용자 지정 영역 생성 링크 복사링크가 클립보드에 복사되었습니다!
1.5.1. Elytron에 custom-realm 보안 영역 추가 링크 복사링크가 클립보드에 복사되었습니다!
사용자 지정-realm 을 사용하여 사용 사례에 맞는 Elytron 보안 영역을 만들 수 있습니다. 기존 Elytron 보안 영역이 사용 사례에 맞지 않는 경우 사용자 지정 영역을 추가할 수 있습니다.
사전 요구 사항
- JBoss EAP가 설치되어 실행 중입니다.
- Maven이 설치되어 있어야 합니다.
- 구현된 사용자 지정 영역 java 클래스가 있습니다.
프로세스
사용자 지정 영역 java 클래스를 구현하고
JAR파일로 패키징합니다.mvn package
$ mvn packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 지정 영역 구현을 포함하는 모듈을 추가합니다.
구문
module add --name=<name_of_your_wildfly_module> --resources=<path_to_custom_realm_jar> --dependencies=org.wildfly.security.elytron
module add --name=<name_of_your_wildfly_module> --resources=<path_to_custom_realm_jar> --dependencies=org.wildfly.security.elytronCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
module add --name=com.example.customrealm --resources=EAP_HOME/custom-realm.jar --dependencies=org.wildfly.security.elytron
module add --name=com.example.customrealm --resources=EAP_HOME/custom-realm.jar --dependencies=org.wildfly.security.elytronCopy to Clipboard Copied! Toggle word wrap Toggle overflow custom-realm을 만듭니다.구문
/subsystem=elytron/custom-realm=<name_of_your_custom_realm>:add(module=<name_of_your_wildfly_module>,class-name=<class_name_of_custom_realm_>,configuration={<configuration_option_1>=<configuration_value_1>,<configuration_option_2>=<configuration_value_2>})/subsystem=elytron/custom-realm=<name_of_your_custom_realm>:add(module=<name_of_your_wildfly_module>,class-name=<class_name_of_custom_realm_>,configuration={<configuration_option_1>=<configuration_value_1>,<configuration_option_2>=<configuration_value_2>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/custom-realm=example-realm:add(module=com.example.customrealm,class-name=com.example.customrealm.ExampleRealm,configuration={exampleConfigOption1=exampleConfigValue1,exampleConfigOption2=exampleConfigValue2})/subsystem=elytron/custom-realm=example-realm:add(module=com.example.customrealm,class-name=com.example.customrealm.ExampleRealm,configuration={exampleConfigOption1=exampleConfigValue1,exampleConfigOption2=exampleConfigValue2})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이 예에서는 구현된 사용자 지정 영역에 클래스 이름
com.example.customrealm.ExampleRealm이 있어야 합니다.참고구성 속성을 사용하여을키/값구성custom-realm에 전달할 수 있습니다.구성속성은 선택 사항입니다.생성한 영역에 따라 보안 도메인을 정의합니다.
구문
/subsystem=elytron/security-domain=<your_security_domain_name>:add(realms=[{realm=<your_realm_name>}],default-realm=<your_realm_name>,permission-mapper=<your_permission_mapper_name>)/subsystem=elytron/security-domain=<your_security_domain_name>:add(realms=[{realm=<your_realm_name>}],default-realm=<your_realm_name>,permission-mapper=<your_permission_mapper_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/security-domain=exampleSecurityDomain:add(realms=[{realm=example-realm}],default-realm=example-realm,permission-mapper=default-permission-mapper)/subsystem=elytron/security-domain=exampleSecurityDomain:add(realms=[{realm=example-realm}],default-realm=example-realm,permission-mapper=default-permission-mapper)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이제 생성된 보안 도메인을 사용하여 관리 인터페이스 및 애플리케이션에 인증 및 권한 부여를 추가할 수 있습니다. 자세한 내용은 관리 인터페이스 및 애플리케이션 보안을 참조하십시오.
2장. 관리 인터페이스 및 애플리케이션 보안 링크 복사링크가 클립보드에 복사되었습니다!
2.1. 관리 인터페이스에 인증 및 권한 부여 추가 링크 복사링크가 클립보드에 복사되었습니다!
보안 도메인을 사용하여 이를 보호하기 위해 관리 인터페이스에 대한 인증 및 권한 부여를 추가할 수 있습니다. 인증 및 권한 부여를 추가한 후 관리 인터페이스에 액세스하려면 사용자가 로그인 자격 증명을 입력해야 합니다.
다음과 같이 JBoss EAP 관리 인터페이스를 보호할 수 있습니다.
관리 CLI
sasl-authentication-factory를 구성하여.관리 콘솔
http-authentication-factory를 구성하여 다음을 수행합니다.
사전 요구 사항
- 보안 영역을 참조하는 보안 도메인을 생성했습니다.
- JBoss EAP가 실행 중입니다.
프로세스
http-authentication-factory또는sasl-authentication-factory를 만듭니다.http-authentication-factory를 생성합니다.구문
/subsystem=elytron/http-authentication-factory=<authentication_factory_name>:add(http-server-mechanism-factory=global, security-domain=<security_domain_name>, mechanism-configurations=[{mechanism-name=<mechanism-name>, mechanism-realm-configurations=[{realm-name=<realm_name>}]}])/subsystem=elytron/http-authentication-factory=<authentication_factory_name>:add(http-server-mechanism-factory=global, security-domain=<security_domain_name>, mechanism-configurations=[{mechanism-name=<mechanism-name>, mechanism-realm-configurations=[{realm-name=<realm_name>}]}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/http-authentication-factory=exampleAuthenticationFactory:add(http-server-mechanism-factory=global, security-domain=exampleSecurityDomain, mechanism-configurations=[{mechanism-name=BASIC, mechanism-realm-configurations=[{realm-name=exampleSecurityRealm}]}]) {"outcome" => "success"}/subsystem=elytron/http-authentication-factory=exampleAuthenticationFactory:add(http-server-mechanism-factory=global, security-domain=exampleSecurityDomain, mechanism-configurations=[{mechanism-name=BASIC, mechanism-realm-configurations=[{realm-name=exampleSecurityRealm}]}]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow sasl-authentication-factory를 만듭니다.구문
/subsystem=elytron/sasl-authentication-factory=<sasl_authentication_factory_name>:add(security-domain=<security_domain>,sasl-server-factory=configured,mechanism-configurations=[{mechanism-name=<mechanism-name>,mechanism-realm-configurations=[{realm-name=<realm_name>}]}])/subsystem=elytron/sasl-authentication-factory=<sasl_authentication_factory_name>:add(security-domain=<security_domain>,sasl-server-factory=configured,mechanism-configurations=[{mechanism-name=<mechanism-name>,mechanism-realm-configurations=[{realm-name=<realm_name>}]}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/sasl-authentication-factory=exampleSaslAuthenticationFactory:add(security-domain=exampleSecurityDomain,sasl-server-factory=configured,mechanism-configurations=[{mechanism-name=PLAIN,mechanism-realm-configurations=[{realm-name=exampleSecurityRealm}]}]) {"outcome" => "success"}/subsystem=elytron/sasl-authentication-factory=exampleSaslAuthenticationFactory:add(security-domain=exampleSecurityDomain,sasl-server-factory=configured,mechanism-configurations=[{mechanism-name=PLAIN,mechanism-realm-configurations=[{realm-name=exampleSecurityRealm}]}]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
관리 인터페이스를 업데이트합니다.
http-authentication-factory를 사용하여 관리 콘솔을 보호합니다.구문
/core-service=management/management-interface=http-interface:write-attribute(name=http-authentication-factory, value=<authentication_factory_name>)
/core-service=management/management-interface=http-interface:write-attribute(name=http-authentication-factory, value=<authentication_factory_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sasl-authentication-factory를 사용하여 관리 CLI를 보호합니다.구문
/core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade,value={enabled=true,sasl-authentication-factory=<sasl_authentication_factory>})/core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade,value={enabled=true,sasl-authentication-factory=<sasl_authentication_factory>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
서버를 다시 로드합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
관리 콘솔에 인증 및 권한 부여가 필요한지 확인하려면
http://127.0.0.1:9990/console/index.html에서 관리 콘솔로 이동합니다.사용자 이름과 암호를 입력하라는 메시지가 표시됩니다.
관리 CLI에 인증 및 권한 부여가 필요한지 확인하려면 다음 명령을 사용하여 관리 CLI를 시작합니다.
bin/jboss-cli.sh --connect
$ bin/jboss-cli.sh --connectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 이름과 암호를 입력하라는 메시지가 표시됩니다.
2.2. 보안 도메인을 사용하여 애플리케이션 사용자를 인증 및 권한 부여 링크 복사링크가 클립보드에 복사되었습니다!
보안 영역을 참조하는 보안 도메인을 사용하여 애플리케이션 사용자를 인증하고 권한을 부여합니다. 애플리케이션 개발 절차는 예제로만 제공됩니다.
2.2.1. 간단한 웹 애플리케이션 개발 링크 복사링크가 클립보드에 복사되었습니다!
보안 영역 구성 예제와 함께 간단한 웹 애플리케이션을 생성할 수 있습니다.
다음 절차는 예제로만 제공됩니다. 보안하려는 애플리케이션이 이미 있는 경우 이를 건너뛰고 애플리케이션에 인증 및 권한 부여 추가로 직접 이동할 수 있습니다.
2.2.1.1. 웹 애플리케이션 개발을 위한 Maven 프로젝트 생성 링크 복사링크가 클립보드에 복사되었습니다!
웹 애플리케이션을 생성하려면 필수 종속성 및 디렉터리 구조가 포함된 Maven 프로젝트를 생성합니다.
다음 절차는 예제로만 제공되며 프로덕션 환경에서 사용해서는 안 됩니다. JBoss EAP용 애플리케이션 생성에 대한 자세한 내용은 JBoss EAP 배포를 위한 애플리케이션 개발 시작하기 를 참조하십시오.
사전 요구 사항
- Maven이 설치되어 있어야 합니다. 자세한 내용은 Apache Maven 다운로드를 참조하십시오.
프로세스
mvn명령을 사용하여 Maven 프로젝트를 설정합니다. 명령은 프로젝트에 대한 디렉터리 구조와pom.xml구성 파일을 생성합니다.구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 애플리케이션 루트 디렉터리로 이동합니다.
구문
cd <name-of-your-application>
$ cd <name-of-your-application>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
cd simple-webapp-example
$ cd simple-webapp-exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 생성된
pom.xml파일의 내용을 다음 텍스트로 바꿉니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
애플리케이션 루트 디렉터리에 다음 명령을 입력합니다.
mvn install
$ mvn installCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 유사한 출력이 표시됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이제 웹 애플리케이션을 생성할 수 있습니다.
2.2.1.2. 웹 애플리케이션 생성 링크 복사링크가 클립보드에 복사되었습니다!
로그인한 사용자의 주체에서 얻은 사용자 이름을 반환하는 서블릿이 포함된 웹 애플리케이션을 생성합니다. 로그인한 사용자가 없는 경우 서블릿은 "NO AUTHENTICATED USER" 텍스트를 반환합니다.
이 절차에서 < ;application_home >은 애플리케이션의 pom.xml 구성 파일이 포함된 디렉터리를 나타냅니다.
사전 요구 사항
Maven 프로젝트를 생성했습니다.
자세한 내용은 웹 애플리케이션 개발을 위한 Maven 프로젝트 생성 을 참조하십시오.
- JBoss EAP가 실행 중입니다.
프로세스
Java 파일을 저장할 디렉터리를 만듭니다.
구문
mkdir -p src/main/java/<path_based_on_artifactID>
$ mkdir -p src/main/java/<path_based_on_artifactID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
mkdir -p src/main/java/com/example/app
$ mkdir -p src/main/java/com/example/appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 디렉터리로 이동합니다.
구문
cd src/main/java/<path_based_on_artifactID>
$ cd src/main/java/<path_based_on_artifactID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
cd src/main/java/com/example/app
$ cd src/main/java/com/example/appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 콘텐츠를 사용하여
SecuredServlet.java파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 애플리케이션 루트 디렉터리에서 다음 명령을 사용하여 애플리케이션을 컴파일합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 애플리케이션을 배포합니다.
mvn wildfly:deploy
$ mvn wildfly:deployCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
브라우저에서
http://localhost:8080/simple-webapp-example/secured로 이동합니다.다음 메시지가 표시됩니다.
Secured Servlet Current Principal 'NO AUTHENTICATED USER'
Secured Servlet Current Principal 'NO AUTHENTICATED USER'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인증 메커니즘이 추가되지 않으므로 애플리케이션에 액세스할 수 있습니다.
이제 인증된 사용자만 액세스할 수 있도록 보안 도메인을 사용하여 이 애플리케이션을 보호할 수 있습니다.
2.2.2. 애플리케이션에 인증 및 권한 부여 추가 링크 복사링크가 클립보드에 복사되었습니다!
보안 도메인을 사용하여 웹 애플리케이션에 인증 및 권한 부여를 추가하여 보호할 수 있습니다. 인증 및 권한 부여를 추가한 후 웹 애플리케이션에 액세스하려면 사용자가 로그인 자격 증명을 입력해야 합니다.
사전 요구 사항
- 보안 영역을 참조하는 보안 도메인을 생성했습니다.
- JBoss EAP에 애플리케이션을 배포했습니다.
- JBoss EAP가 실행 중입니다.
프로세스
undertow 하위 시스템에서application-security-domain을 구성합니다.구문
/subsystem=undertow/application-security-domain=<application_security_domain_name>:add(security-domain=<security_domain_name>)
/subsystem=undertow/application-security-domain=<application_security_domain_name>:add(security-domain=<security_domain_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=undertow/application-security-domain=exampleApplicationSecurityDomain:add(security-domain=exampleSecurityDomain) {"outcome" => "success"}/subsystem=undertow/application-security-domain=exampleApplicationSecurityDomain:add(security-domain=exampleSecurityDomain) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 애플리케이션 리소스를 보호하도록 애플리케이션의
web.xml을 구성합니다.구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고다른
auth-method를 사용할 수 있습니다.애플리케이션에
jboss-web.xml파일을 생성하거나undertow하위 시스템에서 기본 보안 도메인을 설정하여 애플리케이션을 구성하십시오.애플리케이션의 article-
INF 디렉터리에을 참조하는application-security-domainjboss-web.xml파일을 만듭니다.구문
<jboss-web> <security-domain> <!-- The security domain to associate with the application --></security-domain> </jboss-web>
<jboss-web> <security-domain> <!-- The security domain to associate with the application --></security-domain> </jboss-web>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
<jboss-web> <security-domain>exampleApplicationSecurityDomain</security-domain> </jboss-web>
<jboss-web> <security-domain>exampleApplicationSecurityDomain</security-domain> </jboss-web>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 애플리케이션의
undertow하위 시스템에서 기본 보안 도메인을 설정합니다.구문
/subsystem=undertow:write-attribute(name=default-security-domain,value=<application_security_domain_to_use>)
/subsystem=undertow:write-attribute(name=default-security-domain,value=<application_security_domain_to_use>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
서버를 다시 로드합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
애플리케이션 루트 디렉터리에서 다음 명령을 사용하여 애플리케이션을 컴파일합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 애플리케이션을 배포합니다.
mvn wildfly:deploy
$ mvn wildfly:deployCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
브라우저에서
http://localhost:8080/simple-webapp-example/secured로 이동합니다. 이제 애플리케이션에 액세스하려면 인증이 필요함을 확인하는 로그인 프롬프트가 표시됩니다.
이제 보안 도메인을 사용하여 애플리케이션이 보호되며 사용자는 인증 후만 로그인할 수 있습니다. 또한 지정된 역할이 있는 사용자만 애플리케이션에 액세스할 수 있습니다.
3장. 로컬 사용자에게 쉽게 인증 및 권한 부여를 허용하도록 ID 영역을 사용하여 Elytron 구성 링크 복사링크가 클립보드에 복사되었습니다!
Elytron에서 제공하는 identity-realm 을 사용하여 로컬 사용자가 JBoss EAP 관리 인터페이스에 연결할 수 있습니다.
JBoss EAP 관리 CLI는 local 이라는 identity-realm 을 사용하도록 사전 구성되어 있습니다. 이를 통해 로컬 사용자는 인증 정보를 제공하지 않고도 연결할 수 있습니다. ID 영역은 JBOSS-LOCAL-USER 메커니즘에서만 사용할 수 있습니다.
3.1. ID 영역을 사용하여 관리 인터페이스 보안 링크 복사링크가 클립보드에 복사되었습니다!
JBOSS-LOCAL-USER 메커니즘이 있는 identity-realm 보안 영역을 사용하여 관리 인터페이스를 보호할 수 있습니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
로컬
identity-realm을 만듭니다.구문
/subsystem=elytron/identity-realm=<local_identity_realm_name>:add(identity="$local",attribute-name=<attribute_name>,attribute-values=<attribute_value>)
/subsystem=elytron/identity-realm=<local_identity_realm_name>:add(identity="$local",attribute-name=<attribute_name>,attribute-values=<attribute_value>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/identity-realm=exampleLocalIdentityRealm:add(identity="$local",attribute-name=AttributeName,attribute-values=Value)
/subsystem=elytron/identity-realm=exampleLocalIdentityRealm:add(identity="$local",attribute-name=AttributeName,attribute-values=Value)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: $local 이외의 로컬
identity-realm에 이름을 사용하려면구성 가능한-sasl-server-factory= <sasl_server_factory>에서속성 값을 변경합니다.wildfly.sasl.local-user.default-user구문
/subsystem=elytron/configurable-sasl-server-factory=<sasl_server_factory>:write-attribute(name=properties,value={"wildfly.sasl.local-user.default-user" => "<new_local_username>", "wildfly.sasl.local-user.challenge-path" => expression "${jboss.server.temp.dir}/auth"})/subsystem=elytron/configurable-sasl-server-factory=<sasl_server_factory>:write-attribute(name=properties,value={"wildfly.sasl.local-user.default-user" => "<new_local_username>", "wildfly.sasl.local-user.challenge-path" => expression "${jboss.server.temp.dir}/auth"})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/configurable-sasl-server-factory=configured:write-attribute(name=properties,value={"wildfly.sasl.local-user.default-user" => "john", "wildfly.sasl.local-user.challenge-path" => expression "${jboss.server.temp.dir}/auth"})/subsystem=elytron/configurable-sasl-server-factory=configured:write-attribute(name=properties,value={"wildfly.sasl.local-user.default-user" => "john", "wildfly.sasl.local-user.challenge-path" => expression "${jboss.server.temp.dir}/auth"})Copy to Clipboard Copied! Toggle word wrap Toggle overflow
생성한
identity-realm을 참조하는 보안 도메인을 생성합니다.구문
/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<local_identity_realm_name>,permission-mapper=<permission_mapper_name>,realms=[{realm=<Local_identity_realm_name>}])/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<local_identity_realm_name>,permission-mapper=<permission_mapper_name>,realms=[{realm=<Local_identity_realm_name>}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleLocalIdentityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleLocalIdentityRealm}])/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleLocalIdentityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleLocalIdentityRealm}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow SASL 인증 팩토리를 추가합니다.
구문
/subsystem=elytron/sasl-authentication-factory=<sasl_auth_factory_name>:add(security-domain=<security_domain_name>,sasl-server-factory=configured,mechanism-configurations=[{mechanism-name=JBOSS-LOCAL-USER}])/subsystem=elytron/sasl-authentication-factory=<sasl_auth_factory_name>:add(security-domain=<security_domain_name>,sasl-server-factory=configured,mechanism-configurations=[{mechanism-name=JBOSS-LOCAL-USER}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/sasl-authentication-factory=exampleSaslAuthenticationFactory:add(security-domain=exampleSecurityDomain,sasl-server-factory=configured,mechanism-configurations=[{mechanism-name=JBOSS-LOCAL-USER}])/subsystem=elytron/sasl-authentication-factory=exampleSaslAuthenticationFactory:add(security-domain=exampleSecurityDomain,sasl-server-factory=configured,mechanism-configurations=[{mechanism-name=JBOSS-LOCAL-USER}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리 인터페이스에 대해 SASL 인증 팩토리를 활성화합니다.
구문
/core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade,value={enabled=true,sasl-authentication-factory=<sasl_auth_factory_name>})/core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade,value={enabled=true,sasl-authentication-factory=<sasl_auth_factory_name>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade,value={enabled=true,sasl-authentication-factory=exampleSaslAuthenticationFactory})/core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade,value={enabled=true,sasl-authentication-factory=exampleSaslAuthenticationFactory})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리 인터페이스를 다시 로드합니다.
reload
$ reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4장. Elytron에서 감사 로깅 구성 링크 복사링크가 클립보드에 복사되었습니다!
Elytron을 사용하여 트리거 이벤트에 대한 보안 감사를 완료할 수 있습니다. 보안 감사는 권한 부여 또는 인증 시도에 대한 응답으로 로그에 대한 쓰기와 같은 이벤트를 트리거하는 것을 나타냅니다.
이벤트에서 수행되는 보안 감사 유형은 보안 영역 구성에 따라 다릅니다.
4.1. Elytron 감사 로깅 링크 복사링크가 클립보드에 복사되었습니다!
elytron 하위 시스템을 사용하여 감사 로깅을 활성화한 후 애플리케이션 서버 내에서 Elytron 인증 및 권한 부여 이벤트를 로깅할 수 있습니다. Elytron은 감사 로그 항목을 JSON 또는 ScanSetting PLE 형식으로 저장합니다. 사람이 읽을 수 있는 텍스트 형식 또는 에 개별 이벤트를 저장하기 위해 ScanSetting JSON PLE 을 사용합니다.
Elytron 감사 로깅은 JBoss EAP 관리 인터페이스의 감사 로깅과 같은 다른 유형의 감사 로깅과 다릅니다.
Elytron은 기본적으로 감사 로깅을 비활성화하지만 다음 로그 처리기를 구성하여 감사 로깅을 활성화할 수 있습니다. 보안 도메인에 로그 처리기를 추가할 수도 있습니다.
파일 감사 로깅
자세한 내용은 Elytron에서 파일 감사 로깅 활성화를 참조하십시오.
주기적인 파일 감사 로깅
자세한 내용은 Elytron에서 정기적인 회전 파일 감사 로깅 활성화를 참조하십시오.
파일 감사 로깅 크기 교체
자세한 내용은 Elytron에서 크기 회전 파일 감사 로깅 활성화를 참조하십시오.
syslog감사 로깅자세한 내용은 Elytron에서 syslog 감사 로깅 활성화를 참조하십시오.
사용자 정의 감사 로깅
자세한 내용은 Elytron에서 사용자 지정 보안 이벤트 리스너 사용을 참조하십시오.
aggregate-security-event-listener 리소스 를 사용하여 로거와 같은 더 많은 대상에 보안 이벤트를 보낼 수 있습니다. aggregate-security-event-listener 리소스는 집계 리스너 정의에 지정된 모든 리스너에 모든 이벤트를 제공합니다.
4.2. Elytron에서 파일 감사 로깅 활성화 링크 복사링크가 클립보드에 복사되었습니다!
파일 감사 로깅은 감사 로그 메시지를 파일 시스템 내의 단일 파일에 저장합니다.
기본적으로 Elytron은 local-audit 를 파일 감사 로거로 지정합니다.
독립 실행형 서버의 EAP_HOME/standalone/log/audit.log 또는 관리형 도메인에 대한 EAP_HOME/domain/log/audit.log 에 Elytron 감사 로그를 쓸 수 있도록 local-audit 를 활성화해야 합니다.
사전 요구 사항
애플리케이션을 보호했습니다.
자세한 내용은 Elytron에서
파일 시스템생성 을 참조하십시오.
프로세스
파일 감사 로그를 생성합니다.
구문
/subsystem=elytron/file-audit-log=<audit_log_name>:add(path="<path_to_log_file>",format=<format_type>,synchronized=<whether_to_log_immediately>)
/subsystem=elytron/file-audit-log=<audit_log_name>:add(path="<path_to_log_file>",format=<format_type>,synchronized=<whether_to_log_immediately>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/file-audit-log=exampleFileAuditLog:add(path="file-audit.log",relative-to=jboss.server.log.dir,format=SIMPLE,synchronized=true)
/subsystem=elytron/file-audit-log=exampleFileAuditLog:add(path="file-audit.log",relative-to=jboss.server.log.dir,format=SIMPLE,synchronized=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 보안 도메인에 파일 감사 로그를 추가합니다.
구문
/subsystem=elytron/security-domain=<security_domain_name>:write-attribute(name=security-event-listener,value=<audit_log_name>)
/subsystem=elytron/security-domain=<security_domain_name>:write-attribute(name=security-event-listener,value=<audit_log_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/security-domain=exampleSecurityDomain:write-attribute(name=security-event-listener,value=exampleFileAuditLog)
/subsystem=elytron/security-domain=exampleSecurityDomain:write-attribute(name=security-event-listener,value=exampleFileAuditLog)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
브라우저에서 보안 애플리케이션에 로그인합니다.
예를 들어 보안 도메인을 사용하여 애플리케이션 사용자를 인증하고 권한을 부여하는 데 생성된 애플리케이션에 로그인하려면 http://localhost:8080/simple-webapp-example/secured 로 이동한 후 로그인합니다.
감사 로그를 저장하도록 구성된 디렉터리로 이동합니다. 프로세스에서 예제 명령을 사용하는 경우 디렉터리는 EAP_HOME/standalone/log입니다.
file-audit.log파일이 생성됩니다. 애플리케이션에 로그인하여 트리거한 이벤트의 로그를 포함합니다.file-audit.log 파일 예
2023-10-24 23:31:04,WARNING,{event=SecurityPermissionCheckSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true,permission=[type=org.wildfly.security.auth.permission.LoginPermission,actions=,name=]} 2023-10-24 23:31:04,WARNING,{event=SecurityAuthenticationSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true}2023-10-24 23:31:04,WARNING,{event=SecurityPermissionCheckSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true,permission=[type=org.wildfly.security.auth.permission.LoginPermission,actions=,name=]} 2023-10-24 23:31:04,WARNING,{event=SecurityAuthenticationSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. Elytron에서 주기적으로 파일 감사 로깅 활성화 링크 복사링크가 클립보드에 복사되었습니다!
elytron 하위 시스템을 사용하여 독립 실행형 서버에 대해 주기적으로 파일 감사 로깅을 활성화하거나 관리형 도메인으로 실행되는 서버를 활성화할 수 있습니다.
정기적으로 파일 감사 로깅을 순환하면 구성된 일정에 따라 감사 로그 파일이 자동으로 순환됩니다. 주기적으로 파일 감사 로깅은 기본 파일 감사 로깅과 유사하지만 주기적으로 파일 감사 로깅에는 추가 속성인 접미사 가 포함되어 있습니다.
접미사 특성의 값은 .yyyy-MM-dd 와 같은 java.time.format.DateTimeFormatter 형식을 사용하여 지정된 날짜입니다. Elytron은 접미사로 제공된 값에서 순환 기간을 자동으로 계산합니다. elytron 하위 시스템은 로그 파일 이름의 끝에 접미사를 추가합니다.
사전 요구 사항
애플리케이션을 보호했습니다.
자세한 내용은 Elytron에서
파일 시스템생성 을 참조하십시오.
프로세스
주기적인 회전 파일 감사 로그를 생성합니다.
구문
/subsystem=elytron/periodic-rotating-file-audit-log=<periodic_audit_log_name>:add(path="<periodic_audit_log_filename>",format=<record_format>,synchronized=<whether_to_log_immediately>,suffix="<suffix_in_DateTimeFormatter_format>")
/subsystem=elytron/periodic-rotating-file-audit-log=<periodic_audit_log_name>:add(path="<periodic_audit_log_filename>",format=<record_format>,synchronized=<whether_to_log_immediately>,suffix="<suffix_in_DateTimeFormatter_format>")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/periodic-rotating-file-audit-log=examplePreiodicFileAuditLog:add(path="periodic-file-audit.log",relative-to=jboss.server.log.dir,format=SIMPLE,synchronized=true,suffix="yyyy-MM-dd")
/subsystem=elytron/periodic-rotating-file-audit-log=examplePreiodicFileAuditLog:add(path="periodic-file-audit.log",relative-to=jboss.server.log.dir,format=SIMPLE,synchronized=true,suffix="yyyy-MM-dd")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 보안 도메인에 주기적으로 파일 감사 로거를 추가합니다.
구문
/subsystem=elytron/security-domain=<security_domain_name>:write-attribute(name=security-event-listener,value=<periodic_audit_log_name>)
/subsystem=elytron/security-domain=<security_domain_name>:write-attribute(name=security-event-listener,value=<periodic_audit_log_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/security-domain=exampleSecurityDomain:write-attribute(name=security-event-listener,value=examplePreiodicFileAuditLog)
/subsystem=elytron/security-domain=exampleSecurityDomain:write-attribute(name=security-event-listener,value=examplePreiodicFileAuditLog)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
브라우저에서 보안 애플리케이션에 로그인합니다.
예를 들어 보안 도메인을 사용하여 애플리케이션 사용자를 인증하고 권한을 부여하는 데 생성된 애플리케이션에 로그인하려면 http://localhost:8080/simple-webapp-example/secured 로 이동한 후 로그인합니다.
감사 로그를 저장하도록 구성된 디렉터리로 이동합니다. 프로세스에서 예제 명령을 사용하는 경우 디렉터리는 EAP_HOME/standalone/log입니다.
periodic-file-audit.log라는 파일이 생성됩니다. 애플리케이션에 로그인하여 트리거한 이벤트의 로그를 포함합니다.periodic-file-audit.log 파일의 예
2023-10-24 23:31:04,WARNING,{event=SecurityPermissionCheckSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true,permission=[type=org.wildfly.security.auth.permission.LoginPermission,actions=,name=]} 2023-10-24 23:31:04,WARNING,{event=SecurityAuthenticationSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true}2023-10-24 23:31:04,WARNING,{event=SecurityPermissionCheckSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true,permission=[type=org.wildfly.security.auth.permission.LoginPermission,actions=,name=]} 2023-10-24 23:31:04,WARNING,{event=SecurityAuthenticationSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. Elytron에서 크기 회전 파일 감사 로깅 활성화 링크 복사링크가 클립보드에 복사되었습니다!
elytron 하위 시스템을 사용하여 독립 실행형 서버의 크기 회전 파일 감사 로깅 또는 관리형 도메인으로 실행되는 서버를 활성화할 수 있습니다.
로그 파일이 구성된 파일 크기에 도달하면 감사 로그 파일을 자동으로 회전합니다. 파일 감사 로깅 크기 교체는 기본 파일 감사 로깅과 유사하지만 크기 회전 파일 감사 로깅에는 추가 속성이 포함됩니다.
로그 파일 크기가 rotate-size 특성에 정의된 제한을 초과하면 Elytron은 접미사 .1 을 현재 파일의 끝에 추가하고 새 로그 파일을 만듭니다. 기존 로그 파일마다 Elytron이 접미사를 하나씩 늘립니다. 예를 들어 Elytron은 audit_log.1 의 이름을 audit_log.2 로 변경합니다. Elytron은 로그 파일 양이 max-backup-index 로 정의된 대로 최대 로그 파일 수에 도달할 때까지 계속 증가합니다. 로그 파일이 max-backup-index 값을 초과하면 Elytron은 파일을 제거합니다. 예를 들어 max-backup-index 가 "98"를 max-backup-index 값으로 정의하는 경우 audit_log.99 파일은 제한을 초과합니다.
사전 요구 사항
애플리케이션을 보호했습니다.
자세한 내용은 Elytron에서
파일 시스템생성 을 참조하십시오.
프로세스
크기 회전 파일 감사 로그를 생성합니다.
구문
/subsystem=elytron/size-rotating-file-audit-log=<audit_log_name>:add(path="<path_to_log_file>",format=<record_format>,synchronized=<whether_to_log_immediately>,rotate-size="<max_file_size_before_rotation>",max-backup-index=<max_number_of_backup_files>)
/subsystem=elytron/size-rotating-file-audit-log=<audit_log_name>:add(path="<path_to_log_file>",format=<record_format>,synchronized=<whether_to_log_immediately>,rotate-size="<max_file_size_before_rotation>",max-backup-index=<max_number_of_backup_files>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/size-rotating-file-audit-log=exampleSizeFileAuditLog:add(path="size-file-audit.log",relative-to=jboss.server.log.dir,format=SIMPLE,synchronized=true,rotate-size="10m",max-backup-index=10)
/subsystem=elytron/size-rotating-file-audit-log=exampleSizeFileAuditLog:add(path="size-file-audit.log",relative-to=jboss.server.log.dir,format=SIMPLE,synchronized=true,rotate-size="10m",max-backup-index=10)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 보안 도메인에 감사 로거 크기 교체를 추가합니다.
구문
/subsystem=elytron/security-domain=<domain_size_logger>:write-attribute(name=security-event-listener,value=<audit_log_name>)
/subsystem=elytron/security-domain=<domain_size_logger>:write-attribute(name=security-event-listener,value=<audit_log_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/security-domain=exampleSecurityDomain:write-attribute(name=security-event-listener,value=exampleSizeFileAuditLog)
/subsystem=elytron/security-domain=exampleSecurityDomain:write-attribute(name=security-event-listener,value=exampleSizeFileAuditLog)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
브라우저에서 보안 애플리케이션에 로그인합니다.
예를 들어 보안 도메인을 사용하여 애플리케이션 사용자를 인증하고 권한을 부여하는 데 생성된 애플리케이션에 로그인하려면 http://localhost:8080/simple-webapp-example/secured 로 이동한 후 로그인합니다.
감사 로그를 저장하도록 구성된 디렉터리로 이동합니다. 프로세스에서 예제 명령을 사용하는 경우 디렉터리는 EAP_HOME/standalone/log입니다.
size-file-audit.log라는 파일이 생성됩니다. 애플리케이션에 로그인하여 트리거한 이벤트의 로그를 포함합니다.size-file-audit.log 파일의 예
2023-10-24 23:31:04,WARNING,{event=SecurityPermissionCheckSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true,permission=[type=org.wildfly.security.auth.permission.LoginPermission,actions=,name=]} 2023-10-24 23:31:04,WARNING,{event=SecurityAuthenticationSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true}2023-10-24 23:31:04,WARNING,{event=SecurityPermissionCheckSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true,permission=[type=org.wildfly.security.auth.permission.LoginPermission,actions=,name=]} 2023-10-24 23:31:04,WARNING,{event=SecurityAuthenticationSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5. Elytron에서 syslog 감사 로깅 활성화 링크 복사링크가 클립보드에 복사되었습니다!
elytron 하위 시스템을 사용하여 독립 실행형 서버에 대해 syslog 감사 로깅을 활성화하거나 관리형 도메인으로 실행되는 서버를 활성화할 수 있습니다. syslog 감사 로깅을 사용하는 경우 로깅 결과를 syslog 서버에 보내 로컬 파일에 로깅하는 것보다 더 많은 보안 옵션을 제공합니다.
처리기는 syslog 서버의 호스트 이름 및 syslog syslog 서버가 수신 대기하는 포트와 같은 syslog 서버에 연결하는 데 사용되는 매개변수를 지정합니다. 여러 syslog 처리기를 정의하고 동시에 활성화할 수 있습니다.
지원되는 로그 형식에는 RFC5424 및 RFC3164 가 포함됩니다. 지원되는 전송 프로토콜에는 UDP, TCP 및 SSL을 사용하는 TCP가 포함됩니다.
첫 번째 인스턴스에 대한 syslog 를 정의할 때 로거는 다음 예와 같이 메시지를 syslog 서버로 포함하는 INFORMATIONAL 우선순위 이벤트를 보냅니다.
"Elytron audit logging enabled with RFC format: <format>"
"Elytron audit logging enabled with RFC format: <format>"
<format >은 감사 로깅 처리기에 대해 구성된 RFC(Request for Comments) 형식을 나타내며 기본값은 RFC5424 입니다.
사전 요구 사항
애플리케이션을 보호했습니다.
자세한 내용은 Elytron에서
파일 시스템생성 을 참조하십시오.
프로세스
syslog처리기를 추가합니다.구문
/subsystem=elytron/syslog-audit-log=<syslog_audit_log_name>:add(host-name=<record_host_name>,port=<syslog_server_port_number>,server-address=<syslog_server_address>,format=<record_format>, transport=<transport_layer_protocol>)
/subsystem=elytron/syslog-audit-log=<syslog_audit_log_name>:add(host-name=<record_host_name>,port=<syslog_server_port_number>,server-address=<syslog_server_address>,format=<record_format>, transport=<transport_layer_protocol>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow TLS를 통해
syslog서버에 로그를 보낼 수도 있습니다.TLS를 통해 로그를 전송하기 위한
syslog구성의 구문/subsystem=elytron/syslog-audit-log=<syslog_audit_log_name>:add(transport=SSL_TCP,server-address=<syslog_server_address>,port=<syslog_server_port_number>,host-name=<record_host_name>,ssl-context=<client_ssl_context>)
/subsystem=elytron/syslog-audit-log=<syslog_audit_log_name>:add(transport=SSL_TCP,server-address=<syslog_server_address>,port=<syslog_server_port_number>,host-name=<record_host_name>,ssl-context=<client_ssl_context>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 보안 도메인에
syslog감사 로거를 추가합니다.구문
/subsystem=elytron/security-domain=<security_domain_name>:write-attribute(name=security-event-listener,value=<syslog_audit_log_name>)
/subsystem=elytron/security-domain=<security_domain_name>:write-attribute(name=security-event-listener,value=<syslog_audit_log_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/security-domain=exampleSecurityDomain:write-attribute(name=security-event-listener,value=exampleSyslog)
/subsystem=elytron/security-domain=exampleSecurityDomain:write-attribute(name=security-event-listener,value=exampleSyslog)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.6. Elytron에서 사용자 정의 보안 이벤트 리스너 사용 링크 복사링크가 클립보드에 복사되었습니다!
Elytron을 사용하여 사용자 지정 이벤트 리스너를 정의할 수 있습니다. 사용자 정의 이벤트 리스너는 들어오는 보안 이벤트를 처리합니다. 사용자 정의 감사 로깅 목적으로 이벤트 리스너를 사용하거나 이벤트 리스너를 사용하여 내부 ID 스토리지에 대해 사용자를 인증할 수 있습니다.
모듈 관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 기능은 기술 프리뷰 기능으로만 제공됩니다. module 명령은 관리형 도메인에서 또는 원격 관리 CLI와 연결할 때 사용하기에 적합하지 않습니다. 프로덕션 환경에서 모듈을 수동으로 추가하거나 제거해야 합니다.
기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있으며 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
사전 요구 사항
애플리케이션을 보호했습니다.
자세한 내용은 Elytron에서
파일 시스템생성 을 참조하십시오.
프로세스
java.util.function.Consumer<org.wildfly.security.auth.event.SecurityEvent> 인터페이스를 구현하는 클래스를 생성합니다.지정된 인터페이스를 사용하는 Java 클래스를 생성하는 예:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제의 Java 클래스는 사용자가 인증에 성공하거나 실패할 때마다 메시지를 출력합니다.
사용자 지정 이벤트 리스너를 JBoss EAP에 모듈로 제공하는 JAR 파일을 추가합니다.
다음은 사용자 정의 이벤트 리스너를 Elytron에 모듈로 추가하는 관리 CLI 명령의 예입니다.
모듈명령을 사용하여 사용자 지정 이벤트 리스너를 Elytron에 모듈로 추가하는 예제입니다./subsystem=elytron/custom-security-event-listener=<listener_name>:add(module=<module_name>, class-name=<class_name>)
/subsystem=elytron/custom-security-event-listener=<listener_name>:add(module=<module_name>, class-name=<class_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 보안 도메인의 사용자 지정 이벤트 리스너를 참조합니다.
ApplicationDomain에서 사용자 지정 이벤트 리스너를 참조하는 예:/subsystem=elytron/security-domain=<domain_name>:write-attribute(name=security-event-listener, value=<listener_name>)
/subsystem=elytron/security-domain=<domain_name>:write-attribute(name=security-event-listener, value=<listener_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 시작합니다.
reload
$ reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이벤트 리스너는 지정된 보안 도메인에서 보안 이벤트를 수신합니다.
5장. reference 링크 복사링크가 클립보드에 복사되었습니다!
5.1. custom-realm 속성 링크 복사링크가 클립보드에 복사되었습니다!
특성을 설정하여 custom-realm 을 구성할 수 있습니다.
| 속성 | 설명 |
|---|---|
|
| 사용자 지정 영역 구현의 정규화된 클래스 이름입니다. |
|
|
사용자 지정 영역에 대한 선택적 |
|
| 사용자 지정 영역을 로드하는 데 사용할 모듈의 이름입니다. |
5.2. filesystem-realm 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성을 설정하여 filesystem-realm 을 구성할 수 있습니다.
| 속성 | 설명 |
|---|---|
| credential-store |
영역의 일반 암호, 해시된 암호 및 속성을 암호화하고 해독하는 시크릿 키가 포함된 인증 정보 저장소에 대한 참조입니다. 이 속성을 사용하는 경우 |
| 인코딩된 |
ID 이름을 파일 이름에 인코딩해야 하는지(Base32)를 저장해야 하는지 여부를 나타내는 속성입니다. 기본값은 |
| hash-charset | password 문자열을 바이트 배열로 변환할 때 사용할 문자 집합입니다. 기본값은 UTF-8입니다. |
| 해시 인코딩 | 일반 텍스트로 저장되지 않는 경우 암호의 문자열 형식입니다. 다음 중 하나일 수 있습니다.
기본값은 base64입니다. |
| key-store |
무결성을 확인하는 데 사용할 키 쌍이 포함된 키 저장소에 대한 참조입니다. 이 속성을 정의할 때 |
| key-store-alias |
무결성을 확인하는 데 사용할 키 저장소 내에서 개인 키 항목을 식별하는 별칭입니다. |
| 수준 |
적용할 디렉터리 해시의 수준 수입니다. 기본값은 |
| path | 영역을 포함하는 디렉터리의 경로입니다. |
| relative-to |
경로와 함께 사용할 사전 정의된 상대 |
| secret-key |
영역의 일반 암호, 해시된 암호 및 특성을 암호화하고 해독하는 시크릿 키의 별칭입니다. credentials |
5.3. file-audit-log 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
|
|
모든 감사 이벤트 이후 출력 스트림에 플러시가 필요한지 여부를 지정합니다. 특성을 정의하지 않으면 |
|
|
감사 파일 인코딩을 지정합니다. 기본값은
|
|
|
기본값은 ScanSetting |
|
| 로그 파일의 위치를 정의합니다. |
|
| 선택적 속성입니다. 로그 파일의 위치를 정의합니다. |
|
|
기본값은 |
5.4. HTTP-authentication-factory 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성을 설정하여 http-authentication-factory 를 구성할 수 있습니다.
| 속성 | 설명 |
|---|---|
| http-server-mechanism-factory |
이 |
| mechanism-configurations | 메커니즘별 구성 목록입니다. |
| security-domain | 리소스와 연결할 보안 도메인입니다. |
| 속성 | 설명 |
|---|---|
| credential-security-factory | 메커니즘에 필요한 대로 인증 정보를 얻는 데 사용할 보안 팩토리입니다. |
| final-principal-transformer | 이 메커니즘 영역에 적용할 최종 주요 변환기입니다. |
| host-name | 이 구성이 적용되는 호스트 이름입니다. |
| mechanism-name | 이 구성은 지정된 이름의 메커니즘이 사용되는 경우에만 적용됩니다. 이 속성이 생략되면 모든 메커니즘 이름과 일치합니다. |
| mechanism-realm-configurations | 메커니즘에서 이해할 수 있는 영역 이름의 정의 목록입니다. |
| pre-realm-principal-transformer | 영역을 선택하기 전에 적용할 주요 변환기입니다. |
| post-realm-principal-transformer | 영역을 선택한 후 적용할 주요 변환기입니다. |
| 프로토콜 | 이 구성이 적용되는 프로토콜입니다. |
| realm-mapper | 메커니즘에서 사용할 영역 매퍼입니다. |
| 속성 | 설명 |
|---|---|
| final-principal-transformer | 이 메커니즘 영역에 적용할 최종 주요 변환기입니다. |
| post-realm-principal-transformer | 영역을 선택한 후 적용할 주요 변환기입니다. |
| pre-realm-principal-transformer | 영역을 선택하기 전에 적용할 주요 변환기입니다. |
| realm-mapper | 메커니즘에서 사용할 영역 매퍼입니다. |
| realm-name | 메커니즘에서 제공할 영역의 이름입니다. |
5.5. identity-realm 속성 링크 복사링크가 클립보드에 복사되었습니다!
해당 속성을 설정하여 identity-realm 을 구성할 수 있습니다.
| 속성 | 설명 |
|---|---|
|
| 이 ID와 연결된 속성의 이름입니다. |
|
| ID 특성과 연결된 값 목록입니다. |
|
| 보안 영역에서 사용할 수 있는 ID입니다. |
5.6. JDBC-realm 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성을 설정하여 jdbc-realm 을 구성할 수 있습니다.
| 속성 | 설명 |
|---|---|
| hash-charset | password 문자열을 바이트 배열로 변환할 때 사용할 문자 집합입니다. 기본값은 UTF-8입니다. |
| principal-query | 특정 키 유형에 따라 사용자를 인증하는 데 사용되는 인증 쿼리 목록입니다. |
| 속성 | 설명 |
|---|---|
| attribute-mapping | 이 리소스에 대해 정의된 속성 매핑 목록입니다. |
| bcrypt-mapper |
SQL 쿼리에서 반환된 열을 |
| clear-password-mapper |
SQL 쿼리에서 반환된 열을 명확한 암호 키 유형에 매핑하는 키 매퍼입니다. 여기에는 사용자 암호를 나타내는 인증 쿼리의 열 인덱스인 |
| data-source | 데이터베이스에 연결하는 데 사용되는 데이터 소스의 이름입니다. |
| salted-simple-digest-mapper |
SQL 쿼리에서 반환된 열을 |
| scram-mapper |
SQL 쿼리에서 반환된 열을 |
| simple-digest-mapper |
SQL 쿼리에서 반환된 열을 |
| sql | 키를 특정 사용자의 테이블 열로 가져와 해당 유형과 적절하게 매핑하는 데 사용되는 SQL 문입니다. |
| 속성 | 설명 |
|---|---|
| 인덱스 | 매핑된 특성을 나타내는 SQL 쿼리의 열 인덱스입니다. |
| 다음으로 변경 | SQL 쿼리에서 반환된 열에서 매핑된 ID 특성의 이름입니다. |
5.7. key-store 속성 링크 복사링크가 클립보드에 복사되었습니다!
해당 속성을 설정하여 키 저장소를 구성할 수 있습니다.
| 속성 | 설명 |
|---|---|
| alias-filter | 키 저장소에서 반환된 별칭에 적용되는 필터는 쉼표로 구분된 별칭 목록 중 하나 또는 다음 형식 중 하나일 수 있습니다.
참고
|
| credential-reference |
키 저장소에 액세스하는 데 사용할 암호입니다. 이는 일반 텍스트로 지정하거나 인증 정보 |
| path | 키 저장소 파일의 경로입니다. |
| provider-name | 키 저장소를 로드하는 데 사용할 공급자의 이름입니다. 이 속성을 설정하면 지정된 유형의 키 저장소를 생성할 수 있는 첫 번째 공급자에 대한 검색이 비활성화됩니다. |
| 공급자 | 검색할 공급자 인스턴스 목록을 가져오는 데 사용해야 하는 공급자에 대한 참조입니다. 지정하지 않으면 글로벌 공급자 목록이 대신 사용됩니다. |
| relative-to |
이 저장소가 상대적인 기본 경로입니다. 이는 전체 경로이거나 |
| 필수 항목 |
|
| type |
키 저장소의 유형입니다(예: 참고 다음 키 저장소 유형이 자동으로 감지됩니다.
다른 키 저장소 유형을 수동으로 지정해야 합니다. 주요 저장소 유형의 전체 목록은 Oracle JDK 문서의 Java Cryptography Architecture Standard Algorithm Name Documentation for JDK 11 에서 확인할 수 있습니다. |
5.8. LDAP-realm 속성 링크 복사링크가 클립보드에 복사되었습니다!
특성을 설정하여 ldap-realm 을 구성할 수 있습니다.
| 속성 | 설명 |
|---|---|
| allow-blank-password | 이 영역에서 빈 암호 직접 확인을 지원하는지 여부입니다. 이 속성을 설정하지 않으면 빈 암호 시도가 거부됩니다. |
| dir-context |
LDAP 서버 연결에 사용되는 |
| direct-verification |
이 속성이 |
| hash-charset | password 문자열을 바이트 배열로 변환할 때 사용할 문자 집합입니다. 기본값은 UTF-8입니다. |
| 해시 인코딩 | 일반 텍스트로 저장되지 않는 경우 암호의 문자열 형식입니다. 다음 중 하나일 수 있습니다.
기본값은 base64입니다. |
| identity-mapping | 주체가 기본 LDAP 서버의 해당 항목에 매핑되는 방법을 정의하는 구성 옵션입니다. |
| 속성 | 설명 |
|---|---|
| attribute-mapping | 이 리소스에 대해 정의된 속성 매핑 목록입니다. |
| filter-name | 이름으로 ID를 가져오는 LDAP 필터입니다. |
| iterator-filter | 영역의 ID를 반복하는 LDAP 필터입니다. |
| new-identity-attributes |
새로 생성된 ID의 속성 목록입니다. 영역의 수정 가능성에 필요합니다. |
| new-identity-parent-dn | 새로 생성된 ID의 부모 DN입니다. 영역의 수정 가능성에 필요합니다. |
| otp-credential-mapper | OTP 인증 정보의 인증 정보 매핑입니다. |
| rdn-identifier | LDAP 항목에서 주체의 이름을 가져오는 데 사용할 주체 DN의 RDN 부분입니다. 이는 새 ID를 생성할 때도 사용됩니다. |
| search-base-dn | ID를 검색할 기본 DN입니다. |
| use-recursive-search |
이 속성이 |
| user-password-mapper | userPassword와 유사한 인증 정보의 인증 정보 매핑입니다. |
| x509-credential-mapper |
LDAP를 X509 자격 증명의 스토리지로 사용할 수 있는 구성입니다. |
| 속성 | 설명 |
|---|---|
| extract-rdn | raw 형식의 값이 X.500 형식인 경우 속성 값으로 사용할 RDN 키입니다. |
| filter |
특정 속성의 값을 가져오는 데 사용할 필터입니다. |
| filter-base-dn | 필터를 수행해야 하는 컨텍스트의 이름입니다. |
| from | ID 속성에 매핑할 LDAP 속성의 이름입니다. 정의되지 않은 경우 DN of entry가 사용됩니다. |
| reference | 값을 가져올 항목의 DN이 포함된 LDAP 속성의 이름입니다. |
| role-recursion |
재귀 역할 할당의 최대 깊이입니다. 재귀를 지정하지 않으려면 |
| role-recursion-name |
역할의 역할을 검색할 때 |
| search-recursive |
|
| 다음으로 변경 |
특정 LDAP 속성에서 매핑된 ID 속성의 이름입니다. 제공되지 않는 경우 속성 이름은 의 에 정의된 것과 동일합니다. |
| 속성 | 설명 |
|---|---|
| from | ID 속성에 매핑할 LDAP 속성의 이름입니다. 정의되지 않은 경우 DN of entry가 사용됩니다. |
| 확인 가능 |
|
| writable |
|
| 속성 | 설명 |
|---|---|
| algorithm-from | OTP 알고리즘의 LDAP 속성 이름입니다. |
| hash-from | OTP 해시 함수의 LDAP 속성 이름입니다. |
| seed-from | OTP 시드의 LDAP 속성 이름입니다. |
| sequence-from | OTP 시퀀스 번호의 LDAP 속성 이름입니다. |
| 속성 | 설명 |
|---|---|
| certificate-from | 인코딩된 사용자 인증서에 매핑할 LDAP 속성의 이름입니다. 정의되지 않은 경우 인코딩된 인증서가 확인되지 않습니다. |
| digest-algorithm |
사용자 인증서의 다이제스트를 계산하는 데 사용되는 해시 함수인 다이제스트 알고리즘입니다. |
| digest-from | 사용자 인증서 다이제스트에 매핑할 LDAP 속성의 이름입니다. 정의되지 않은 경우 인증서 다이제스트가 확인되지 않습니다. |
| serial-number-from | 사용자 인증서의 일련 번호에 매핑할 LDAP 속성의 이름입니다. 정의되지 않은 경우 일련 번호가 확인되지 않습니다. |
| subject-dn-from | 사용자 인증서의 제목 DN에 매핑할 LDAP 속성의 이름입니다. 정의되지 않은 경우 제목 DN이 확인되지 않습니다. |
5.9. 암호 매퍼 속성 링크 복사링크가 클립보드에 복사되었습니다!
암호 매퍼는 다음 알고리즘 유형 중 하나를 사용하여 데이터베이스의 여러 필드의 암호를 구성합니다.
- 텍스트 지우기
- 간단한 다이제스트
- Salted simple digest
- bcrypt
- SCRAM
- 모듈식 암호
암호 매퍼에는 다음과 같은 속성이 있습니다.
첫 번째 열의 인덱스는 모든 매퍼의 1 입니다.
| 매퍼 이름 | 속성 | 암호화 방법 |
|---|---|---|
|
|
| 암호화 없음. |
|
|
| 간단한 해시 메커니즘이 사용됩니다. |
|
|
| 간단한 해시 메커니즘은 Salt와 함께 사용됩니다. |
|
|
| 해시에 사용되는 Blowfish 알고리즘입니다. |
|
|
| Salted Challenge Response Authentication 메커니즘은 해시에 사용됩니다. |
|
|
| 모듈식-crypt 인코딩은 단일 문자열로 인코딩할 수 있는 여러 가지 정보를 지원합니다. 정보는 다음을 포함할 수 있습니다.
|
5.10. periodic-rotating-file-audit-log 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
|
|
모든 감사 이벤트 이후 출력 스트림에 플러시가 필요한지 여부를 지정합니다. 특성을 정의하지 않으면 |
|
|
감사 파일 인코딩을 지정합니다. 기본값은
|
|
|
사람이 읽을 수 있는 텍스트 형식 또는 |
|
| 로그 파일의 위치를 정의합니다. |
|
| 선택적 속성입니다. 로그 파일의 위치를 정의합니다. |
|
|
선택적 속성입니다. 순환된 로그에 날짜 접미사를 추가합니다. |
|
|
기본값은 |
5.11. properties-realm 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성을 설정하여 properties-realm 을 구성할 수 있습니다.
| 속성 | 설명 |
|---|---|
|
|
반환된 |
|
| 사용자 및 해당 그룹이 포함된 속성 파일입니다. |
|
|
클라이언트 제공 암호 문자열을 해시 계산을 위해 바이트 배열로 변환할 때 사용할 문자 세트의 이름을 지정합니다. 기본적으로 |
|
|
암호가 일반 텍스트로 저장되지 않는 경우 해시된 암호의 문자열 형식을 지정합니다. 두 가지 중 하나를 지정할 수 있습니다. |
|
| 사용자 및 해당 암호가 포함된 속성 파일입니다. |
| 속성 | 설명 |
|---|---|
|
| 속성 파일에서 발견되지 않는 경우 다이제스트된 암호에 사용할 기본 영역 이름입니다. |
|
| 사용자와 암호를 포함하는 파일의 경로입니다. 파일에는 영역 이름 선언이 포함되어야 합니다. |
|
|
|
|
| 경로가 상대적인 사전 정의된 경로입니다. |
| 속성 | 설명 |
|---|---|
|
| 사용자 및 해당 그룹을 포함하는 파일의 경로입니다. |
|
| 경로가 상대적인 사전 정의된 경로입니다. |
5.12. SASL-authentication-factory 속성 링크 복사링크가 클립보드에 복사되었습니다!
sasl-authentication-factory 는 특성을 설정하여 구성할 수 있습니다.
| 속성 | 설명 |
|---|---|
| mechanism-configurations | 메커니즘별 구성 목록입니다. |
| sasl-server-factory | 이 리소스와 연결할 SASL 서버 팩토리입니다. |
| security-domain | 이 리소스와 연결할 보안 도메인입니다. |
| 속성 | 설명 |
|---|---|
| credential-security-factory | 메커니즘에 필요한 대로 인증 정보를 얻는 데 사용할 보안 팩토리입니다. |
| final-principal-transformer | 이 메커니즘 영역에 적용할 최종 주요 변환기입니다. |
| host-name | 이 구성이 적용되는 호스트 이름입니다. |
| mechanism-name | 이 구성은 지정된 이름의 메커니즘이 사용되는 경우에만 적용됩니다. 이 속성이 생략되면 모든 메커니즘 이름과 일치합니다. |
| mechanism-realm-configurations | 메커니즘에서 이해할 수 있는 영역 이름의 정의 목록입니다. |
| 프로토콜 | 이 구성이 적용되는 프로토콜입니다. |
| post-realm-principal-transformer | 영역을 선택한 후 적용할 주요 변환기입니다. |
| pre-realm-principal-transformer | 영역을 선택하기 전에 적용할 주요 변환기입니다. |
| realm-mapper | 메커니즘에서 사용할 영역 매퍼입니다. |
| 속성 | 설명 |
|---|---|
| final-principal-transformer | 이 메커니즘 영역에 적용할 최종 주요 변환기입니다. |
| post-realm-principal-transformer | 영역을 선택한 후 적용할 주요 변환기입니다. |
| pre-realm-principal-transformer | 영역을 선택하기 전에 적용할 주요 변환기입니다. |
| realm-mapper | 메커니즘에서 사용할 영역 매퍼입니다. |
| realm-name | 메커니즘에서 제공할 영역의 이름입니다. |
5.13. secret-key-credential-store 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성을 설정하여 secret-key-credential-store 를 구성할 수 있습니다.
| 속성 | 설명 |
|---|---|
| create |
Elytron이 아직 존재하지 않는 경우 값을 |
| default-alias |
기본적으로 생성된 키의 별칭 이름입니다. 기본값은 |
| key-size | 생성된 키의 크기입니다. 기본 크기는 256비트입니다. 다음 중 하나로 값을 설정할 수 있습니다.
|
| path | 인증 정보 저장소의 경로입니다. |
| 채우기 |
인증 정보 저장소에 |
| relative-to |
특성 경로가 상대적인 이전에 정의된 경로에 대한 참조입니다. |
5.14. security-domain 속성 링크 복사링크가 클립보드에 복사되었습니다!
속성을 설정하여 security-domain 을 구성할 수 있습니다.
| 속성 | 설명 |
|---|---|
| default-realm | 이 보안 도메인에 포함된 기본 영역입니다. |
| evidence-decoder | 이 도메인에서 사용할 EvidenceDecoder에 대한 참조입니다. |
| outflow-anonymous | 이 속성은 다음 시나리오에서 발생하는 익명 ID를 보안 도메인에 대한 outflow를 사용할 수 없는지 여부를 지정합니다.
익명 ID는 해당 도메인에 대해 이전에 설정한 ID를 지웁니다. |
| outflow-security-domains | 이 도메인의 보안 ID가 자동으로 흐름을 해제해야 하는 보안 도메인 목록입니다. |
| permission-mapper | 이 도메인에서 사용할 PermissionMapper에 대한 참조입니다. |
| post-realm-principal-transformer | 제공된 ID 이름에서 작동한 후 적용할 주요 변환기에 대한 참조입니다. |
| pre-realm-principal-transformer | 영역을 선택하기 전에 적용할 주체 변환기에 대한 참조입니다. |
| principal-decoder | 이 도메인에서 사용할 PrincipalDecoder에 대한 참조입니다. |
| realm-mapper | 이 도메인에서 사용할 CryostatMapper에 대한 참조입니다. |
| realms | 이 보안 도메인에 포함된 영역 목록입니다. |
| role-decoder | 이 도메인에서 사용할 RoleDecoder에 대한 참조입니다. |
| role-mapper | 이 도메인에서 사용할 RoleMapper에 대한 참조입니다. |
| security-event-listener | 보안 이벤트에 대한 리스너에 대한 참조입니다. |
| trusted-security-domains | 이 보안 도메인에서 신뢰하는 보안 도메인의 목록입니다. |
| trusted-virtual-security-domains | 이 보안 도메인에서 신뢰하는 가상 보안 도메인 목록입니다. |
5.15. simple-role-decoder 특성 링크 복사링크가 클립보드에 복사되었습니다!
특성을 설정하여 간단한 역할 디코더를 구성할 수 있습니다.
| 속성 | 설명 |
|---|---|
| attribute | 역할에 직접 매핑할 ID의 속성 이름입니다. |
5.16. size-rotating-file-audit-log 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
|
|
모든 감사 이벤트 이후 출력 스트림에 플러시가 필요한지 여부를 지정합니다. 특성을 정의하지 않으면 |
|
|
감사 파일 인코딩을 지정합니다. 기본값은
|
|
|
기본값은 ScanSetting |
|
|
회전할 때 백업할 최대 파일 수입니다. 기본값은 |
|
| 로그 파일의 위치를 정의합니다. |
|
| 선택적 속성입니다. 로그 파일의 위치를 정의합니다. |
|
|
기본적으로 Elytron은 서버를 다시 시작할 때 새 로그 파일을 생성하지 않습니다. 서버 재시작 시 로그를 교체하려면 이 속성을 |
|
|
Elytron이 로그를 교체하기 전에 로그 파일에 도달할 수 있는 최대 크기입니다. 기본값은 10 MB의 경우 |
|
|
선택적 속성입니다. 순환된 로그에 날짜 접미사를 추가합니다. |
|
|
기본값은 |
5.17. syslog-audit-log 속성 링크 복사링크가 클립보드에 복사되었습니다!
| 속성 | 설명 |
|---|---|
|
| 감사 이벤트가 기록된 형식입니다. 지원되는 값:
기본값:
|
|
| syslog 서버로 전송된 모든 이벤트에 포함할 호스트 이름입니다. |
|
|
|
|
|
Elytron이 연결을 닫기 전에 연속 메시지를 지원되는 값:
기본값:
|
|
|
|
|
|
|
|
| 감사 이벤트를 설명하는 데 사용할 RFC 형식입니다. 지원되는 값:
기본값:
|
|
|
지원되는 값:
기본값:
|