5.3. Apicurio Registry 인증 및 권한 부여 구성 옵션

Apicurio Registry는 Red Hat Single Sign-On 또는 HTTP 기본 인증을 사용하는 OpenID Connect에 대한 인증 옵션을 제공합니다.

Apicurio Registry는 역할 기반 및 콘텐츠 기반 접근 방식에 대한 권한 부여 옵션을 제공합니다.

  • 기본 admin, write 및 읽기 전용 사용자 역할에 대한 역할 기반 권한 부여
  • 아티팩트 또는 아티팩트 그룹의 소유자만 아티팩트 또는 아티팩트 그룹의 소유자만 업데이트하거나 삭제할 수 있는 스키마 또는 API 아티팩트에 대한 콘텐츠 기반 권한 부여입니다.
참고

Apicurio 레지스트리 인증 및 권한 부여 옵션은 기본적으로 비활성화되어 있습니다.

이 장에서는 다음 구성 옵션에 대해 자세히 설명합니다.

Red Hat Single Sign-On과 OpenID Connect를 사용한 Apicurio Registry 인증

Red Hat Single Sign-On을 사용하여 Apicurio Registry 웹 콘솔 및 API에 대한 인증을 구성하려면 다음 환경 변수를 설정할 수 있습니다.

표 5.6. Apicurio 레지스트리 인증 옵션 구성

환경 변수설명유형Default

AUTH_ENABLED

Apicurio Registry에서 인증을 활성화하거나 비활성화합니다. true 로 설정하면 이어지는 환경 변수가 필요합니다.

문자열

false

KEYCLOAK_URL

사용할 Red Hat Single Sign-On 인증 서버의 URL입니다. /auth 로 끝나야 합니다.

문자열

-

KEYCLOAK_REALM

인증에 사용되는 Red Hat Single Sign-On 영역입니다.

문자열

-

KEYCLOAK_API_CLIENT_ID

Apicurio Registry REST API의 클라이언트 ID입니다.

문자열

registry-api

KEYCLOAK_UI_CLIENT_ID

Apicurio Registry 웹 콘솔의 클라이언트 ID입니다.

문자열

apicurio-registry

HTTP 기본을 사용한 Apicurio Registry 인증

참고

기본적으로 Apicurio Registry는 OpenID Connect를 사용한 인증을 지원합니다. 사용자(또는 API 클라이언트)는 Apicurio Registry REST API에 대한 인증된 호출을 수행하기 위해 액세스 토큰을 받아야 합니다. 그러나 일부 도구에서는 OpenID Connect를 지원하지 않으므로 다음 설정 옵션을 true 로 설정하여 HTTP 기본 인증을 지원하도록 Apicurio Registry를 구성할 수도 있습니다.

표 5.7. Apicurio Registry HTTP 기본 인증 구성

환경 변수Java 시스템 속성유형기본값

CLIENT_CREDENTIALS_BASIC_AUTH_ENABLED

registry.auth.basic-auth-client-credentials.enabled

부울

false

Apicurio Registry 역할 기반 권한 부여

다음 옵션을 true 로 설정하여 Apicurio Registry에서 역할 기반 인증을 활성화할 수 있습니다.

표 5.8. Apicurio 레지스트리 역할 기반 권한 부여 구성

환경 변수Java 시스템 속성유형기본값

ROLE_BASED_AUTHZ_ENABLED

registry.auth.role-based-authorization

부울

false

그런 다음 사용자의 인증 토큰(예: Red Hat Single Sign-On을 사용하여 인증할 때 부여됨)에 포함된 역할을 사용하거나 Apicurio Registry에서 내부적으로 관리하는 역할 매핑을 사용하도록 역할 기반 권한을 구성할 수 있습니다.

Red Hat Single Sign-On에 할당된 사용 역할

Red Hat Single Sign-On에서 할당한 역할을 사용하여 활성화하려면 다음 환경 변수를 설정합니다.

