5.3. 서비스 레지스트리 인증 및 권한 부여 구성 옵션
서비스 레지스트리는 Red Hat Single Sign-On 및 HTTP 기본 인증을 사용하여 OpenID Connect에 대한 인증 옵션을 제공합니다.
서비스 레지스트리는 역할 기반 및 콘텐츠 기반 접근 방식에 대한 권한 부여 옵션을 제공합니다.
- 기본 admin, 쓰기 및 읽기 전용 사용자 역할에 대한 역할 기반 권한 부여입니다.
- 아티팩트 또는 아티팩트 그룹의 소유자만 업데이트하거나 삭제할 수 있는 스키마 또는 API 아티팩트에 대한 콘텐츠 기반 권한 부여입니다.
서비스 레지스트리의 모든 인증 및 권한 부여 옵션은 기본적으로 비활성화되어 있습니다. 이러한 옵션을 활성화하기 전에 먼저 AUTH_ENABLED
옵션을 true
로 설정해야 합니다.
이 장에서는 다음 구성 옵션에 대해 자세히 설명합니다.
Red Hat Single Sign-On과 OpenID Connect를 사용하여 서비스 레지스트리 인증
다음 환경 변수를 설정하여 Red Hat Single Sign-On을 사용하여 서비스 레지스트리 웹 콘솔 및 API에 대한 인증을 구성할 수 있습니다.
환경 변수 | 설명 | 유형 | Default |
---|---|---|---|
|
서비스 레지스트리에 대한 인증을 활성화합니다. | 문자열 |
|
|
Red Hat Single Sign-On 인증 서버의 URL입니다. 예: | 문자열 | - |
|
인증을 위한 Red Hat Single Sign-On 영역. 예: | 문자열 | - |
| 서비스 레지스트리 REST API의 클라이언트 ID입니다. | 문자열 |
|
| 서비스 레지스트리 웹 콘솔의 클라이언트 ID입니다. | 문자열 |
|
HTTP 기본 설정을 사용하여 서비스 레지스트리 인증
기본적으로 서비스 레지스트리는 OpenID Connect를 사용하여 인증을 지원합니다. 사용자 또는 API 클라이언트는 Service Registry REST API에 대한 인증된 호출을 수행하기 위해 액세스 토큰을 가져와야 합니다. 그러나 일부 툴에서 OpenID Connect를 지원하지 않기 때문에 다음 구성 옵션을 true
로 설정하여 HTTP 기본 인증을 지원하도록 Service Registry를 구성할 수도 있습니다.
환경 변수 | Java 시스템 속성 | 유형 | 기본값 |
---|---|---|---|
|
| 부울 |
|
|
| 부울 |
|
Service Registry HTTP 기본 클라이언트 인증 정보 캐시 만료
HTTP 기본 클라이언트 인증 정보 캐시 만료 시간을 구성할 수도 있습니다. 기본적으로 HTTP 기본 인증을 사용할 때 Service Registry는 JWT 토큰을 캐시하고 필요하지 않은 경우 새 토큰을 발행하지 않습니다. 기본적으로 10분으로 설정된 JWT 토큰의 캐시 만료 시간을 구성할 수 있습니다.
Red Hat Single Sign-On을 사용하는 경우 이 구성을 Red Hat Single Sign-On JWT 만료 시간으로 1분으로 설정하는 것이 가장 좋습니다. 예를 들어 Red Hat Single Sign-On에서 만료 시간이 5
분으로 설정된 경우 다음 설정 옵션을 4
분으로 설정해야 합니다.
환경 변수 | Java 시스템 속성 | 유형 | 기본값 |
---|---|---|---|
|
| 정수 |
|
서비스 레지스트리 역할 기반 권한 부여
다음 옵션을 true
로 설정하여 서비스 레지스트리에서 역할 기반 권한을 활성화할 수 있습니다.
환경 변수 | Java 시스템 속성 | 유형 | 기본값 |
---|---|---|---|
|
| 부울 |
|
|
| 부울 |
|
그런 다음 사용자의 인증 토큰에 포함된 역할을 사용하거나(예: Red Hat Single Sign-On을 사용하여 인증할 때 부여됨) 서비스 레지스트리에서 내부적으로 관리하는 역할 매핑을 사용하도록 역할 기반 권한을 구성할 수 있습니다.
Red Hat Single Sign-On에서 할당된 역할 사용
Red Hat Single Sign-On에서 할당한 역할을 사용하여 활성화하려면 다음 환경 변수를 설정합니다.
환경 변수 | 설명 | 유형 | Default |
---|---|---|---|
|
| 문자열 |
|
| 사용자가 관리자임을 나타내는 역할의 이름입니다. | 문자열 |
|
| 사용자가 개발자임을 나타내는 역할의 이름입니다. | 문자열 |
|
| 사용자에게 읽기 전용 액세스 권한을 나타내는 역할의 이름입니다. | 문자열 |
|
Red Hat Single Sign-On의 역할을 사용하도록 Service Registry가 구성된 경우 Red Hat Single Sign-On에서 다음 사용자 역할 중 하나 이상에 서비스 레지스트리 사용자를 할당해야 합니다. 그러나 표 5.10. “Red Hat Single Sign-On을 사용하여 Service Registry 역할 기반 권한 부여 구성” 의 환경 변수를 사용하여 다른 사용자 역할 이름을 구성할 수 있습니다.
역할 이름 | 아티팩트 읽기 | 아티팩트 작성 | 글로벌 규칙 | 설명 |
---|---|---|---|---|
| 제공됨 | 제공됨 | 제공됨 | 모든 생성, 읽기, 업데이트 및 삭제 작업에 대한 전체 액세스 권한 |
| 제공됨 | 제공됨 | 없음 | 글로벌 규칙 및 가져오기/내보냄을 구성하는 것을 제외하고 생성, 읽기, 업데이트 및 삭제 작업에 대한 액세스 권한이 있어야 합니다. 이 역할은 아티팩트별 규칙만 구성할 수 있습니다. |
| 제공됨 | 없음 | 없음 | 읽기 및 검색 작업만 액세스할 수 있습니다. 이 역할은 규칙을 구성할 수 없습니다. |
서비스 레지스트리에서 직접 역할 관리
서비스 레지스트리에서 내부적으로 관리하는 역할을 사용하려면 다음 환경 변수를 설정합니다.
환경 변수 | 설명 | 유형 | Default |
---|---|---|---|
|
| 문자열 |
|
내부적으로 관리되는 역할 매핑을 사용하는 경우 Service Registry REST API에서 /admin/roleMappings
엔드포인트를 사용하여 사용자에게 역할을 할당할 수 있습니다. 자세한 내용은 Apicurio Registry REST API 설명서를 참조하십시오.
사용자에게 ADMIN
,DEVELOPER
또는 READ_ONLY
라는 역할이 정확히 하나만 부여될 수 있습니다. 관리자 권한이 있는 사용자만 다른 사용자에게 액세스 권한을 부여할 수 있습니다.
Service Registry 관리-override 구성
서비스 레지스트리에는 기본 관리자 사용자가 없으므로 일반적으로 사용자가 관리자로 식별할 수 있는 다른 방법을 구성하는 것이 도움이 됩니다. 다음 환경 변수를 사용하여 admin-override 기능을 구성할 수 있습니다.
환경 변수 | 설명 | 유형 | Default |
---|---|---|---|
| admin-override 기능을 활성화합니다. | 문자열 |
|
|
관리자 덮어쓰기 정보는 어디에서 찾을 수 있습니까. 현재 | 문자열 |
|
|
사용자가 관리자인지 확인하는 데 사용되는 정보 유형입니다. 값은 FROM이 | 문자열 |
|
| 사용자가 관리자임을 나타내는 역할의 이름입니다. | 문자열 |
|
| admin-override를 결정하는 데 사용할 JWT 토큰 클레임의 이름입니다. | 문자열 |
|
| CLAIM 변수에 표시된 JWT 토큰 클레임 값은 사용자에게 admin-override를 부여하기 위한 값이어야 합니다. | 문자열 |
|
예를 들어 이 관리자 덮어쓰기 기능을 사용하여 Red Hat Single Sign-On의 단일 사용자에게 sr-admin
역할을 할당하여 해당 사용자에게 admin 역할을 부여할 수 있습니다. 그러면 해당 사용자는 /admin/roleMappings
REST API(또는 관련 UI)를 사용하여 추가 사용자(추가 관리자 포함)에 역할을 부여할 수 있습니다.
서비스 레지스트리 소유자 전용 권한 부여
다음 옵션을 true
로 설정하여 Service Registry의 아티팩트 또는 아티팩트 그룹에 대한 업데이트에 대한 소유자 전용 권한을 활성화할 수 있습니다.
환경 변수 | Java 시스템 속성 | 유형 | 기본값 |
---|---|---|---|
|
| 부울 |
|
|
| 부울 |
|
|
| 부울 |
|
소유자 전용 권한 부여가 활성화된 경우 아티팩트를 생성한 사용자만 해당 아티팩트를 수정하거나 삭제할 수 있습니다.
소유자 전용 권한 부여 및 그룹 소유자 전용 권한 부여가 모두 활성화된 경우 아티팩트 그룹을 생성한 사용자만 해당 아티팩트 그룹에 대한 쓰기 액세스 권한(예: 해당 그룹에서 아티팩트를 추가 또는 제거)에 액세스할 수 있습니다.
서비스 레지스트리 인증 읽기 액세스
인증된 읽기 액세스 옵션이 활성화되면 서비스 레지스트리는 사용자 역할에 관계없이 동일한 조직에 인증된 사용자의 요청에 대한 읽기 전용 액세스 권한을 부여합니다.
인증된 읽기 액세스를 활성화하려면 먼저 역할 기반 인증을 활성화한 다음 다음 옵션이 true
로 설정되어 있는지 확인해야 합니다.
환경 변수 | Java 시스템 속성 | 유형 | 기본값 |
---|---|---|---|
|
| 부울 |
|
|
| 부울 |
|
자세한 내용은 “서비스 레지스트리 역할 기반 권한 부여” 에서 참조하십시오.
서비스 레지스트리 익명 읽기 전용 액세스
두 가지 주요 권한 부여 유형(역할 기반 및 소유자 기반 권한 부여) 외에도 서비스 레지스트리는 익명 읽기 전용 액세스 옵션을 지원합니다.
인증 자격 증명이 없는 REST API 호출과 같은 익명 사용자를 허용하려면 REST API에 대한 읽기 전용 호출을 수행하려면 다음 옵션을 true
로 설정합니다.
환경 변수 | Java 시스템 속성 | 유형 | 기본값 |
---|---|---|---|
|
| 부울 |
|
|
| 부울 |
|
추가 리소스
- OpenShift의 서비스 레지스트리 배포에서 환경 변수를 설정하는 방법의 예는 다음을 참조하십시오. 6.1절. “OpenShift에서 서비스 레지스트리 상태 점검 구성”
- 서비스 레지스트리에 대한 사용자 정의 인증 구성에 대한 자세한 내용은 Quarkus Open ID Connect 설명서를 참조하십시오.