3.6. 사용자 및 역할
3.6.1. 사용자 소개
Red Hat Virtualization에는 로컬 도메인과 외부 도메인의 두 가지 유형의 사용자 도메인이 있습니다. Manager 설치 프로세스 중에 internal 도메인 및 기본 사용자 admin 이라는 기본 로컬 도메인이 생성됩니다.
ovirt-aaa-jdbc-tool
을 사용하여 내부 도메인에 추가 사용자를 생성할 수 있습니다. 로컬 도메인에서 생성된 사용자 계정을 로컬 사용자라고 합니다. Red Hat Directory Server, Active Directory, OpenLDAP 및 기타 지원되는 여러 옵션과 같은 외부 디렉터리 서버를 Red Hat Virtualization 환경에 연결하고 외부 도메인으로 사용할 수도 있습니다. 외부 도메인에서 생성된 사용자 계정을 디렉터리 사용자라고 합니다.
로컬 사용자와 디렉터리 사용자 모두 환경에서 작동할 수 있으려면 관리 포털을 통해 적절한 역할과 권한으로 할당해야 합니다. 사용자 역할은 최종 사용자와 관리자의 두 가지 주요 유형이 있습니다. 최종 사용자 역할은 VM 포털의 가상 리소스를 사용하고 관리합니다. 관리자 역할은 관리 포털을 사용하여 시스템 인프라를 유지 관리합니다. 이 역할은 가상 시스템 및 호스트와 같은 개별 리소스 또는 클러스터 및 데이터 센터와 같은 개체 계층 구조에 대해 사용자에게 할당할 수 있습니다.
3.6.2. 디렉터리 서버 소개
설치하는 동안 Red Hat Virtualization Manager는 내부 도메인에 admin 사용자를 생성합니다. 이 사용자를 admin@internal
이라고도 합니다. 이 계정은 처음 환경 구성 시 및 문제 해결을 위해 사용하기 위한 것입니다. 외부 디렉터리 서버를 연결한 후 디렉터리 사용자를 추가하고 적절한 역할 및 권한으로 할당한 후 admin@internal
사용자는 필요하지 않은 경우 비활성화할 수 있습니다. 지원되는 디렉터리 서버는 다음과 같습니다.
- 389ds
- 389DS RFC-2307 스키마
- Active Directory
- IBM Security Directory Server
- IBM Security Directory Server RFC-2307 스키마
- FreeIPA
- iDM
- Novell eDirectory RFC-2307 스키마
- OpenLDAP RFC-2307 Schema
- OpenLDAP 표준 스키마
- Oracle Unified Directory RFC-2307 스키마
- RFC-2307 스키마 (Generic)
- Red Hat Directory Server (RHDS)
- RHDS(Red Hat Directory Server) RFC-2307 스키마
- iPlanet
Red Hat Virtualization Manager(rhevm
) 및 IdM(ipa-server
)을 동일한 시스템에 설치할 수 없습니다. IdM은 Red Hat Virtualization Manager에 필요한 mod_ssl
패키지와 호환되지 않습니다.
Active Directory를 디렉터리 서버로 사용하고 템플릿 및 가상 시스템을 생성할 때 sysprep 를 사용하려는 경우 Red Hat Virtualization 관리 사용자를 도메인에 대한 제어 권한을 위임하여 에 위임해야 합니다.
- 도메인에 컴퓨터에 가입
- 그룹 구성원을 수정합니다
Active Directory에서 사용자 계정 만들기에 대한 자세한 내용은 새 사용자 계정 만들기를 참조하십시오.
Active Directory에서 제어 위임에 대한 자세한 내용은 조직 단위의 위임 제어를 참조하십시오.
3.6.3. 외부 LDAP 공급자 구성
3.6.3.1. 외부 LDAP 공급자 구성(Interactive Setup)
ovirt-engine-extension-aaa-ldap
는 더 이상 사용되지 않습니다. 새로 설치하는 경우 Red Hat Single Sign On을 사용하십시오. 자세한 내용은 관리 가이드의 Red Hat Single Sign-On 설치 및 구성을 참조하십시오.
ovirt-engine-extension-aaa-ldap 확장을 사용하면 외부 디렉터리 설정을 쉽게 사용자 지정할 수 있습니다. ovirt-engine-extension-aaa-ldap 확장은 다양한 LDAP 서버 유형을 지원하며 대부분의 LDAP 유형에 대한 설정을 지원하기 위해 대화형 설정 스크립트가 제공됩니다.
LDAP 서버 유형이 대화형 설정 스크립트에 나열되지 않거나 더 많은 사용자 지정을 수행하려면 구성 파일을 수동으로 편집할 수 있습니다. 자세한 내용은 외부 LDAP 공급자 구성을 참조하십시오.
Active Directory에 대한 예제는 Attaching an Active Directory 를 참조하십시오.
사전 요구 사항
- DNS 또는 LDAP 서버의 도메인 이름을 알아야 합니다.
- LDAP 서버와 관리자 간에 보안 연결을 설정하려면 PEM 인코딩 CA 인증서가 준비되었는지 확인합니다.
- LDAP 서버에 대한 검색 및 로그인 쿼리를 수행할 준비가 된 계정 이름과 암호가 하나 이상 있어야 합니다.
절차
Red Hat Virtualization Manager에서 LDAP 확장 패키지를 설치합니다.
# dnf install ovirt-engine-extension-aaa-ldap-setup
ovirt-engine-extension-aaa-ldap-setup
을 실행하여 대화형 설정을 시작합니다.# ovirt-engine-extension-aaa-ldap-setup
해당 번호를 입력하여 LDAP 유형을 선택합니다. LDAP 서버가 어떤 스키마인지 확실하지 않은 경우 LDAP 서버 유형의 표준 스키마를 선택합니다. Active Directory의 경우 Attaching_an_Active_Directory 에 있는 절차를 따릅니다.
Available LDAP implementations: 1 - 389ds 2 - 389ds RFC-2307 Schema 3 - Active Directory 4 - IBM Security Directory Server 5 - IBM Security Directory Server RFC-2307 Schema 6 - IPA 7 - Novell eDirectory RFC-2307 Schema 8 - OpenLDAP RFC-2307 Schema 9 - OpenLDAP Standard Schema 10 - Oracle Unified Directory RFC-2307 Schema 11 - RFC-2307 Schema (Generic) 12 - RHDS 13 - RHDS RFC-2307 Schema 14 - iPlanet Please select:
Enter
를 눌러 기본값을 승인하고 LDAP 서버 이름에 대한 도메인 이름 확인을 구성합니다.It is highly recommended to use DNS resolution for LDAP server. If for some reason you intend to use hosts or plain address disable DNS usage. Use DNS (Yes, No) [Yes]:
DNS 정책 방법을 선택합니다.
- 옵션 1의 경우 /etc/resolv.conf 에 나열된 DNS 서버를 사용하여 IP 주소를 확인합니다. /etc/resolv.conf 파일이 올바른 DNS 서버로 업데이트되었는지 확인합니다.
옵션 2의 경우 FQDN(정규화된 도메인 이름) 또는 LDAP 서버의 IP 주소를 입력합니다.
dig
명령을 SRV 레코드와 함께 사용하여 도메인 이름을 확인할 수 있습니다. SRV 레코드는 다음 형식을 취합니다._service._protocol.domain_name
예:
dig _ldap._tcp.redhat.com SRV
.- 옵션 3의 경우 공백으로 구분된 LDAP 서버 목록을 입력합니다. 서버의 FQDN 또는 IP 주소를 사용합니다. 이 정책은 LDAP 서버 간에 부하 분산을 제공합니다. 쿼리는 라운드 로빈 알고리즘에 따라 모든 LDAP 서버에 분산됩니다.
옵션 4의 경우 공백으로 구분된 LDAP 서버 목록을 입력합니다. 서버의 FQDN 또는 IP 주소를 사용합니다. 이 정책은 쿼리에 응답할 첫 번째 LDAP 서버를 기본 LDAP 서버로 정의합니다. 첫 번째 서버를 사용할 수 없는 경우 쿼리는 목록의 다음 LDAP 서버로 이동합니다.
1 - Single server 2 - DNS domain LDAP SRV record 3 - Round-robin between multiple hosts 4 - Failover between multiple hosts Please select:
LDAP 서버에서 지원하는 보안 연결 방법을 선택하고 PEM 인코딩 CA 인증서를 가져올 방법을 지정합니다.
-
파일을
사용하면 인증서의 전체 경로를 제공할 수 있습니다. -
URL
을 사용하면 인증서의 URL을 지정할 수 있습니다. -
인라인
을 사용하면 인증서의 내용을 터미널에 붙여넣을 수 있습니다. -
시스템을
사용하면 모든 CA 파일의 기본 위치를 지정할 수 있습니다. 안전하지 않은
경우 인증서 유효성 검사를 건너뛰지만 연결은 계속 TLS를 사용하여 암호화됩니다.NOTE: It is highly recommended to use secure protocol to access the LDAP server. Protocol startTLS is the standard recommended method to do so. Only in cases in which the startTLS is not supported, fallback to non standard ldaps protocol. Use plain for test environments only. Please select protocol to use (startTLS, ldaps, plain) [startTLS]: startTLS Please select method to obtain PEM encoded CA certificate (File, URL, Inline, System, Insecure): Please enter the password:
참고LDAPS는 Lightweight Directory Access Protocol over Secure Socket Links의 약어입니다. SSL 연결의 경우
ldaps
옵션을 선택합니다.
-
검색 사용자 고유 이름(DN)을 입력합니다. 사용자는 디렉터리 서버에서 모든 사용자와 그룹을 찾아볼 수 있는 권한이 있어야 합니다. LDAP 주석에 검색 사용자를 지정해야 합니다. 익명 검색이 허용되는 경우 입력 없이
Enter를
누릅니다.Enter search user DN (for example uid=username,dc=example,dc=com or leave empty for anonymous):
uid=user1,ou=Users,ou=department-1,dc=example,dc=com
Enter search user password:기본 DN을 입력합니다.
Please enter base DN (dc=redhat,dc=com) [dc=redhat,dc=com]: ou=department-1,dc=redhat,dc=com
가상 시스템에 대해 Single Sign-On을 구성하려면
Yes
를 선택합니다. 이 기능은 관리 포털 기능에 대한 SSO(Single Sign-On)와 함께 사용할 수 없습니다. 스크립트에서 프로필 이름이 도메인 이름과 일치해야 함을 상기시킵니다. 가상 시스템 관리 가이드 의 가상 시스템에 대한 SSO(Single Sign-On ) 구성의 지침을 따라야 합니다.Are you going to use Single Sign-On for Virtual Machines (Yes, No) [Yes]:
프로필 이름을 지정합니다. 프로필 이름은 로그인 페이지에 있는 사용자에게 표시됩니다. 이 예에서는
redhat.com
을 사용합니다.참고도메인을 구성한 후 프로필 이름을 바꾸려면 /etc/ovirt-
engine/extensions.d/redhat.com -authn.properties 파일에서 ovirt.engine.aaa.authn.profile.
name 속성을 편집합니다.ovirt-engine
서비스를 다시 시작하여 변경 사항을 적용합니다.Please specify profile name that will be visible to users: redhat.com
그림 3.1. 관리 포털 로그인 페이지
참고사용자는 처음 로그인할 때 드롭다운 목록에서 프로필을 선택해야 합니다. 정보는 브라우저 쿠키에 저장되며 다음에 로그인할 때 미리 선택됩니다.
로그인 기능을 테스트하여 LDAP 서버가 Red Hat Virtualization 환경에 올바르게 연결되어 있는지 확인합니다. 로그인 쿼리의 경우
사용자 이름과
암호를
입력합니다 :NOTE: It is highly recommended to test drive the configuration before applying it into engine. Login sequence is executed automatically, but it is recommended to also execute Search sequence manually after successful Login sequence. Please provide credentials to test login flow: Enter user name: Enter user password: [ INFO ] Executing login sequence… … [ INFO ] Login sequence executed successfully
사용자 세부 정보가 올바른지 확인합니다. 사용자 세부 정보가 올바르지 않으면
Abort
:를 선택합니다.Please make sure that user details are correct and group membership meets expectations (search for PrincipalRecord and GroupRecord titles). Abort if output is incorrect. Select test sequence to execute (Done, Abort, Login, Search) [Abort]:
수동으로 검색 기능을 테스트하는 것이 좋습니다. 검색 쿼리의 경우
Principal
for user accounts 또는Group
for group accounts를 선택합니다. 사용자 계정의 그룹 계정 정보를 반환하려면Yes
toResolve Groups
를 선택합니다. 3개의 구성 파일이 생성되고 화면 출력에 표시됩니다.Select test sequence to execute (Done, Abort, Login, Search) [Search]: Search Select entity to search (Principal, Group) [Principal]: Term to search, trailing '*' is allowed: testuser1 Resolve Groups (Yes, No) [No]:
Done(완료)
을 선택하여 설정을 완료합니다.Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Done [ INFO ] Stage: Transaction setup [ INFO ] Stage: Misc configuration [ INFO ] Stage: Package installation [ INFO ] Stage: Misc configuration [ INFO ] Stage: Transaction commit [ INFO ] Stage: Closing up CONFIGURATION SUMMARY Profile name is: redhat.com The following files were created: /etc/ovirt-engine/aaa/redhat.com.properties /etc/ovirt-engine/extensions.d/redhat.com.properties /etc/ovirt-engine/extensions.d/redhat.com-authn.properties [ INFO ] Stage: Clean up Log file is available at /tmp/ovirt-engine-extension-aaa-ldap-setup-20171004101225-mmneib.log: [ INFO ] Stage: Pre-termination [ INFO ] Stage: Termination
ovirt-engine
서비스를 다시 시작합니다. 생성한 프로필을 이제 관리 포털 및 VM 포털 로그인 페이지에서 사용할 수 있습니다. 예를 들어 VM 포털에 로그인하는 것과 같이 LDAP 서버의 사용자 계정에 적절한 역할 및 권한을 할당하려면 Manager User Tasks 를 참조하십시오.# systemctl restart ovirt-engine.service
자세한 내용은 /usr/share/doc/ovirt-engine-extension-aaa-ldap-버전의 LDAP 인증 및 권한 확장 README 파일을 참조하십시오.
3.6.3.2. Active Directory 연결
ovirt-engine-extension-aaa-ldap
는 더 이상 사용되지 않습니다. 새로 설치하는 경우 Red Hat Single Sign On을 사용하십시오. 자세한 내용은 관리 가이드의 Red Hat Single Sign-On 설치 및 구성을 참조하십시오.
사전 요구 사항
Active Directory forest 이름을 알아야 합니다. 포레스트 이름은 루트 도메인 이름이라고도 합니다.
참고ovirt-engine-extension-aaa-ldap-setup 도구를 사용하여 구성할 수 없는 가장 일반적인 Active Directory 구성의 예는
/usr/share/ovirt-engine-extension-aaa-ldap/examples/README.md
에 제공됩니다.- Active Directory forest 이름을 Manager의 /etc/resolv.conf 파일에 분석할 수 있는 DNS 서버를 추가하거나 Active Directory DNS 서버를 기록한 후 대화형 설정 스크립트에서 메시지가 표시되면 입력해야 합니다.
- LDAP 서버와 관리자 간에 보안 연결을 설정하려면 PEM 인코딩 CA 인증서가 준비되었는지 확인합니다. 자세한 내용은 Manager와 LDAP 서버 간 SSL 연결 설정에서 참조하십시오.
- 익명 검색이 지원되는 경우가 아니면 검색 사용자로 Active Directory에서 모든 사용자와 그룹을 찾아볼 수 있는 권한이 있는 사용자를 사용할 수 있어야 합니다. 검색 사용자의 고유 이름(DN)을 기록해 둡니다. Active Directory에 관리자를 사용하지 마십시오.
- Active Directory에 대한 검색 및 로그인 쿼리를 수행하려면 하나 이상의 계정 이름과 암호가 있어야 합니다.
-
Active Directory 배포가 여러 도메인에 걸쳐 있는 경우
/usr/share/ovirt-engine-extension-aaa-ldap/profiles/ad.properties
파일에 설명된 제한 사항을 숙지하십시오.
절차
Red Hat Virtualization Manager에서 LDAP 확장 패키지를 설치합니다.
# dnf install ovirt-engine-extension-aaa-ldap-setup
ovirt-engine-extension-aaa-ldap-setup
을 실행하여 대화형 설정을 시작합니다.# ovirt-engine-extension-aaa-ldap-setup
해당 번호를 입력하여 LDAP 유형을 선택합니다. 이 단계 이후의 LDAP 관련 질문은 LDAP 유형에 따라 다릅니다.
Available LDAP implementations: 1 - 389ds 2 - 389ds RFC-2307 Schema 3 - Active Directory 4 - IBM Security Directory Server 5 - IBM Security Directory Server RFC-2307 Schema 6 - IPA 7 - Novell eDirectory RFC-2307 Schema 8 - OpenLDAP RFC-2307 Schema 9 - OpenLDAP Standard Schema 10 - Oracle Unified Directory RFC-2307 Schema 11 - RFC-2307 Schema (Generic) 12 - RHDS 13 - RHDS RFC-2307 Schema 14 - iPlanet Please select: 3
Active Directory forest 이름을 입력합니다. Manager의 DNS에서 포레스트 이름을 확인할 수 없는 경우 스크립트에서 공백으로 구분된 Active Directory DNS 서버 이름을 입력하라는 메시지를 표시합니다.
Please enter Active Directory Forest name: ad-example.redhat.com [ INFO ] Resolving Global Catalog SRV record for ad-example.redhat.com [ INFO ] Resolving LDAP SRV record for ad-example.redhat.com
LDAP 서버에서 지원하는 보안 연결 방법을 선택하고 PEM 인코딩 CA 인증서를 가져올 방법을 지정합니다. file 옵션을 사용하면 인증서의 전체 경로를 제공할 수 있습니다. URL 옵션을 사용하면 인증서에 URL을 지정할 수 있습니다. 인라인 옵션을 사용하여 터미널에 인증서의 콘텐츠를 붙여넣습니다. 시스템 옵션을 사용하면 모든 CA 파일의 위치를 지정할 수 있습니다. 비보안 옵션을 사용하면 비보안 모드에서 startTLS를 사용할 수 있습니다.
NOTE: It is highly recommended to use secure protocol to access the LDAP server. Protocol startTLS is the standard recommended method to do so. Only in cases in which the startTLS is not supported, fallback to non standard ldaps protocol. Use plain for test environments only. Please select protocol to use (startTLS, ldaps, plain) [startTLS]: startTLS Please select method to obtain PEM encoded CA certificate (File, URL, Inline, System, Insecure): File Please enter the password:
참고LDAPS는 Lightweight Directory Access Protocol over Secure Socket Links의 약어입니다. SSL 연결의 경우
ldaps
옵션을 선택합니다.PEM 인코딩 CA 인증서를 만드는 방법에 대한 자세한 내용은 Manager와 LDAP 서버 간 SSL 또는 TLS 연결 설정을 참조하십시오.
검색 사용자 고유 이름(DN)을 입력합니다. 사용자는 디렉터리 서버에서 모든 사용자와 그룹을 찾아볼 수 있는 권한이 있어야 합니다. 검색 사용자는 LDAP 주석이어야 합니다. 익명 검색이 허용되는 경우 입력 없이
Enter를
누릅니다.Enter search user DN (empty for anonymous): cn=user1,ou=Users,dc=test,dc=redhat,dc=com Enter search user password:
가상 시스템에 Single Sign-On 사용 여부를 지정합니다. 이 기능은 기본적으로 활성화되어 있지만 관리 포털에 대한 SSO(Single Sign-On)가 활성화된 경우에는 사용할 수 없습니다. 스크립트에서 프로필 이름이 도메인 이름과 일치해야 함을 상기시킵니다. 가상 시스템 관리 가이드 의 가상 시스템에 대한 SSO(Single Sign-On ) 구성의 지침을 따라야 합니다.
Are you going to use Single Sign-On for Virtual Machines (Yes, No) [Yes]:
프로필 이름을 지정합니다. 프로필 이름은 로그인 페이지에 있는 사용자에게 표시됩니다. 이 예에서는
redhat.com
을 사용합니다.Please specify profile name that will be visible to users:redhat.com
그림 3.2. 관리 포털 로그인 페이지
참고사용자는 처음 로그인할 때 드롭다운 목록에서 원하는 프로필을 선택해야 합니다. 정보가 브라우저 쿠키에 저장되고 다음에 로그인할 때 미리 선택됩니다.
검색 및 로그인 기능을 테스트하여 LDAP 서버가 Red Hat Virtualization 환경에 올바르게 연결되어 있는지 확인합니다. 로그인 쿼리에는 계정 이름과 암호를 입력합니다. 검색 쿼리의 경우
Principal for user accounts(사용자 계정에 대해 Principal
)를 선택하고 그룹 계정의Group(그룹
)을 선택합니다. 사용자 계정의 그룹
계정 정보를 반환하려면Yes
를 입력하여 그룹을 복구합니다.Done(완료)
을 선택하여 설정을 완료합니다. 3개의 구성 파일이 생성되고 화면 출력에 표시됩니다.NOTE: It is highly recommended to test drive the configuration before applying it into engine. Login sequence is executed automatically, but it is recommended to also execute Search sequence manually after successful Login sequence. Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Login Enter search user name: testuser1 Enter search user password: [ INFO ] Executing login sequence... ... Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Search Select entity to search (Principal, Group) [Principal]: Term to search, trailing '*' is allowed: testuser1 Resolve Groups (Yes, No) [No]: [ INFO ] Executing login sequence... ... Select test sequence to execute (Done, Abort, Login, Search) [Abort]: Done [ INFO ] Stage: Transaction setup [ INFO ] Stage: Misc configuration [ INFO ] Stage: Package installation [ INFO ] Stage: Misc configuration [ INFO ] Stage: Transaction commit [ INFO ] Stage: Closing up CONFIGURATION SUMMARY Profile name is: redhat.com The following files were created: /etc/ovirt-engine/aaa/redhat.com.properties /etc/ovirt-engine/extensions.d/redhat.com-authz.properties /etc/ovirt-engine/extensions.d/redhat.com-authn.properties [ INFO ] Stage: Clean up Log file is available at /tmp/ovirt-engine-extension-aaa-ldap-setup-20160114064955-1yar9i.log: [ INFO ] Stage: Pre-termination [ INFO ] Stage: Termination
- 생성한 프로필을 이제 관리 포털 및 VM 포털 로그인 페이지에서 사용할 수 있습니다. 예를 들어 VM 포털에 로그인하는 것과 같이 LDAP 서버의 사용자 계정에 적절한 역할 및 권한을 할당하려면 Manager User Tasks 를 참조하십시오.
자세한 내용은 /usr/share/doc/ovirt-engine-extension-aaa-ldap-버전의 LDAP 인증 및 권한 확장 README 파일을 참조하십시오.
3.6.3.3. 외부 LDAP 공급자 구성(수동 방법)
ovirt-engine-extension-aaa-ldap
는 더 이상 사용되지 않습니다. 새로 설치하는 경우 Red Hat Single Sign On을 사용하십시오. 자세한 내용은 관리 가이드의 Red Hat Single Sign-On 설치 및 구성을 참조하십시오.
ovirt-engine-extension-aaa-ldap
확장에서는 LDAP 프로토콜을 사용하여 디렉터리 서버에 액세스하며 완전히 사용자 지정할 수 있습니다. VM 포털 또는 관리 포털 기능에 대한 SSO(Single Sign-On)를 활성화하려는 경우를 제외하고 Kerberos 인증은 필요하지 않습니다.
이전 섹션의 대화형 설정 방법이 사용 사례를 다루지 않으면 구성 파일을 수동으로 수정하여 LDAP 서버를 연결할 수 있습니다. 다음 절차에서는 일반 세부 정보를 사용합니다. 특정 값은 설정에 따라 다릅니다.
절차
Red Hat Virtualization Manager에서 LDAP 확장 패키지를 설치합니다.
# dnf install ovirt-engine-extension-aaa-ldap
LDAP 구성 템플릿 파일을 /etc/ovirt-engine 디렉터리에 복사합니다. 템플릿 파일은 활성 디렉토리(ad) 및 기타 디렉토리 유형(단순)에 사용할 수 있습니다. 이 예에서는 간단한 구성 템플릿을 사용합니다.
# cp -r /usr/share/ovirt-engine-extension-aaa-ldap/examples/simple/. /etc/ovirt-engine
관리 포털 및 VM 포털 로그인 페이지의 사용자에게 표시할 프로필 이름과 일치하도록 구성 파일의 이름을 변경합니다.
# mv /etc/ovirt-engine/aaa/profile1.properties /etc/ovirt-engine/aaa/example.properties # mv /etc/ovirt-engine/extensions.d/profile1-authn.properties /etc/ovirt-engine/extensions.d/example-authn.properties # mv /etc/ovirt-engine/extensions.d/profile1-authz.properties /etc/ovirt-engine/extensions.d/example-authz.properties
LDAP 서버 유형의 주석 처리를 제거하고 도메인 및 암호 필드를 업데이트하여 LDAP 속성 구성 파일을 편집합니다.
# vi /etc/ovirt-engine/aaa/example.properties
예 3.5. 프로필 예: LDAP 서버 섹션
# Select one # include = <openldap.properties> #include = <389ds.properties> #include = <rhds.properties> #include = <ipa.properties> #include = <iplanet.properties> #include = <rfc2307-389ds.properties> #include = <rfc2307-rhds.properties> #include = <rfc2307-openldap.properties> #include = <rfc2307-edir.properties> #include = <rfc2307-generic.properties> # Server # vars.server = ldap1.company.com # Search user and its password. # vars.user = uid=search,cn=users,cn=accounts,dc=company,dc=com vars.password = 123456 pool.default.serverset.single.server = ${global:vars.server} pool.default.auth.simple.bindDN = ${global:vars.user} pool.default.auth.simple.password = ${global:vars.password}
TLS 또는 SSL 프로토콜을 사용하여 LDAP 서버와 상호 작용하려면 LDAP 서버의 루트 CA 인증서를 가져와 공개 키 저장소 파일을 만드는 데 사용합니다. 다음 행의 주석을 제거하고 공개 키 저장소 파일의 전체 경로와 암호를 지정하여 파일에 액세스합니다.
참고공개 키 저장소 파일 생성에 대한 자세한 내용은 Manager와 LDAP Server 간의 SSL 또는 TLS 연결 설정을 참조하십시오.
예 3.6. profile: keystore 섹션 예
# Create keystore, import certificate chain and uncomment # if using tls. pool.default.ssl.startTLS = true pool.default.ssl.truststore.file = /full/path/to/myrootca.jks pool.default.ssl.truststore.password = password
인증 구성 파일을 검토합니다. 관리 포털의 사용자에게 표시되는 프로필 이름과 VM 포털 로그인 페이지는 ovirt.engine.aaa.authn.profile.name 에서 정의합니다. 구성 프로필 위치는 LDAP 구성 파일 위치와 일치해야 합니다. 모든 필드는 기본값으로 둘 수 있습니다.
# vi /etc/ovirt-engine/extensions.d/example-authn.properties
예 3.7. 인증 구성 파일 예
ovirt.engine.extension.name = example-authn ovirt.engine.extension.bindings.method = jbossmodule ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine.extension.aaa.ldap ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engine.extension.aaa.ldap.AuthnExtension ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authn ovirt.engine.aaa.authn.profile.name = example ovirt.engine.aaa.authn.authz.plugin = example-authz config.profile.file.1 = ../aaa/example.properties
권한 부여 구성 파일을 검토합니다. 구성 프로필 위치는 LDAP 구성 파일 위치와 일치해야 합니다. 모든 필드는 기본값으로 둘 수 있습니다.
# vi /etc/ovirt-engine/extensions.d/example-authz.properties
예 3.8. 권한 부여 구성 파일의 예
ovirt.engine.extension.name = example-authz ovirt.engine.extension.bindings.method = jbossmodule ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine.extension.aaa.ldap ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engine.extension.aaa.ldap.AuthzExtension ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authz config.profile.file.1 = ../aaa/example.properties
구성 프로필의 소유권과 사용 권한이 적절한지 확인합니다.
# chown ovirt:ovirt /etc/ovirt-engine/aaa/example.properties # chmod 600 /etc/ovirt-engine/aaa/example.properties
engine 서비스를 다시 시작하십시오.
# systemctl restart ovirt-engine.service
- 생성한 예제 프로필을 이제 관리 포털 및 VM 포털 로그인 페이지에서 사용할 수 있습니다. 예를 들어 VM 포털에 로그인하는 것과 같이 LDAP 서버의 사용자 계정에 적절한 권한을 부여하려면 Manager User Tasks 를 참조하십시오.
자세한 내용은 /usr/share/doc/ovirt-engine-extension-aaa-ldap-버전의 LDAP 인증 및 권한 확장 README 파일을 참조하십시오.
3.6.3.4. 외부 LDAP 공급자 제거
다음 절차에서는 외부 구성된 LDAP 프로바이더 및 해당 사용자를 제거하는 방법을 설명합니다.
절차
LDAP 공급자 구성 파일을 제거하고 기본 이름 profile1 을 교체합니다.
# rm /etc/ovirt-engine/extensions.d/profile1-authn.properties # rm /etc/ovirt-engine/extensions.d/profile1-authz.properties # rm /etc/ovirt-engine/aaa/profile1.properties
ovirt-engine
서비스를 다시 시작하십시오.# systemctl restart ovirt-engine
-
관리 포털의 Users (사용자) 리소스 탭에서 이 공급업체의 사용자(권한 프로바이더가
profile
1-authz인 사용자)를 선택하고 Remove(제거 )를 클릭합니다.
3.6.4. Single Sign-on용 LDAP 및 Kerberos 구성
SSO(Single Sign-On)를 통해 사용자는 암호를 다시 입력하지 않고도 VM 포털 또는 관리 포털에 로그인할 수 있습니다. 인증 자격 증명은 Kerberos 서버에서 가져옵니다. 관리 포털과 VM 포털에 대한 SSO(Single Sign-On)를 구성하려면 ovirt-engine-extension-aaa -misc 및 ovirt-engine-extension-aaa -ldap 및 두 개의 Apache 모듈(mod _auth_gssapi 및 mod_ session )을 구성해야 합니다. Kerberos가 포함되지 않은 Single Sign-On을 구성할 수 있지만 이 설명서의 범위를 벗어납니다.
VM 포털의 SSO(Single Sign-On)가 활성화되면 가상 시스템에 대한 SSO(Single Sign-On)가 불가능합니다. VM 포털에 대한 SSO(Single Sign-On)를 활성화하면 VM 포털에서 암호를 수락할 필요가 없으므로 가상 시스템에 로그인하기 위해 암호를 위임할 수 없습니다.
이 예제에서는 다음을 가정합니다.
- 기존 KDC(키 배포 센터) 서버는 Kerberos 5의 MIT 버전을 사용합니다.
- KDC 서버에 대한 관리 권한이 있습니다.
- Kerberos 클라이언트는 Red Hat Virtualization Manager 및 사용자 시스템에 설치됩니다.
-
kadmin
유틸리티는 Kerberos 서비스 주체 및 키탭 파일을 만드는 데 사용됩니다.
이 절차에는 다음 구성 요소가 포함됩니다.
KDC 서버에서
- Red Hat Virtualization Manager에서 Apache 서비스에 대한 서비스 주체 및 키탭 파일을 만듭니다.
Red Hat Virtualization Manager에서
- 인증 및 권한 부여 확장 패키지와 Apache Kerberos 인증 모듈을 설치합니다.
- 확장 파일을 구성합니다.
3.6.4.1. Apache 서비스에 대한 Kerberos 구성
KDC 서버에서
kadmin
유틸리티를 사용하여 Red Hat Virtualization Manager에서 Apache 서비스에 대한 서비스 주체를 만듭니다. 서비스 주체는 Apache 서비스의 KDC에 대한 참조 ID입니다.# kadmin kadmin> addprinc -randkey HTTP/fqdn-of-rhevm@REALM.COM
Apache 서비스에 대한 키탭 파일을 생성합니다. keytab 파일은 공유 비밀 키를 저장합니다.
참고engine-backup
명령에는 백업 및 복원 시/etc/httpd/http.keytab
파일이 포함되어 있습니다. keytab 파일에 다른 이름을 사용하는 경우 백업하고 복원해야 합니다.kadmin> ktadd -k /tmp/http.keytab HTTP/fqdn-of-rhevm@REALM.COM kadmin> quit
KDC 서버에서 Red Hat Virtualization Manager로 keytab 파일을 복사합니다.
# scp /tmp/http.keytab root@rhevm.example.com:/etc/httpd
== VM 포털 또는 관리 포털에 대한 SSO(Single Sign-on) 구성
Red Hat Virtualization Manager에서 keytab의 소유권 및 권한이 적절한지 확인합니다.
# chown apache /etc/httpd/http.keytab # chmod 400 /etc/httpd/http.keytab
인증 확장 패키지, LDAP 확장 패키지 및
mod_auth_gssapi
및mod_session
Apache 모듈을 설치합니다.# dnf install ovirt-engine-extension-aaa-misc ovirt-engine-extension-aaa-ldap mod_auth_gssapi mod_session
참고ovirt-engine-extension-aaa-ldap
는 더 이상 사용되지 않습니다. 새로 설치하는 경우 Red Hat Single Sign On을 사용하십시오. 자세한 내용은 관리 가이드의 Red Hat Single Sign-On 설치 및 구성을 참조하십시오.SSO 구성 템플릿 파일을 /etc/ovirt-engine 디렉터리에 복사합니다. 템플릿 파일은 Active Directory(ad-sso) 및 기타 디렉토리 유형(Simple-sso)에서 사용할 수 있습니다. 이 예에서는 간단한 SSO 구성 템플릿을 사용합니다.
# cp -r /usr/share/ovirt-engine-extension-aaa-ldap/examples/simple-sso/. /etc/ovirt-engine
ovirt-sso.conf 를 Apache 구성 디렉터리로 이동합니다.
참고engine-backup
명령에는 백업 및 복원 시/etc/httpd/conf.d/ovirt-sso.conf
파일이 포함되어 있습니다. 이 파일에 다른 이름을 사용하는 경우 백업하고 복원해야 합니다.# mv /etc/ovirt-engine/aaa/ovirt-sso.conf /etc/httpd/conf.d
인증 방법 파일을 검토합니다. 영역이 keytab 파일에서 자동으로 가져오기 때문에 이 파일을 편집할 필요가 없습니다.
# vi /etc/httpd/conf.d/ovirt-sso.conf
예 3.9. 인증 방법 파일 예
<LocationMatch ^/ovirt-engine/sso/(interactive-login-negotiate|oauth/token-http-auth)|^/ovirt-engine/api> <If "req('Authorization') !~ /^(Bearer|Basic)/i"> RewriteEngine on RewriteCond %{LA-U:REMOTE_USER} ^(.*)$ RewriteRule ^(.*)$ - [L,NS,P,E=REMOTE_USER:%1] RequestHeader set X-Remote-User %{REMOTE_USER}s AuthType GSSAPI AuthName "Kerberos Login" # Modify to match installation GssapiCredStore keytab:/etc/httpd/http.keytab GssapiUseSessions On Session On SessionCookieName ovirt_gssapi_session path=/private;httponly;secure; Require valid-user ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0; url=/ovirt-engine/sso/login-unauthorized\"/><body><a href=\"/ovirt-engine/sso/login-unauthorized\">Here</a></body></html>" </If> </LocationMatch>
관리 포털 및 VM 포털 로그인 페이지의 사용자에게 표시할 프로필 이름과 일치하도록 구성 파일의 이름을 변경합니다.
# mv /etc/ovirt-engine/aaa/profile1.properties /etc/ovirt-engine/aaa/example.properties
# mv /etc/ovirt-engine/extensions.d/profile1-http-authn.properties /etc/ovirt-engine/extensions.d/example-http-authn.properties
# mv /etc/ovirt-engine/extensions.d/profile1-http-mapping.properties /etc/ovirt-engine/extensions.d/example-http-mapping.properties
# mv /etc/ovirt-engine/extensions.d/profile1-authz.properties /etc/ovirt-engine/extensions.d/example-authz.properties
LDAP 서버 유형의 주석 처리를 제거하고 도메인 및 암호 필드를 업데이트하여 LDAP 속성 구성 파일을 편집합니다.
# vi /etc/ovirt-engine/aaa/example.properties
예 3.10. 프로필 예: LDAP 서버 섹션
# Select one include = <openldap.properties> #include = <389ds.properties> #include = <rhds.properties> #include = <ipa.properties> #include = <iplanet.properties> #include = <rfc2307-389ds.properties> #include = <rfc2307-rhds.properties> #include = <rfc2307-openldap.properties> #include = <rfc2307-edir.properties> #include = <rfc2307-generic.properties> # Server # vars.server = ldap1.company.com # Search user and its password. # vars.user = uid=search,cn=users,cn=accounts,dc=company,dc=com vars.password = 123456 pool.default.serverset.single.server = ${global:vars.server} pool.default.auth.simple.bindDN = ${global:vars.user} pool.default.auth.simple.password = ${global:vars.password}
TLS 또는 SSL 프로토콜을 사용하여 LDAP 서버와 상호 작용하려면 LDAP 서버의 루트 CA 인증서를 가져와 공개 키 저장소 파일을 만드는 데 사용합니다. 다음 행의 주석을 제거하고 공개 키 저장소 파일의 전체 경로와 암호를 지정하여 파일에 액세스합니다.
참고공개 키 저장소 파일 생성에 대한 자세한 내용은 Manager와 LDAP Server 간의 SSL 또는 TLS 연결 설정을 참조하십시오.
예 3.11. profile: keystore 섹션 예
# Create keystore, import certificate chain and uncomment # if using ssl/tls. pool.default.ssl.startTLS = true pool.default.ssl.truststore.file = /full/path/to/myrootca.jks pool.default.ssl.truststore.password = password
인증 구성 파일을 검토합니다. 관리 포털의 사용자에게 표시되는 프로필 이름과 VM 포털 로그인 페이지는 ovirt.engine.aaa.authn.profile.name 에서 정의합니다. 구성 프로필 위치는 LDAP 구성 파일 위치와 일치해야 합니다. 모든 필드는 기본값으로 둘 수 있습니다.
# vi /etc/ovirt-engine/extensions.d/example-http-authn.properties
예 3.12. 인증 구성 파일 예
ovirt.engine.extension.name = example-http-authn ovirt.engine.extension.bindings.method = jbossmodule ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine.extension.aaa.misc ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engine.extension.aaa.misc.http.AuthnExtension ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authn ovirt.engine.aaa.authn.profile.name = example-http ovirt.engine.aaa.authn.authz.plugin = example-authz ovirt.engine.aaa.authn.mapping.plugin = example-http-mapping config.artifact.name = HEADER config.artifact.arg = X-Remote-User
권한 부여 구성 파일을 검토합니다. 구성 프로필 위치는 LDAP 구성 파일 위치와 일치해야 합니다. 모든 필드는 기본값으로 둘 수 있습니다.
# vi /etc/ovirt-engine/extensions.d/example-authz.properties
예 3.13. 권한 부여 구성 파일의 예
ovirt.engine.extension.name = example-authz ovirt.engine.extension.bindings.method = jbossmodule ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine.extension.aaa.ldap ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engine.extension.aaa.ldap.AuthzExtension ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authz config.profile.file.1 = ../aaa/example.properties
인증 매핑 구성 파일을 검토합니다. 구성 프로필 위치는 LDAP 구성 파일 위치와 일치해야 합니다. 구성 프로필 확장 이름은 인증 구성 파일의
ovirt.engine.aaa.authn.mapping.plugin
값과 일치해야 합니다. 모든 필드는 기본값으로 둘 수 있습니다.# vi /etc/ovirt-engine/extensions.d/example-http-mapping.properties
예 3.14. 인증 매핑 구성 파일의 예
ovirt.engine.extension.name = example-http-mapping ovirt.engine.extension.bindings.method = jbossmodule ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine.extension.aaa.misc ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engine.extension.aaa.misc.mapping.MappingExtension ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Mapping config.mapAuthRecord.type = regex config.mapAuthRecord.regex.mustMatch = true config.mapAuthRecord.regex.pattern = ^(?<user>.*?)((\\\\(?<at>@)(?<suffix>.*?)@.*)|(?<realm>@.*))$ config.mapAuthRecord.regex.replacement = ${user}${at}${suffix}
구성 파일의 소유권과 사용 권한이 적절한지 확인합니다.
# chown ovirt:ovirt /etc/ovirt-engine/aaa/example.properties
# chown ovirt:ovirt /etc/ovirt-engine/extensions.d/example-http-authn.properties
# chown ovirt:ovirt /etc/ovirt-engine/extensions.d/example-http-mapping.properties
# chown ovirt:ovirt /etc/ovirt-engine/extensions.d/example-authz.properties
# chmod 600 /etc/ovirt-engine/aaa/example.properties
# chmod 640 /etc/ovirt-engine/extensions.d/example-http-authn.properties
# chmod 640 /etc/ovirt-engine/extensions.d/example-http-mapping.properties
# chmod 640 /etc/ovirt-engine/extensions.d/example-authz.properties
Apache 서비스와
ovirt-engine
서비스를 다시 시작하십시오.# systemctl restart httpd.service # systemctl restart ovirt-engine.service
3.6.5. Red Hat Single Sign-On 설치 및 구성
Red Hat Single Sign-On을 인증 방법으로 사용하려면 다음을 수행해야 합니다.
- Red Hat SSO 설치.
- LDAP 그룹 매퍼를 구성합니다.
- Manager에서 Apache를 구성합니다.
- OVN 공급자 자격 증명을 구성합니다.
- 모니터링 포털 구성(Grafana)
Red Hat SSO가 구성된 경우 한 번에 단일 권한 부여 프로토콜만 사용할 수 있으므로 이전 LDAP 서명이 작동하지 않습니다.
3.6.5.1. Red Hat SSO 설치
ZIP 파일을 다운로드하고 압축을 풀거나 RPM 파일을 사용하여 Red Hat Single Sign-On을 설치할 수 있습니다.
Red Hat SSO설치의 설치 지침을 따르십시오.
다음 정보를 준비합니다.
-
Open ID Connect
서버의 경로/위치. - 올바른 리포지토리의 서브스크립션 채널입니다.
- 유효한 Red Hat 서브스크립션 로그인 자격 증명.
3.6.5.2. LDAP 그룹 매퍼 구성
절차
다음 정보를 사용하여 LDAP 그룹 매퍼를 추가합니다.
-
이름
: ldapgroups -
매퍼 유형
: group-ldap-mapper -
LDAP 그룹 DN
: ou=groups,dc=example,dc=com -
그룹 객체 클래스
: groupofuniquenames (LDAP 서버 설정에 따라이 클래스를 조정) -
멤버십 LDAP 속성
: uniquemember (LDAP서버 설정에 따라이 클래스 조정)
-
-
저장
을 클릭합니다. -
Sync LDAP Groups to KeyCloak
(LDAP 그룹으로 동기화)을 클릭합니다. -
User Federation Provider
(사용자 페더) 페이지 하단에서Synchronize all users(모든 사용자 동기화
)를 클릭합니다. -
Clients
(클라이언트) 탭에서Add Client
(클라이언트 추가) 탭에서ovirt-engine
을클라이언트 ID
로 추가하고 엔진 URL을루트 URL
로 입력합니다. -
클라이언트 프로토콜을
openid-connect
로 수정하고액세스 유형을
기밀
로 수정합니다. -
Clients(클라이언트
) 탭의Ovirt-engine
>고급 설정에서
Access Token Lifespan
을 늘립니다. -
https://rhvm.example.com:443/*
을 유효한 리디렉션 URI로 추가합니다. - 클라이언트 시크릿이 생성되며 Credentials(자격 증명) 탭에서 볼 수 있습니다.
Create Mapper Protocol
(매퍼 프로토콜 생성)의Clients
(클라이언트) 탭에서 다음 설정을 사용하여 매퍼를 생성합니다.-
이름
: 그룹 -
매퍼 유형
: Group Membership -
토큰 클레임 이름
: 그룹 -
전체 그룹 경로
:ON
-
ID 토큰에 추가
:ON
-
액세스 토큰에 추가
:ON
-
userinfo에 추가합니다
.ON
-
-
username
에대한 builtin Protocol Mapper
를 추가합니다. -
ovirt-engine, ovirt-app-
api, ovirt-app-
admin 및
에 필요한 범위를 만듭니다.ovirt-
ext=auth:sequence-priority=~ - 이전 단계에서 생성된 범위를 사용하여 ovirt-engine 클라이언트에 대한 선택적 클라이언트 범위를 설정합니다.
3.6.5.3. Manager에서 Apache 구성
mod_auth_openidc
모듈을 활성화합니다.# dnf module enable mod_auth_openidc:2.3 -y
Manager에서 Apache 설정
# dnf install mod_auth_openidc
다음 콘텐츠를 사용하여 /etc/httpd/
conf.d/에 새
.conf 를 만듭니다.httpd
구성 파일 ovirt-openidcLoadModule auth_openidc_module modules/mod_auth_openidc.so OIDCProviderMetadataURL https://SSO.example.com/auth/realms/master/.well-known/openid-configuration OIDCSSLValidateServer Off OIDCClientID ovirt-engine OIDCClientSecret <client_SSO _generated_key> OIDCRedirectURI https://rhvm.example.com/ovirt-engine/callback OIDCDefaultURL https://rhvm.example.com/ovirt-engine/login?scope=ovirt-app-admin+ovirt-app-portal+ovirt-ext%3Dauth%3Asequence-priority%3D%7E # maps the prefered_username claim to the REMOTE_USER environment variable: OIDCRemoteUserClaim <preferred_username> OIDCCryptoPassphrase <random1234> <LocationMatch ^/ovirt-engine/sso/(interactive-login-negotiate|oauth/token-http-auth)|^/ovirt-engine/callback> <If "req('Authorization') !~ /^(Bearer|Basic)/i"> Require valid-user AuthType openid-connect ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0; url=/ovirt-engine/sso/login-unauthorized\"/><body><a href=\"/ovirt-engine/sso/login-unauthorized\">Here</a></body></html>" </If> </LocationMatch> OIDCOAuthIntrospectionEndpoint https://SSO.example.com/auth/realms/master/protocol/openid-connect/token/introspect OIDCOAuthSSLValidateServer Off OIDCOAuthIntrospectionEndpointParams token_type_hint=access_token OIDCOAuthClientID ovirt-engine OIDCOAuthClientSecret <client_SSO _generated_key> OIDCOAuthRemoteUserClaim sub <LocationMatch ^/ovirt-engine/(api$|api/)> AuthType oauth20 Require valid-user </LocationMatch>
구성 변경 사항을 저장하려면 httpd 및 ovirt-engine 을 다시 시작하십시오 :
# systemctl restart httpd # systemctl restart ovirt-engine
다음 콘텐츠를 사용하여 /etc/ovirt
-engine/extensions.d/에 openidc-authn.
properties 파일을 생성합니다.ovirt.engine.extension.name = openidc-authn ovirt.engine.extension.bindings.method = jbossmodule ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine.extension.aaa.misc ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engine.extension.aaa.misc.http.AuthnExtension ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authn ovirt.engine.aaa.authn.profile.name = openidchttp ovirt.engine.aaa.authn.authz.plugin = openidc-authz ovirt.engine.aaa.authn.mapping.plugin = openidc-http-mapping config.artifact.name = HEADER config.artifact.arg = OIDC_CLAIM_preferred_username
다음 콘텐츠를 사용하여 /etc/ovirt
-engine/extensions.d/에 openidc-http-mapping.
properties 파일을 생성합니다.ovirt.engine.extension.name = openidc-http-mapping ovirt.engine.extension.bindings.method = jbossmodule ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine.extension.aaa.misc ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engine.extension.aaa.misc.mapping.MappingExtension ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Mapping config.mapAuthRecord.type = regex config.mapAuthRecord.regex.mustMatch = false config.mapAuthRecord.regex.pattern = ^(?<user>.*?)((\\\\(?<at>@)(?<suffix>.*?)@.*)|(?<realm>@.*))$ config.mapAuthRecord.regex.replacement = ${user}${at}${suffix}
다음 콘텐츠를 사용하여 /etc/ovirt
-engine/extensions.d/에 openidc-authz.
properties 파일을 생성합니다.ovirt.engine.extension.name = openidc-authz ovirt.engine.extension.bindings.method = jbossmodule ovirt.engine.extension.binding.jbossmodule.module = org.ovirt.engine.extension.aaa.misc ovirt.engine.extension.binding.jbossmodule.class = org.ovirt.engine.extension.aaa.misc.http.AuthzExtension ovirt.engine.extension.provides = org.ovirt.engine.api.extensions.aaa.Authz config.artifact.name.arg = OIDC_CLAIM_preferred_username config.artifact.groups.arg = OIDC_CLAIM_groups
다음 콘텐츠를 사용하여 /etc/ovirt
-engine/engine.conf에 99-enable-external-auth
.conf 파일을 생성합니다.ENGINE_SSO_ENABLE_EXTERNAL_SSO=true ENGINE_SSO_EXTERNAL_SSO_LOGOUT_URI="${ENGINE_URI}/callback" EXTERNAL_OIDC_USER_INFO_END_POINT=https://SSO.example.com/auth/realms/master/protocol/openid-connect/userinfo EXTERNAL_OIDC_TOKEN_END_POINT=https://SSO.example.com/auth/realms/master/protocol/openid-connect/token EXTERNAL_OIDC_LOGOUT_END_POINT=https://SSO.example.com/auth/realms/master/protocol/openid-connect/logout EXTERNAL_OIDC_CLIENT_ID=ovirt-engine EXTERNAL_OIDC_CLIENT_SECRET="<client_SSO _generated_key>" EXTERNAL_OIDC_HTTPS_PKI_TRUST_STORE="/etc/pki/java/cacerts" EXTERNAL_OIDC_HTTPS_PKI_TRUST_STORE_PASSWORD="" EXTERNAL_OIDC_SSL_VERIFY_CHAIN=false EXTERNAL_OIDC_SSL_VERIFY_HOST=false
3.6.5.4. OVN 구성
Manager에서 ovirt-ovn-provider 를 구성하는 경우 OVN 공급자 자격 증명을 구성해야 합니다.
절차
/etc/
ovirt-provider-ovn/conf에 파일 20setup
-ovirt-provider-ovn.conf를 만듭니다. 여기서 user1 은 LDAP 그룹 ovirt-administrator 에 속하고 openidchttp 는 aaa-ldap-misc 에 구성된 프로필입니다.[OVIRT] ovirt-admin-user-name=user1@openidchttp
ovirt-provider-ovn
을 다시 시작하십시오.# systemctl restart ovirt-provider-ovn
-
관리 포털에 로그인하고
(관리 공급업체) 로 이동하여 ovirt-provider-ovn 을 선택한 다음 (편집)를 클릭하여 ovn 공급자의 암호를 업데이트합니다.
3.6.5.5. 모니터링 포털 구성(Grafana)
절차
클라이언트의 유효한 리디렉션 URL을 구성합니다.
- 이전 단계에서 구성한 클라이언트 선택(예: ovirt-engine)
-
모니터링 포털(Grafana)에 유효한 리디렉션 URI를 추가합니다. 유효한 리디렉션 URI:
https://rhvm.example.com:443/ovirt-engine-grafana/login/generic_oauth/
- Mappers 탭을 선택합니다.
-
이름:
영역 역할
-
매퍼 유형:
사용자 Realm 역할
-
토큰 클레임 이름:
realm_access.roles
- Claim JSON 유형: 문자열
-
이름:
Grafana 특정 역할을 구성합니다.
- 주 메뉴에서 Roles(역할 )를 선택합니다.
-
admin
,editor
,viewer
역할을 추가합니다.
원하는 그룹에 Grafana 특정 역할을 할당합니다.
- 주 메뉴에서 Groups (그룹)를 선택하고 원하는 그룹을 선택합니다.
- Role Mappings (역할 매핑)를 선택합니다.
- 원하는 역할을 Available Roles(사용 가능한 역할)에서 Assigned Roles (할당된 역할)로 이동합니다.
Grafana 구성 - 다음과 같이
/etc/grafana/grafana
섹션을 수정합니다. 필요에 따라 화살표 괄호에서 < > 값을 바꿉니다..ini에서 auth.
generic_oauth(...) #################################### Generic OAuth ####################### [auth.generic_oauth] name = oVirt Engine Auth enabled = true allow_sign_up = true client_id = ovirt-engine client_secret = <client-secret-of-RH-SSO> scopes = openid,ovirt-app-admin,ovirt-app-portal,ovirt-ext=auth:sequence-priority=~ email_attribute_name = email:primary role_attribute_path = "contains(realm_access.roles[*], 'admin') && 'Admin' || contains(realm_access.roles[*], 'editor') && 'Editor' || 'Viewer'" auth_url = https://<rh-sso-hostname>/auth/realms/<RH-SSO-REALM>/protocol/openid-connect/auth token_url = https://<rh-sso-hostname>/auth/realms/<RH-SSO-REALM>/protocol/openid-connect/token api_url = https://<rh-sso-hostname>/auth/realms/<RH-SSO-REALM>/protocol/openid-connect/userinfo team_ids = allowed_organizations = tls_skip_verify_insecure = false tls_client_cert = tls_client_key = tls_client_ca = /etc/pki/ovirt-engine/apache-ca.pem send_client_credentials_via_post = false (...)
3.6.6. 사용자 권한 부여
3.6.6.1. 사용자 권한 부여 모델
Red Hat Virtualization은 세 가지 구성 요소의 조합에 따라 권한 부여 제어를 적용합니다.
- 작업을 수행하는 사용자
- 수행 중인 작업 유형
- 작업이 수행 중인 객체
3.6.6.2. 사용자 작업
조치를 성공적으로 수행하려면 사용자에게 작업 중인 오브젝트에 적절한 권한이 있어야 합니다. 각 작업 유형에는 해당 권한이 있습니다.
일부 작업은 두 개 이상의 오브젝트에서 수행됩니다. 예를 들어 템플릿을 다른 스토리지 도메인에 복사하면 템플릿과 대상 스토리지 도메인 모두에 영향을 미칩니다. 작업을 수행하는 사용자는 작업에 영향을 미치는 모든 오브젝트에 적절한 권한이 있어야 합니다.
3.6.7. 관리 포털에서 사용자 작업 관리
3.6.7.1. 계정 설정 창
일반 탭:
- 사용자 이름 - 읽기 전용.
- 이메일 - 읽기 전용입니다.
홈 페이지:
기본값 -
#dashboard-main
.사용자 정의 홈 페이지 - 해시 표시 (
#
)를 포함하여 URL의 마지막 부분만 입력합니다. 예:#vms-snapshots;name-testVM
.직렬 콘솔
사용자의 공개 키 - 직렬 콘솔을 사용하여 Manager에 액세스하는 데 사용되는 SSH 공개 키를 입력합니다.
테이블
영구 Grid 설정 - Grid 열 설정을 서버에 저장합니다.
확인 탭:
Suspend VM(VM 일시 중단)에 확인 대화 상자를 표시합니다. VM이 일시 중지될 때 확인 대화 상자를 활성화합니다.
3.6.7.2. 사용자 추가 및 VM 포털 권한 할당
사용자는 역할 및 권한을 추가하고 권한을 할당하기 전에 이미 생성해야 합니다. 이 절차에서 할당된 역할 및 권한은 VM 포털에 로그인하고 가상 시스템 생성을 시작할 수 있는 권한을 사용자에게 제공합니다. 절차는 그룹 계정에도 적용됩니다.
절차
-
헤더 표시줄에서
(구성) 를 클릭합니다. 그러면 Configure(구성 ) 창이 열립니다. - System Permissions (시스템 권한)를 클릭합니다.
- 추가를 클릭합니다. 그러면 Add System Permission to User (사용자에게 시스템 권한 추가) 창이 열립니다.
- Search (검색)에서 프로필을 선택합니다. 프로필은 검색할 도메인입니다. 검색 텍스트 필드에 이름 또는 부분을 입력하고 GO (이동)를 클릭합니다. 또는 GO (이동)를 클릭하여 모든 사용자와 그룹 목록을 봅니다.
- 적절한 사용자 또는 그룹의 확인란을 선택합니다.
- Role to Assign (할당할 역할)에서 할당할 적절한 역할을 선택합니다. UserRole 역할은 VM 포털에 로그인할 수 있는 권한을 사용자에게 제공합니다.
- 클릭합니다.
VM 포털에 로그인하여 사용자 계정에 로그인할 권한이 있는지 확인합니다.
3.6.7.3. 사용자 정보 보기
절차
-
(사용자) 를 클릭하여 권한 있는 사용자 목록을 표시합니다. - 사용자 이름을 클릭합니다. 그러면 일반적으로 General(일반 ) 탭과 함께 세부 정보 보기가 열립니다. 이때 사용자의 도메인 이름, 이메일 및 상태와 같은 일반 정보가 표시됩니다.
- 기타 탭에서는 사용자의 그룹, 권한, 할당량 및 이벤트를 볼 수 있습니다.
예를 들어 사용자가 속한 그룹을 보려면 Directory Groups (디렉토리 그룹) 탭을 클릭합니다.
3.6.7.4. 리소스에 대한 사용자 권한 보기
사용자에게 특정 리소스 또는 리소스 계층 구조에 대한 권한을 할당할 수 있습니다. 할당된 사용자와 각 리소스에 대한 권한을 볼 수 있습니다.
절차
- 리소스 이름을 찾아 클릭합니다. 그러면 세부 정보 보기가 열립니다.
- Permissions(권한 ) 탭을 클릭하여 할당된 사용자, 사용자의 역할 및 선택한 리소스에 대한 상속된 권한을 나열합니다.
3.6.7.5. 사용자 제거
사용자 계정이 더 이상 필요하지 않은 경우 Red Hat Virtualization에서 제거합니다.
절차
-
(사용자) 를 클릭하여 권한 있는 사용자 목록을 표시합니다. - 제거할 사용자를 선택합니다. 사용자가 가상 시스템을 실행 중이 아닌지 확인합니다.
- Remove(제거)를 클릭한 다음 )를 클릭합니다.
사용자는 Red Hat Virtualization에서 제거되지만 외부 디렉터리에서는 제거되지 않습니다.
3.6.7.6. 로그인된 사용자 보기
현재 로그인한 사용자를 세션 시간 및 기타 세부 정보와 함께 볼 수 있습니다.
3.6.7.7. 사용자 세션 종료
현재 로그인한 사용자의 세션을 종료할 수 있습니다.
사용자 세션 종료
-
(활성 사용자 세션) 를 클릭합니다. - 종료할 사용자 세션을 선택합니다.
- Terminate Session (종료 세션)을 클릭합니다.
- 클릭합니다.
3.6.8. 명령줄에서 사용자 작업 관리
ovirt-aaa-jdbc-tool
툴을 사용하여 내부 도메인에서 사용자 계정을 관리할 수 있습니다. 툴을 사용하여 변경한 내용은 즉시 적용되며 ovirt-engine
서비스를 다시 시작할 필요가 없습니다. 전체 사용자 옵션 목록은 ovirt-aaa-jdbc-tool user --help
를 실행합니다. 일반적인 예제는 이 섹션에 나와 있습니다.
관리자 시스템에 로그인해야 합니다.
3.6.8.1. 새 사용자 생성
새 사용자 계정을 만들 수 있습니다. 선택적 --attribute
명령은 계정 세부 정보를 지정합니다. 전체 옵션 목록은 ovirt-aaa-jdbc-tool 사용자 add --help
를 실행합니다.
# ovirt-aaa-jdbc-tool user add test1 --attribute=firstName=John --attribute=lastName=Doe adding user test1... user added successfully
관리 포털에 새로 생성된 사용자를 추가하고 사용자에게 적절한 역할 및 권한을 할당할 수 있습니다. 자세한 내용은 사용자 추가 를 참조하십시오.
3.6.8.2. 사용자 암호 설정
암호를 생성할 수 있습니다. --password-valid-to
의 값을 설정해야 합니다. 그렇지 않으면 암호 만료 시간이 현재 시간으로 설정됩니다.
+ 날짜 형식은 yyyy-MM-dd HH:mm:sX입니다
. 여기서 X
는 UTC에서 오프셋된 표준 시간대입니다. 이 예에서 -0800
은 -8시간을 나타냅니다. 0 오프셋의 경우 Z
값을 사용합니다.
+ 더 많은 옵션을 보려면 ovirt-aaa-jdbc-tool 사용자 password-reset --help
를 실행합니다.
# ovirt-aaa-jdbc-tool user password-reset test1 --password-valid-to="2025-08-01 12:00:00-0800" Password: updating user test1... user updated successfully
기본적으로 internal 도메인의 사용자 계정에 대한 암호 정책에는 다음과 같은 제한 사항이 있습니다.
- 최소 6자.
- 사용된 세 개의 이전 암호는 암호 변경 중에 다시 설정할 수 없습니다.
암호 정책 및 기타 기본 설정에 대한 자세한 내용을 보려면 ovirt-aa-jdbc-tool settings show
를 실행합니다.
관리자 암호가 업데이트되면 변경 사항을 수동으로 ovirt-provider-ovn
으로 전파해야 합니다. 그렇지 않으면 Red Hat Virtualization Manager에서 ovirt-provider-ovn
의 네트워크를 동기화하는 데 이전 암호를 계속 사용하므로 관리자가 잠깁니다. 새 암호를 ovirt-provider-ovn
에 전파하려면 다음을 수행합니다.
-
관리 포털에서 Administration(관리)
(공급업체) 를 클릭합니다. - ovirt-provider-ovn 을 선택합니다.
- Edit(편집 )를 클릭하고 Password(암호 ) 필드에 새 암호를 입력합니다.
- (테스트)를 클릭하여 제공한 자격 증명을 사용하여 인증이 성공했는지 테스트합니다.
- 인증 테스트에 성공하면 )를 클릭합니다.
3.6.8.3. 사용자 시간 제한 설정
사용자 시간 초과 기간을 설정할 수 있습니다.
# engine-config --set UserSessionTimeOutInterval=integer
3.6.8.4. 사용자 암호 사전 암호화
ovirt-engine-crypto-tool
스크립트를 사용하여 미리 암호화된 사용자 암호를 생성할 수 있습니다. 이 옵션은 스크립트를 사용하여 데이터베이스에 사용자와 암호를 추가하는 경우 유용합니다.
암호는 관리자 데이터베이스에 암호화된 형태로 저장됩니다. ovirt-engine-crypto-tool
스크립트는 모든 암호를 동일한 알고리즘으로 암호화해야 하기 때문에 사용됩니다.
암호가 미리 암호화되면 암호 유효성 테스트를 수행할 수 없습니다. 암호 유효성 검사 정책을 준수하지 않더라도 암호가 수락됩니다.
다음 명령을 실행합니다.
# /usr/share/ovirt-engine/bin/ovirt-engine-crypto-tool.sh pbe-encode
스크립트에서 암호를 입력하라는 메시지를 표시합니다.
또는
--password=file:file
옵션을 사용하여 파일의 첫 번째 행으로 표시되는 단일 암호를 암호화할 수 있습니다. 이 옵션은 자동화에 유용합니다. 다음 예제에서file
은 암호화를 위해 단일 암호를 포함하는 텍스트 파일입니다.# /usr/share/ovirt-engine/bin/ovirt-engine-crypto-tool.sh pbe-encode --password=file:file
--encrypted
옵션을 사용하여ovirt-aaa-jdbc-tool
스크립트를 사용하여 새 암호를 설정합니다.# ovirt-aaa-jdbc-tool user password-reset test1 --password-valid-to="2025-08-01 12:00:00-0800" --encrypted
암호화된 암호를 입력하고 확인합니다.
Password: Reenter password: updating user test1... user updated successfully
3.6.8.5. 사용자 정보 보기
자세한 사용자 계정 정보를 볼 수 있습니다.
# ovirt-aaa-jdbc-tool user show test1
이 명령은 관리 포털의 Administration Users(관리 포털)의
3.6.8.6. 사용자 정보 편집
이메일 주소와 같은 사용자 정보를 업데이트할 수 있습니다.
# ovirt-aaa-jdbc-tool user edit test1 --attribute=email=jdoe@example.com
3.6.8.7. 사용자 제거
사용자 계정을 제거할 수 있습니다.
# ovirt-aaa-jdbc-tool user delete test1
관리 포털에서 사용자를 제거합니다. 자세한 내용은 사용자 제거를 참조하십시오.
3.6.8.8. 내부 관리 사용자 비활성화
engine-setup
중에 생성된 admin@internal 사용자를 포함하여 로컬 도메인에서 사용자를 비활성화할 수 있습니다. 기본 admin 사용자를 비활성화하기 전에 전체 관리 권한이 있는 envrionment에 하나 이상의 사용자가 있는지 확인합니다.
절차
- Red Hat Virtualization Manager가 설치된 시스템에 로그인합니다.
- SuperUser 역할의 다른 사용자가 환경에 추가되었는지 확인합니다. 자세한 내용은 사용자 추가 를 참조하십시오.
기본 admin 사용자를 비활성화합니다.
# ovirt-aaa-jdbc-tool user edit
admin
--flag=+disabled
비활성화된 사용자를 활성화하려면 ovirt-aaa-jdbc-tool user edit username --flag=-disabled
를 실행합니다.
3.6.8.9. 그룹 관리
ovirt-aaa-jdbc-tool
툴을 사용하여 내부 도메인의 그룹 계정을 관리할 수 있습니다. 그룹 계정 관리는 사용자 계정 관리와 유사합니다. 전체 그룹 옵션 목록은 ovirt-aaa-jdbc-tool group --help
를 실행합니다. 일반적인 예제는 이 섹션에 나와 있습니다.
그룹 생성
다음 절차에서는 그룹 계정을 생성하고, 사용자를 그룹에 추가하고, 그룹의 세부 정보를 확인하는 방법을 보여줍니다.
- Red Hat Virtualization Manager가 설치된 시스템에 로그인합니다.
새 그룹을 생성합니다.
# ovirt-aaa-jdbc-tool group add group1
사용자를 그룹에 추가합니다. 사용자를 이미 만들어야 합니다.
# ovirt-aaa-jdbc-tool group-manage useradd group1 --user=test1
참고group-manage 옵션의 전체 목록은
ovirt-aaa-jdbc-tool group-manage --help
를 실행합니다.그룹 계정 세부 정보 보기:
# ovirt-aaa-jdbc-tool group show group1
- 관리 포털에 새로 생성된 그룹을 추가하고 그룹에 적절한 역할과 권한을 할당합니다. 그룹의 사용자는 그룹의 역할 및 권한을 상속받습니다. 자세한 내용은 사용자 추가 를 참조하십시오.
중첩 그룹 생성
다음 절차에서는 그룹 내에 그룹을 만드는 방법을 설명합니다.
- Red Hat Virtualization Manager가 설치된 시스템에 로그인합니다.
첫 번째 그룹을 생성합니다.
# ovirt-aaa-jdbc-tool group add group1
두 번째 그룹을 생성합니다.
# ovirt-aaa-jdbc-tool group add group1-1
두 번째 그룹을 첫 번째 그룹에 추가합니다.
# ovirt-aaa-jdbc-tool group-manage groupadd group1 --group=group1-1
- 관리 포털에 첫 번째 그룹을 추가하고 그룹에 적절한 역할 및 권한을 할당합니다. 자세한 내용은 사용자 추가 를 참조하십시오.
3.6.8.10. 사용자 및 그룹 쿼리
query
모듈을 사용하면 사용자 및 그룹 정보를 쿼리할 수 있습니다. 전체 옵션 목록은 ovirt-aaa-jdbc-tool 쿼리 --help
를 실행합니다.
모든 사용자 또는 그룹 계정 정보 나열
다음 절차에서는 모든 계정 정보를 나열하는 방법을 설명합니다.
- Red Hat Virtualization Manager가 설치된 시스템에 로그인합니다.
계정 세부 정보를 나열합니다.
모든 사용자 계정 세부 정보:
# ovirt-aaa-jdbc-tool query --what=user
모든 그룹 계정 세부 사항:
# ovirt-aaa-jdbc-tool query --what=group
필터링된 계정 정보 나열
다음 절차에서는 계정 정보를 나열할 때 필터를 적용하는 방법을 설명합니다.
- Red Hat Virtualization Manager가 설치된 시스템에 로그인합니다.
pattern 매개 변수를 사용하여 계정 세부
정보를
필터링합니다.j 문자로 시작하는 이름으로 사용자 계정 세부 정보를 나열합니다.
# ovirt-aaa-jdbc-tool query --what=user --pattern="name=j*"
marketing 으로 설정된 department 속성이 있는 그룹을 나열합니다 :
# ovirt-aaa-jdbc-tool query --what=group --pattern="department=marketing"
3.6.8.11. 계정 설정 관리
기본 계정 설정을 변경하려면 ovirt-aaa-jdbc-tool
설정
모듈을 사용합니다.
계정 설정 업데이트 중
다음 절차에서는 기본 계정 설정을 업데이트하는 방법을 설명합니다.
- Red Hat Virtualization Manager가 설치된 시스템에 로그인합니다.
사용 가능한 모든 설정을 표시하려면 다음 명령을 실행합니다.
# ovirt-aaa-jdbc-tool settings show
원하는 설정을 변경합니다.
이 예제에서는 모든 사용자 계정의 기본 로그인 세션 시간을 60분으로 업데이트합니다. 기본값은 10080분입니다.
# ovirt-aaa-jdbc-tool settings set --name=MAX_LOGIN_MINUTES --value=60
이 예제에서는 사용자 계정을 잠그기 전에 사용자가 수행할 수 있는 실패한 로그인 시도 횟수를 업데이트합니다. 기본값은 5입니다.
# ovirt-aaa-jdbc-tool settings set --name=MAX_FAILURES_SINCE_SUCCESS --value=3
참고잠긴 사용자 계정을 잠금 해제하려면
ovirt-aaa-jdbc-tool user unlock test1
을 실행합니다.
3.6.9. 추가 로컬 도메인 구성
기본 내부 도메인 이외의 추가 로컬 도메인 생성도 지원됩니다. 이 작업은 ovirt-engine-extension-aaa-jdbc 확장을 사용하여 수행될 수 있으며, 엔터프라이즈 환경에서는 사용 사례가 일반적이 아닐 수도 있지만 외부 디렉터리 서버를 연결하지 않고 여러 도메인을 만들 수 있습니다.
또한 생성된 로컬 도메인은 표준 Red Hat Virtualization 업그레이드 중에 자동으로 업그레이드되지 않으며 향후 각 릴리스에 대해 수동으로 업그레이드해야 합니다. 추가 로컬 도메인 생성 및 도메인 업그레이드 방법에 대한 자세한 내용은 /usr/share/doc/ovirt-engine-extension-aaa-jdbc-버전/README.admin 에서 README 파일을 참조하십시오.
ovirt-engine-extension-aaa-jdbc
확장은 더 이상 사용되지 않습니다. 새로 설치하는 경우 Red Hat Single Sign On을 사용하십시오. 자세한 내용은 관리 가이드의 Red Hat Single Sign-On 설치 및 구성을 참조하십시오.