표 5.9. Red Hat Single Sign-On을 사용한 Apicurio Registry 역할 기반 권한 부여 구성

환경 변수설명유형Default

ROLE_BASED_AUTHZ_SOURCE

토큰 으로 설정하면 인증 토큰에서 사용자 역할을 가져옵니다.

문자열

token

REGISTRY_AUTH_ROLES_ADMIN

사용자가 관리자임을 나타내는 역할의 이름입니다.

문자열

sr-admin

REGISTRY_AUTH_ROLES_DEVELOPER

사용자가 개발자임을 나타내는 역할의 이름입니다.

문자열

sr-developer

REGISTRY_AUTH_ROLES_READONLY

사용자에게 읽기 전용 액세스 권한이 있음을 나타내는 역할의 이름입니다.

문자열

sr-readonly

Apicurio Registry가 Red Hat Single Sign-On의 역할을 사용하도록 구성된 경우 Apicurio Registry 사용자를 Red Hat Single Sign-On에서 다음 사용자 역할 중 하나 이상에 할당해야 합니다. 그러나 표 5.9. “Red Hat Single Sign-On을 사용한 Apicurio Registry 역할 기반 권한 부여 구성” 의 환경 변수를 사용하여 다양한 사용자 역할 이름을 구성할 수 있습니다.

표 5.10. 인증 및 권한 부여를 위한 Apicurio Registry 역할

역할 이름아티팩트 읽기아티팩트 쓰기글로벌 규칙설명

sr-admin

제공됨

제공됨

제공됨

모든 생성, 읽기, 업데이트 및 삭제 작업에 대한 전체 액세스 권한

sr-developer

제공됨

제공됨

없음

글로벌 규칙 및 가져오기/내보도 구성을 제외하고 생성, 읽기, 업데이트 및 삭제 작업에 액세스할 수 있습니다. 이 역할은 아티팩트 규칙만 구성할 수 있습니다.

sr-readonly

제공됨

없음

없음

읽기 및 검색 작업만 액세스할 수 있습니다. 이 역할은 규칙을 구성할 수 없습니다.

Apicurio Registry에서 직접 역할 관리

Apicurio Registry에서 내부적으로 관리하는 역할을 사용하여 활성화하려면 다음 환경 변수를 설정합니다.

표 5.11. 내부 역할 매핑을 사용한 Apicurio 레지스트리 역할 기반 권한 부여 구성

환경 변수설명유형Default

ROLE_BASED_AUTHZ_SOURCE

application 로 설정하면 사용자 역할은 Apicurio Registry에서 내부적으로 관리됩니다.

문자열

token

내부적으로 관리되는 역할 매핑을 사용하는 경우 Apicurio Registry REST API에서 /admin/roleMappings 끝점을 사용하여 역할을 할당할 수 있습니다. 자세한 내용은 Apicurio Registry REST API 설명서를 참조하십시오.

사용자에게 정확히 하나의 역할인 ADMIN,DEVELOPER 또는 READ_ONLY 역할을 부여할 수 있습니다. admin 권한이 있는 사용자만 다른 사용자에게 액세스 권한을 부여할 수 있습니다.

Apicurio Registry admin-override 구성

Apicurio Registry에는 기본 관리자 사용자가 없으므로 일반적으로 admins로 식별할 수 있는 다른 방법을 구성하는 것이 유용합니다. 다음 환경 변수를 사용하여 이 admin-override 기능을 구성할 수 있습니다.

표 5.12. Apicurio Registry admin-override 구성

환경 변수설명유형Default

REGISTRY_AUTH_ADMIN_OVERRIDE_ENABLED

admin-override 기능을 활성화합니다.

문자열

false

REGISTRY_AUTH_ADMIN_OVERRIDE_FROM

admin-override 정보를 찾는 위치. 현재 토큰 만 지원됩니다.

문자열

token

REGISTRY_AUTH_ADMIN_OVERRIDE_TYPE

