11.3. 미세 조정 관리자 권한
미세한 관리자 권한은 기술 프리뷰 이며 완전히 지원되지 않습니다. 이 기능은 기본적으로 비활성화되어 있습니다.
-Dkeycloak.profile=preview
또는 -Dkeycloak.profile.feature.admin_fine_grained_authz=enabled
를 사용하여 서버를 시작하려면 다음을 실행합니다. 자세한 내용은 프로필을 참조하십시오.
manage-realm
또는 manage-users
와 같은 역할이 너무 어울릴 수 있으며 더 미세한 조정 권한이 있는 제한된 관리 계정을 생성하려고 합니다. Red Hat Single Sign-On을 사용하면 영역 관리를 위한 제한된 액세스 정책을 정의하고 할당할 수 있습니다. 과 같은 것:
- 특정 클라이언트 관리
- 특정 그룹에 속한 사용자 관리
- 그룹의 멤버십 관리
- 제한된 사용자 관리
- 알츠하이크 가장 제어
- 사용자에게 특정 제한된 역할 집합을 할당할 수 있습니다.
- 특정 제한된 역할 세트를 복합 역할에 할당할 수 있습니다.
- 클라이언트의 범위에 특정 제한된 역할 집합을 할당할 수 있습니다.
- 사용자, 그룹, 역할 및 클라이언트를 보고 관리하기 위한 새로운 일반 정책
고급 관리자 권한에 대해 유의해야 할 몇 가지 중요한 사항이 있습니다.
11.3.1. 특정 클라이언트 관리
먼저 관리자가 하나의 클라이언트와 클라이언트 1개만 관리하도록 허용하는 방법을 살펴보겠습니다. 이 예제에서는 test
라는 영역과 sales-application
클라이언트가 있습니다. 영역 테스트에서
해당 애플리케이션만 관리할 수 있는 권한을 해당 영역에 사용자에게 부여합니다.
영역의 미세한 권한은 교차할 수 없습니다. 마스터
영역의 관리자는 이전 장에서 정의한 사전 정의된 admin 역할로 제한됩니다.
11.3.1.1. 권한 설정
가장 먼저 수행해야 하는 작업은 해당 클라이언트에 대한 권한을 설정할 수 있도록 Admin Console에 로그인하는 것입니다. 클라이언트의 관리 섹션으로 이동하여 에 대한 세분화된 권한을 정의하려고 합니다.
클라이언트 관리
Permissions
라는 탭 메뉴 항목이 표시되어야 합니다. 해당 탭을 클릭합니다.
클라이언트 권한 탭
기본적으로 각 클라이언트는 미세 조정 권한을 수행할 수 없습니다. 따라서 권한 활성화를 on으로
전환하여 권한을 초기화합니다.
Permissions Enabled
스위치를 끄면 이 클라이언트에 대해 정의한 모든 권한과 모든 권한이 삭제됩니다.
클라이언트 권한 탭
Permissions Enabled
를 on으로 전환할 때 Authorization Services 를 사용하여 백그라운드에서 다양한 권한 오브젝트를 초기화합니다. 이 예제에서는 클라이언트의 관리
권한에 관심이 있습니다. 이를 클릭하면 클라이언트의 관리
권한을 처리하는 권한으로 리디렉션됩니다. 모든 권한 부여 오브젝트는 realm-management
클라이언트의 권한 부여
탭에 포함됩니다.
클라이언트 관리 권한
관리
권한을 처음 초기화하는 경우 연결된 정책이 없습니다. 정책 탭으로 이동하여 이를 생성해야 합니다. 속도를 높이려면 위 이미지에 표시된 권한 부여
링크를 클릭합니다. 그런 다음 정책 탭을 클릭합니다.
이 페이지에 정책 만들기
라는 풀다운 메뉴가 있습니다. 정의할 수 있는 다양한 정책이 있습니다. 역할 또는 그룹과 연결된 정책을 정의하거나 JavaScript에서 규칙을 정의할 수도 있습니다. 이 간단한 예제에서는 사용자 정책을
만들 것입니다.
사용자 정책
이 정책은 사용자 데이터베이스의 하드 코딩된 사용자와 일치합니다. 이 경우 sales-admin
사용자입니다. 그런 다음 Sales -application
클라이언트의 관리
권한 페이지로 돌아가서 정책을 권한 오브젝트에 할당해야 합니다.
사용자 정책 할당
sales-admin
사용자에게 Sales -application
클라이언트를 관리할 수 있는 권한이 있습니다.
한 가지 더 해야 할 일이 있습니다. Role Mappings
탭으로 이동하여 query-clients
역할을 sales-admin
에 할당합니다.
쿼리-클라이언트 할당
왜 이렇게 해야 합니까? 이 역할은 Sales -admin
이 Admin Console에 이동하면 Admin Console에 어떤 메뉴 항목을 렌더링해야 하는지 알려줍니다. query-clients
역할은 Admin Console에 sales-admin
사용자의 클라이언트 메뉴를 렌더링해야 함을 지시합니다.
query-clients
역할을 설정하지 않으면 sales-admin
과 같은 제한된 관리자가 Admin Console에 로그인할 때 메뉴 옵션을 볼 수 없습니다.
11.3.1.2. 테스트
다음으로 마스터 영역에서 로그아웃하고 sales- admin 을 사용자 이름으로 사용하여
다시 로그인합니다. 테스트
영역의 전용 관리 콘솔에/auth/admin/test/console
에 있습니다.
Sales admin login
이 관리자는 이제 하나의 클라이언트를 관리할 수 있습니다.
11.3.2. 사용자 역할 매핑 제한
사용자가 할 수 있는 또 다른 작업은 관리자가 사용자에게 할당할 수 있는 역할 세트를 제한하는 것입니다. 마지막 예제를 계속 진행하면 'sales-admin' 사용자의 권한 집합을 확장하여 이 애플리케이션에 액세스할 수 있는 사용자도 제어할 수 있습니다. 세분화된 권한을 통해 영업 관리자가 영업
애플리케이션에
대한 특정 액세스 권한을 부여하는 역할만 할당할 수 있도록 활성화할 수 있습니다. 또한 관리자가 역할만 매핑할 수 있도록 제한할 수 있으며 다른 유형의 사용자 관리는 수행할 수 없습니다.
Sales -application
세 가지 클라이언트 역할을 정의했습니다.
영업 애플리케이션 역할
sales-admin
사용자가 이러한 역할을 시스템의 모든 사용자에게 매핑해야 합니다. 이 작업을 수행하는 첫 번째 단계는 관리자가 역할을 매핑할 수 있도록 허용하는 것입니다. viewLeads
역할을 클릭하면 이 역할에 대한 권한
탭이 표시됩니다.
View leads role 권한 탭
해당 탭을 클릭하고 사용 권한
활성화를 설정하면 정책을 적용할 수 있는 다양한 작업이 표시됩니다.
리더 권한 보기
우리가 관심있는 것은 map-role
입니다. 이 권한을 클릭하고 이전 예제에서 만든 것과 동일한 User Policy를 추가합니다.
map-roles 권한
Red Hat은 영업 관리자가
viewLeads
역할을 매핑할 수 있다고 말합니다. 아직 수행하지 않은 것은 관리자가 이 역할을 매핑할 수 있는 사용자를 지정하는 것입니다. 이렇게 하려면 이 영역에 대해 관리 콘솔의 사용자
섹션으로 이동해야 합니다. Users
left 메뉴 항목을 클릭하면 영역의 사용자 인터페이스로 이동합니다. 권한
탭이 표시되어야 합니다. 이를 클릭하고 활성화합니다.
사용자 권한
관심 있는 권한은 map-roles
입니다. 이는 관리자가 역할을 사용자에게 매핑할 수 있는 기능만 허용한다는 점에서 제한적인 정책입니다. map-roles
권한을 클릭하고 이를 위해 만든 사용자 정책을 다시 추가하면 영업 관리자가
역할을 모든 사용자에게 매핑할 수 있습니다.
마지막으로 해야 할 것은 sales-admin
에 view-users
역할을 추가하는 것입니다. 이를 통해 관리자는 Sales -application 역할을 추가하려는 영역의 사용자를
볼 수 있습니다.
view-users 추가
11.3.2.1. 테스트
다음으로 마스터 영역에서 로그아웃하고 sales- admin 을 사용자 이름으로 사용하여
다시 로그인합니다. 테스트
영역의 전용 관리 콘솔에/auth/admin/test/console
에 있습니다.
이제 sales-admin
이 시스템의 사용자를 볼 수 있음을 확인할 수 있습니다. 사용자 중 하나를 선택하면 Role Mappings
탭을 제외하고 각 사용자 세부 정보 페이지가 읽기 전용으로 표시됩니다. 이 탭으로 이동하면 영업 애플리케이션
역할을 검색할 때를 제외하고 관리자가 사용자에게 매핑할 수 있는 사용
가능한 역할이 없음을 확인할 수 있습니다.
보기 추가
영업 관리자가
할 수 있도록만 지정했습니다.
viewLeads
역할을 매핑
11.3.2.2. 클라이언트 map-roles 바로 가기
영업 애플리케이션이
게시한 모든 클라이언트 역할에 대해 이를 수행해야 하는 경우 관리자가 클라이언트에서 정의한 모든 역할을 매핑할 수 있도록 지정하는 방법이 있습니다. 관리 콘솔에 마스터 영역 관리자에게 다시 로그인하고 sales-application
권한 페이지로 돌아가 map-roles
권한이 표시됩니다.
클라이언트 맵-roles 권한
관리자에게 이 특정 권한에 대한 액세스 권한을 부여하면 해당 관리자가 클라이언트에서 정의한 모든 역할을 매핑할 수 있습니다.
11.3.3. 전체 권한 목록
특정 클라이언트 또는 클라이언트의 특정 역할을 관리하는 것 이상의 미세한 권한을 통해 훨씬 더 많은 작업을 수행할 수 있습니다. 이 장에서는 영역에 대해 설명할 수 있는 전체 권한 유형 목록을 정의합니다.
11.3.3.1. Role
특정 역할의 권한
탭으로 이동하면 이러한 권한 유형이 나열됩니다.
- map-role
- 관리자가 이 역할을 사용자에게 매핑할 수 있는지 결정하는 정책입니다. 이러한 정책은 관리자가 사용자 역할 매핑 작업을 수행할 수 없는 경우 역할을 사용자에게 매핑할 수 있도록만 지정합니다. 관리자는 관리 또는 역할 매핑 권한이 있어야 합니다. 자세한 내용은 사용자 권한 을 참조하십시오.
- map-role-composite
-
관리자가 이 역할을 다른 역할에 매핑할 수 있는지 결정하는 정책입니다. 관리자는 해당 클라이언트에 대한 권한을 관리해야 하는 경우 클라이언트에 대한 역할을 정의할 수 있지만 컴포지션으로 추가하려는 역할에 대한
map-role-composite
권한이 없으면 해당 역할에 복합을 추가할 수 없습니다. - map-role-client-scope
- 관리자가 이 역할을 클라이언트 범위에 적용할 수 있는지 결정하는 정책입니다. 관리자가 클라이언트를 관리할 수 있는 경우에도 이 권한이 부여되지 않는 한 이 역할이 포함된 해당 클라이언트에 대한 토큰을 생성할 수 있는 권한이 없습니다.
11.3.3.2. 클라이언트
특정 클라이언트의 권한
탭으로 이동하면 이러한 권한 유형이 나열됩니다.
- view
- 관리자가 클라이언트 구성을 볼 수 있는지 여부를 결정하는 정책입니다.
- 관리
- 관리자가 클라이언트 구성을 보고 관리할 수 있는지 결정하는 정책입니다. 이러한 권한에는 실수로 유출될 수 있는 몇 가지 문제가 있습니다. 예를 들어, admin은 관리자가 역할을 클라이언트의 범위에 매핑할 권한이 없는 경우에도 역할을 하드 코딩한 프로토콜 매퍼를 정의할 수 있습니다. 현재 이는 역할처럼 개별 권한을 할당할 방법이 없으므로 프로토콜 매퍼의 제한입니다.
- configure
-
클라이언트를 관리하기 위한 권한 집합 감소. 이는 admin이 프로토콜 매퍼를 정의하거나 클라이언트 템플릿 또는 클라이언트의 범위를 변경할 수 없다는 점을 제외하고
manage
범위와 같습니다. - map-roles
- 관리자가 클라이언트에서 정의한 역할을 사용자에게 매핑할 수 있는지 여부를 결정하는 정책입니다. 이는 클라이언트에서 정의한 각 역할에 대한 정책을 정의하지 않도록 하는 바로 가기적이고 사용하기 쉬운 기능입니다.
- map-roles-composite
- 관리자가 클라이언트에서 정의한 역할을 복합 역할로 매핑할 수 있는지 여부를 결정하는 정책입니다. 이는 클라이언트에서 정의한 각 역할에 대한 정책을 정의하지 않도록 하는 바로 가기적이고 사용하기 쉬운 기능입니다.
- map-roles-client-scope
- 관리자가 클라이언트에서 정의한 역할을 다른 클라이언트의 범위에 매핑할 수 있는지 여부를 결정하는 정책입니다. 이는 클라이언트에서 정의한 각 역할에 대한 정책을 정의하지 않도록 하는 바로 가기적이고 사용하기 쉬운 기능입니다.
11.3.3.3. 사용자
모든 사용자의 권한
탭으로 이동하면 이러한 권한 유형이 나열됩니다.
- view
- 관리자가 영역의 모든 사용자를 볼 수 있는지 여부를 결정하는 정책입니다.
- 관리
- 관리자가 영역의 모든 사용자를 관리할 수 있는지 여부를 결정하는 정책입니다. 이 권한은 관리자에게 사용자 역할 매핑을 수행할 수 있는 권한을 부여하지만 관리자가 매핑할 수 있는 역할을 지정하지는 않습니다. 관리자가 매핑할 수 있도록 하려면 각 역할에 대한 권한을 정의해야 합니다.
- map-roles
-
이는
manage
범위에서 부여하는 권한의 하위 집합입니다. 이 경우 관리자는 역할을 매핑할 수만 있습니다. 관리자는 다른 사용자 관리 작업을 수행할 수 없습니다. 또한manage
와 같이 admin이 적용할 수 있는 역할은 역할별로 또는 클라이언트 역할을 처리하는 경우 역할별로 지정해야 합니다. - manage-group-membership
-
map-roles
와 유사합니다. 단, 그룹 멤버십과 관련이 있음: 사용자를 추가하거나 제거할 수 있는 그룹입니다. 이러한 정책은 관리자가 멤버십을 관리할 수 있는 그룹이 아닌 그룹 멤버십을 관리할 수 있는 관리자 권한만 부여합니다. 각 그룹의manage-members
권한에 대한 정책을 지정해야 합니다. - impersonate
- 관리자가 다른 사용자로 가장할 수 있는지 여부를 결정하는 정책입니다. 이러한 정책은 관리자의 속성 및 역할 매핑에 적용됩니다.
- user-impersonated
- 가장할 수 있는 사용자를 결정하는 정책입니다. 이러한 정책은 가장하는 사용자에게 적용됩니다. 예를 들어, admin 권한이 있는 사용자를 가장하지 못하도록 금지할 정책을 정의하려고 할 수 있습니다.
11.3.3.4. 그룹
특정 그룹의 권한
탭으로 이동하면 이러한 권한 유형이 나열됩니다.
- view
- 관리자가 그룹에 대한 정보를 볼 수 있는지 여부를 결정하는 정책입니다.
- 관리
- 관리자가 그룹 구성을 관리할 수 있는지 여부를 결정하는 정책입니다.
- view-members
- 관리자가 그룹 멤버의 사용자 세부 정보를 볼 수 있는지 여부를 결정하는 정책입니다.
- manage-members
- 관리자가 이 그룹에 속하는 사용자를 관리할 수 있는지 여부를 결정하는 정책입니다.
- manage-membership
- 관리자가 그룹의 멤버십을 변경할 수 있는지 여부를 결정하는 정책입니다. 그룹에서 멤버를 추가하거나 제거합니다.