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

Azure EasyAuth 공급자

원문 보기 위키 갱신

Backstage core-plugin-api 패키지에는 Azure App Services 같은 Easy Auth를 지원하는 Azure에 호스팅된 PaaS 서비스에 대해 Microsoft Entra ID(이전 Azure Active Directory)를 사용해 사용자를 인증할 수 있는 Microsoft 인증 공급자가 포함되어 있습니다.

출처: 문서

본문

Backstage core-plugin-api 패키지에는 Azure App Services 같은 Easy Auth를 지원하는 Azure에 호스팅된 PaaS 서비스에 대해 Microsoft Entra ID(이전 Azure Active Directory)를 사용해 사용자를 인증할 수 있는 Microsoft 인증 공급자가 포함되어 있습니다.

Azure 구성

Azure를 구성하는 방법은 Backstage를 호스팅하는 데 사용하는 Azure 서비스에 따라 다릅니다.

Azure App Services

App Services에서 EasyAuth를 사용하려면 Entra ID(이전 Azure Active Directory) 인증을 켜세요. 또한 토큰 저장소를 활성화해야 합니다.

다음 예시는 bicep 템플릿으로 이를 수행하는 방법을 보여줍니다.

resource webApp 'Microsoft.Web/sites@2022-03-01' existing = {  name: 'MY-WEBAPP-NAME'  resource authConfig 'config' = {    name: 'authsettingsV2'    properties: {      globalValidation: {        redirectToProvider: 'AzureActiveDirectory'        requireAuthentication: true        unauthenticatedClientAction: 'RedirectToLoginPage'      }      login: {        tokenStore: {          enabled: true        }      }      platform: {        enabled: true      }      identityProviders: {        azureActiv...

구성

루트 auth 구성 아래의 app-config.yaml에 다음을 추가하세요.

app-config.yaml

auth:  providers:    azureEasyAuth:      signIn:        resolvers:          # See https://backstage.io/docs/auth/microsoft/easy-auth#resolvers for more resolvers          - resolver: idMatchingUserEntityAnnotation

리졸버

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

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

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

  • idMatchingUserEntityAnnotation: auth 공급자의 사용자 Id를 일치하는 graph.microsoft.com/user-id 어노테이션을 가진 User 엔티티와 매칭합니다. 일치하는 항목이 없으면 NotFoundError를 던집니다.

note

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

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

백엔드 설치

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

Backstage 루트 디렉토리에서

yarn --cwd packages/backend add @backstage/plugin-auth-backend-module-azure-easyauth-provider

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

packages/backend/src/index.ts에

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

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

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

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

더 알아보기 (Learn more)