OAuth 2 Proxy 공급자
Backstage @backstage/plugin-auth-backend 패키지에는 실제 Backstage 인스턴스 앞에 oauth2-proxy를 사용해 사용자를 인증할 수 있는 oauth2Proxy 인증 공급자가 포함되어 있습니다. 이를 통해 클러스터 내의 기존 인증을 재사용할 수 있습니다. 일반적으로 oauth2-proxy는 모든 OpenID Connect 공급자를 지원하며, 자세한 내용은 지원되는 공급자 목록을 확인하세요.
출처: 문서
본문
Backstage @backstage/plugin-auth-backend 패키지에는 실제 Backstage 인스턴스 앞에 oauth2-proxy를 사용해 사용자를 인증할 수 있는 oauth2Proxy 인증 공급자가 포함되어 있습니다. 이를 통해 클러스터 내의 기존 인증을 재사용할 수 있습니다. 일반적으로 oauth2-proxy는 모든 OpenID Connect 공급자를 지원하며, 자세한 내용은 지원되는 공급자 목록을 확인하세요.
note
OAuth2 Proxy는 요청을 인증하는 방법을 제공하지 않습니다. 대신 Backstage 인스턴스가 OAuth2 Proxy를 통해서만 접근 가능하도록 해야 합니다. 더 엄격한 검증이 필요하다면 다른 공급자를 사용하는 것을 고려하세요.
구성
공급자 구성은 루트 auth 구성 아래의 app-config.yaml에 추가할 수 있습니다.
app-config.yaml
auth: environment: development providers: oauth2Proxy: signIn: resolvers: # See https://backstage.io/docs/auth/oauth2-proxy/provider#resolvers for more resolvers - resolver: forwardedUserMatchingUserEntityName
리졸버
이 공급자는 바로 사용할 수 있는 여러 리졸버를 포함합니다.
-
emailMatchingUserEntityProfileEmail: auth 공급자의 이메일 주소를 일치하는spec.profile.email을 가진 User 엔티티와 매칭합니다. 일치하는 항목이 없으면NotFoundError를 던집니다. -
emailLocalPartMatchingUserEntityName: auth 공급자의 이메일 주소의 로컬 부분을 일치하는name을 가진 User 엔티티와 매칭합니다. 일치하는 항목이 없으면NotFoundError를 던집니다. -
forwardedUserMatchingUserEntityName: auth 공급자의x-forwarded-user헤더의 값을 일치하는name을 가진 User 엔티티와 매칭합니다. 일치하는 항목이 없으면NotFoundError를 던집니다. -
forwardedPreferredUsernameMatchingUserEntityName: auth 공급자의x-forwarded-preferred-username헤더의 값을 일치하는name을 가진 User 엔티티와 매칭합니다. 일치하는 항목이 없으면NotFoundError를 던집니다.
note
리졸버는 순서대로 시도되지만 NotFoundError를 던질 때만 건너뜁니다.
이 리졸버들이 요구 사항에 맞지 않는다면 커스텀 리졸버를 만들 수 있습니다. 이는 Sign-in Identities and Resolvers 문서의 Building Custom Resolvers 섹션에서 다룹니다.
백엔드 설치
공급자를 백엔드에 추가하려면 먼저 다음 명령을 실행해 패키지를 설치해야 합니다.
Backstage 루트 디렉토리에서
yarn --cwd packages/backend add @backstage/plugin-auth-backend-module-oauth2-proxy-provider
그런 다음 다음 줄을 추가해야 합니다.
packages/backend/src/index.ts에
backend.add(import('@backstage/plugin-auth-backend'));backend.add( import('@backstage/plugin-auth-backend-module-oauth2-proxy-provider'),);
공급자를 Backstage 프론트엔드에 추가하기
로그인 페이지를 설정하고 로컬 개발에서도 원활히 작동하도록 하는 방법에 대한 안내는 Sign-In with Proxy Providers를 참조하세요. 공급자 이름으로 oauth2Proxy를 사용하게 됩니다.
커스텀 로그인 리졸버를 제공한다면 signIn 블록을 완전히 건너뛸 수 있습니다.