본문 바로가기
WIKI 기술 지식 베이스

Keycloak 인증 공급자(Keycloak Authentication Provider)

원문 보기 위키 갱신

Backstage는 Keycloak OpenID Connect를 사용해 사용자를 인증할 수 있습니다. 이 공급자는 커뮤니티가 유지 관리하는 @backstage-community/plugin-auth-backend-module-keycloak-provider 모듈을 통해 사용할 수 있습니다.

출처: 문서

본문

Backstage는 Keycloak OpenID Connect를 사용해 사용자를 인증할 수 있습니다. 이 공급자는 커뮤니티가 유지 관리하는 @backstage-community/plugin-auth-backend-module-keycloak-provider 모듈을 통해 사용할 수 있습니다.

Keycloak에서 클라이언트 만들기

Client authentication이 활성화된 OpenID Connect 클라이언트를 만들고, <backend-url>/api/auth/keycloak/handler/frame을 유효한 redirect URI로 설정하세요. 전체 단계는 모듈 문서를 참조하세요.

구성

공급자 구성은 루트 auth 구성 아래의 app-config.yaml에 추가할 수 있습니다.

auth:  environment: development  providers:    keycloak:      development:        clientId: ${AUTH_KEYCLOAK_CLIENT_ID}        clientSecret: ${AUTH_KEYCLOAK_CLIENT_SECRET}        baseUrl: ${AUTH_KEYCLOAK_BASE_URL}        realm: ${AUTH_KEYCLOAK_REALM}        signIn:          resolvers:            # See the module documentation for more resolvers            - resolver: preferredUsernameMatchingUserEntityName

Keycloak 공급자는 다음 구성 키를 가진 구조입니다.

  • clientId: Keycloak에 등록한 클라이언트 ID. 예: backstage.

  • clientSecret: Keycloak에서 클라이언트를 위해 생성된 클라이언트 시크릿.

  • baseUrl: Keycloak 서버의 기본 URL로, 후행 /realms/... 경로는 없습니다. 예: https://keycloak.example.com.

  • realm: Backstage가 인증하는 Keycloak realm의 이름.

additionalScopes, postLogoutRedirectUri, prompt 같은 선택적 구성은 구성 참조에 설명되어 있습니다.

사용 가능한 로그인 리졸버는 모듈의 sign-in resolvers에 나열되어 있습니다. 그중 어느 것도 요구 사항에 맞지 않으면 Building Custom Resolvers를 참조하세요.

백엔드 설치

공급자를 백엔드에 추가하려면 먼저 다음 명령을 실행해 패키지를 설치해야 합니다.

Backstage 루트 디렉토리에서

yarn --cwd packages/backend add @backstage-community/plugin-auth-backend-module-keycloak-provider

그런 다음 다음 줄을 추가해야 합니다.

packages/backend/src/index.ts에

backend.add(import('@backstage/plugin-auth-backend'));backend.add(  import('@backstage-community/plugin-auth-backend-module-keycloak-provider'),);

사용자와 그룹 동기화

로그인 리졸버는 Software Catalog에 일치하는 User 엔티티가 이미 존재해야 합니다. 이를 달성하는 권장 방법은 Keycloak 사용자와 그룹을 일정에 따라 카탈로그에 동기화하는 커뮤니티 관리 @backstage-community/plugin-catalog-backend-module-keycloak 플러그인을 설치하는 것입니다. 자세한 내용은 Keycloak Organizational Data를 참조하세요.

공급자를 Backstage 프론트엔드에 추가하기

Backstage는 Keycloak용 내장 auth API를 제공하지 않으므로, 앱에 Keycloak auth API 참조를 만들고 등록해야 합니다. 모듈 문서에 완전한 예시가 있습니다. 그런 다음 Adding the provider to the sign-in page에 표시된 대로 SignInPage 컴포넌트를 추가하세요.

더 알아보기 (Learn more)