사용자가 관리자인지 확인하는 데 사용되는 정보 유형입니다. 값은 FROM 변수의 값에 따라 달라집니다(예: FROM이 토큰 인 경우 role 또는 클레임 ).

문자열

role

REGISTRY_AUTH_ADMIN_OVERRIDE_ROLE

사용자가 관리자임을 나타내는 역할의 이름입니다.

문자열

sr-admin

REGISTRY_AUTH_ADMIN_OVERRIDE_CLAIM

admin-override를 결정하는 데 사용할 JWT 토큰 클레임의 이름입니다.

문자열

org-admin

REGISTRY_AUTH_ADMIN_OVERRIDE_CLAIM_VALUE

CLAIM 변수에 표시된 JWT 토큰 클레임의 값은 사용자에게 admin-override를 부여해야 합니다.

문자열

true

예를 들어 이 admin-override 기능을 사용하여 해당 사용자에게 admin 역할을 부여하는 Red Hat Single Sign-On의 단일 사용자에게 sr-admin 역할을 할당할 수 있습니다. 그런 다음 해당 사용자는 /admin/roleMappings REST API(또는 관련 UI)를 사용하여 추가 사용자(추가 관리자 포함)에 역할을 부여할 수 있습니다.

Apicurio Registry 소유자 전용 권한 부여

다음 옵션을 true 로 설정하여 Apicurio Registry에서 아티팩트 또는 아티팩트 그룹에 대한 업데이트에 대한 소유자 전용 권한을 활성화할 수 있습니다.

표 5.13. 소유자 전용 권한 부여 구성

환경 변수Java 시스템 속성유형기본값

REGISTRY_AUTH_OBAC_ENABLED

registry.auth.owner-only-authorization

부울

false

REGISTRY_AUTH_OBAC_LIMIT_GROUP_ACCESS

registry.auth.owner-only-authorization.limit-group-access

부울

false

소유자 전용 권한이 활성화되면 아티팩트를 생성한 사용자만 해당 아티팩트를 수정하거나 삭제할 수 있습니다.

소유자 전용 권한 부여와 그룹 소유자 전용 권한 부여가 모두 활성화되면 아티팩트 그룹을 생성한 사용자만 해당 아티팩트 그룹에 대한 쓰기 액세스 권한을 갖습니다(예: 해당 그룹에서 아티팩트를 추가하거나 제거하는 등).

Apicurio Registry 인증 읽기 액세스

인증된 읽기 액세스 옵션이 활성화되면 Apicurio Registry는 사용자 역할에 관계없이 동일한 조직의 모든 인증된 사용자의 요청에 대한 읽기 전용 액세스 권한을 부여합니다.

인증된 읽기 액세스를 활성화하려면 먼저 역할 기반 인증을 활성화한 다음 다음 옵션을 true 로 설정해야 합니다.

표 5.14. 인증된 읽기 액세스에 대한 구성

환경 변수Java 시스템 속성유형기본값

REGISTRY_AUTH_AUTHENTICATED_READS_ENABLED

registry.auth.authenticated-read-access.enabled

부울

false

자세한 내용은 “Apicurio Registry 역할 기반 권한 부여” 에서 참조하십시오.

Apicurio Registry 익명 읽기 전용 액세스

권한 부여의 두 가지 주요 유형(역할 기반 및 소유자 기반 권한 부여) 외에도 Apicurio Registry에서는 익명 읽기 전용 액세스 옵션을 지원합니다.

인증 자격 증명이 없는 REST API 호출과 같은 익명 사용자를 허용하려면 REST API에 대한 읽기 전용 호출을 만들려면 다음 옵션을 true 로 설정합니다.

표 5.15. 익명 읽기 전용 액세스에 대한 구성

환경 변수Java 시스템 속성유형기본값

REGISTRY_AUTH_ANONYMOUS_READ_ACCESS_ENABLED

registry.auth.anonymous-read-access.enabled

부울

false

추가 리소스