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

Cloudflare Access 공급자

원문 보기 위키 갱신

GCP IAP Proxy Provider 또는 AWS ALB 공급자와 비슷하게, 개발자는 인증 지원을 Cloudflare Access에 위임할 수 있습니다.

출처: 문서

본문

GCP IAP Proxy Provider 또는 AWS ALB 공급자와 비슷하게, 개발자는 인증 지원을 Cloudflare Access에 위임할 수 있습니다.

이 튜토리얼은 Backstage 앞에 있는 Cloudflare Access에서 인증을 사용하는 방법을 보여줍니다.

Cloudflare 터널이 이미 Backstage 인스턴스 앞에서 트래픽을 서빙하고 있고, 그 인스턴스가 백엔드에서 프론트엔드 앱을 서빙하도록 구성되어 있으며, 이미 Cloudflare Access로 게이트되어 있다고 가정합니다.

구성

app-config.yaml 또는 app-config.production.yaml 등에 다음 auth 구성을 추가하는 것으로 시작해 보겠습니다.

auth:  providers:    cfaccess:      # You can find the team name in the Cloudflare Zero Trust dashboard.      teamName: <Team Name>      # The Application Audience (AUD) Tag for the Backstage application.      audience: <Application Audience Tag>      # This service tokens section is optional -- you only need it if you have      # some Cloudflare Service Tokens that you want to be able to log in to your      # Backstage instance.      serviceTokens:        - token: '1uh2fh19efvfh129f1f919u21f2f1

이 구성 섹션은 공급자가 전혀 로드되기 위해 있어야 합니다.

Application Audience(AUD) Tag는 Cloudflare Zero Trust 대시보드에서 Access controls > Applications로 이동해 Backstage 애플리케이션을 선택하고 Additional settings에서 값을 복사해 찾을 수 있습니다.

선택 사항

  • sessionDuration: 사용자 세션의 수명.

리졸버

이 공급자는 바로 사용할 수 있는 여러 리졸버를 포함합니다.

  • emailMatchingUserEntityProfileEmail: auth 공급자의 이메일 주소를 일치하는 spec.profile.email을 가진 User 엔티티와 매칭합니다. 일치하는 항목이 없으면 NotFoundError를 던집니다.

  • emailLocalPartMatchingUserEntityName: auth 공급자의 이메일 주소의 로컬 부분을 일치하는 name을 가진 User 엔티티와 매칭합니다. 일치하는 항목이 없으면 NotFoundError를 던집니다.

note

리졸버는 순서대로 시도되지만 NotFoundError를 던질 때만 건너뜁니다.

이 리졸버들이 요구 사항에 맞지 않는다면 커스텀 리졸버를 만들 수 있습니다. 이는 Sign-in Identities and Resolvers 문서의 Building Custom Resolvers 섹션에서 다룹니다.

백엔드 설치

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

Backstage 루트 디렉토리에서

yarn --cwd packages/backend add @backstage/plugin-auth-backend-module-cloudflare-access-provider

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

packages/backend/src/index.ts에

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

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

로그인 페이지를 설정하고 로컬 개발에서도 원활히 작동하도록 하는 방법에 대한 안내는 Sign-In with Proxy Providers를 참조하세요. 공급자 이름으로 cfaccess를 사용하게 됩니다.

커스텀 로그인 리졸버를 제공한다면 signIn 블록을 완전히 건너뛸 수 있습니다.

더 알아보기 (Learn more)