5.3. Microsoft Azure Active Directory를 사용하여 Apicurio 레지스트리 인증 및 권한 부여 구성
이 섹션에서는 Apicurio Registry 및 Microsoft Azure Active Directory (Azure AD)에 대한 인증 및 권한 부여 옵션을 수동으로 구성하는 방법을 설명합니다.
Apicurio 레지스트리 웹 콘솔 및 코어 REST API는 OpenID Connect(OIDC) 및 OAuth 인증 코드 흐름을 기반으로 Azure AD에서 인증을 지원합니다. Apicurio Registry는 기본 admin, write, 읽기 전용 사용자 역할에 대한 역할 기반 권한을 제공합니다. Apicurio 레지스트리 인증 및 권한 부여 설정은 기본적으로 비활성화되어 있습니다.
Azure AD를 사용하여 Apicurio 레지스트리를 보호하려면 특정 구성이 포함된 Azure AD의 유효한 디렉터리가 필요합니다. 여기에는 권장되는 설정으로 Azure AD 포털에서 Apicurio Registry 애플리케이션을 등록하고 Apicurio Registry에서 환경 변수를 구성해야 합니다.
사전 요구 사항
- Azure AD가 설치되어 실행 중입니다. 자세한 내용은 Microsoft Azure AD 사용자 설명서를 참조하십시오.
- Apicurio 레지스트리가 설치되어 실행 중입니다.
프로세스
- 이메일 주소 또는 GitHub 계정을 사용하여 Azure AD 포털에 로그인합니다.
탐색 메뉴에서 관리 > 앱 등록 > 새 등록 을 선택하고 다음 설정을 완료합니다.In the navigation menu, select Manage > App registrations > New registration, and complete the following settings:
-
Name: 애플리케이션 이름을 입력합니다. 예:
apicurio-registry-example
- 지원되는 계정 유형: 조직 디렉터리의 계정을 클릭합니다.
URI 리디렉션: 목록에서 단일 페이지 애플리케이션을 선택하고 Apicurio Registry 웹 콘솔 애플리케이션 호스트를 입력합니다. 예:
https://test-registry.com/ui/
중요Apicurio 레지스트리 애플리케이션 호스트를 리디렉션 URI 로 등록해야 합니다. 로그인할 때 사용자는 인증을 위해 Apicurio Registry에서 Azure AD로 리디렉션되고 나중에 애플리케이션에 다시 보내려고 합니다. Azure AD는 등록되지 않은 리디렉션 URL을 허용하지 않습니다.
-
Name: 애플리케이션 이름을 입력합니다. 예:
- 등록을 클릭합니다. Manage > App registrations > apicurio-registry-example 을 선택하여 앱 등록 세부 정보를 볼 수 있습니다.
관리 > 인증을 선택하고 애플리케이션이 다음과 같이 리디렉션 URL 및 토큰으로 구성되어 있는지 확인합니다.
-
리디렉션 URI: 예:
https://test-registry.com/ui/
- 암시적 부여 및 하이브리드 흐름: ID 토큰을 클릭합니다(Implicit및 하이브리드 흐름에 사용됨)
-
리디렉션 URI: 예:
-
Azure AD > Admin > App registrations > your app > Application (client) ID 를 선택합니다. 예:
123456a7-b8c9-012d-e3f4-5fg67h8i901
-
Azure AD > Admin > App registrations > your app > Directory (tenant) ID 를 선택합니다. 예:
https://login.microsoftonline.com/1a2bc34d-567e-89f1-g0hi-1j2kl3m4no56/v2.0
Apicurio 레지스트리에서 Azure AD 설정을 사용하여 다음 환경 변수를 구성합니다.
표 5.6. Apicurio 레지스트리의 Azure AD 설정 구성 환경 변수 설명 설정 KEYCLOAK_API_CLIENT_ID
Apicurio Registry REST API의 클라이언트 애플리케이션 ID
5단계에서 가져온 Azure AD 애플리케이션(클라이언트) ID입니다. 예:
123456a7-b8c9-012d-e3f4-5fg67h8i901
REGISTRY_OIDC_UI_CLIENT_ID
Apicurio 레지스트리 웹 콘솔의 클라이언트 애플리케이션 ID입니다.
5단계에서 가져온 Azure AD 애플리케이션(클라이언트) ID입니다. 예:
123456a7-b8c9-012d-e3f4-5fg67h8i901
REGISTRY_AUTH_URL_CONFIGURED
Azure AD의 인증을 위한 URL입니다.
6단계에서 가져온 Azure AD 애플리케이션(테넌트) ID입니다. 예:
https://login.microsoftonline.com/1a2bc34d-567e-89f1-g0hi-1j2kl3m4no56/v2.0
.Apicurio Registry에서 Apicurio 레지스트리별 설정에 대해 다음 환경 변수를 구성합니다.
표 5.7. Apicurio 레지스트리별 설정 구성 환경 변수 설명 설정 REGISTRY_AUTH_ENABLED
Apicurio 레지스트리에 대한 인증을 활성화합니다.
true
REGISTRY_UI_AUTH_TYPE
Apicurio 레지스트리 인증 유형입니다.
OIDC
CORS_ALLOWED_ORIGINS
CORS(Cross-origin resource sharing)를 위한 Apicurio 레지스트리 배포를 위한 호스트입니다.
예:
https://test-registry.com
REGISTRY_OIDC_UI_REDIRECT_URL
Apicurio 레지스트리 웹 콘솔의 호스트입니다.
예:
https://test-registry.com/ui
ROLE_BASED_AUTHZ_ENABLED
Apicurio Registry에서 역할 기반 인증을 활성화합니다.
true
QUARKUS_OIDC_ROLES_ROLE_CLAIM_PATH
Azure AD가 역할을 저장하는 클레임의 이름입니다.
역할
참고Apicurio 레지스트리에서 역할을 활성화하면 Azure AD에서 애플리케이션 역할과 동일한 역할을 생성해야 합니다. Apicurio Registry에서 예상되는 기본 역할은
sr-admin
,sr-developer
,sr-readonly
입니다.
추가 리소스
- 기본이 아닌 사용자 역할 이름 구성에 대한 자세한 내용은 5.4절. “Apicurio 레지스트리 인증 및 권한 부여 구성 옵션” 을 참조하십시오.
- Azure AD 사용에 대한 자세한 내용은 Microsoft Azure AD 사용자 설명서를 참조하십시오.