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

OneLogin 인증 제공자

원문 보기 위키 갱신

Backstage core-plugin-api 패키지에는 OpenID Connect로 사용자를 인증할 수 있는 OneLogin 인증 제공자가 포함돼 있어요.

출처: 문서

본문

Backstage core-plugin-api 패키지에는 OpenID Connect로 사용자를 인증할 수 있는 OneLogin 인증 제공자가 포함돼 있어요.

OneLogin에서 애플리케이션 만들기

OneLogin 인증을 지원하려면 애플리케이션을 만들어야 해요:

  • OneLogin Admin 포털에서 Applications를 선택하세요.

  • Add App 클릭 후 OpenID Connect 선택

  • Display Name: Backstage (또는 커스텀 앱 이름)

  • Save 클릭

  • 애플리케이션의 Configuration 탭으로 가서 설정하세요:

  • Login Url: http://localhost:3000

  • Redirect URIs: http://localhost:7007/api/auth/onelogin/handler/frame

  • Save 클릭

  • 애플리케이션의 SSO 탭으로 가서 설정하세요:

  • Token Endpoint > Authentication Method: POST

  • Save 클릭

구성

그런 다음 제공자 구성을 루트 auth 구성 아래의 app-config.yaml에 추가할 수 있어요:

auth:  environment: development  providers:    onelogin:      development:        clientId: ${AUTH_ONELOGIN_CLIENT_ID}        clientSecret: ${AUTH_ONELOGIN_CLIENT_SECRET}        issuer: https://<company>.onelogin.com/oidc/2        ## uncomment to set lifespan of user session        # sessionDuration: { hours: 24 } # supports `ms` library format (e.g. '24h', '2 days'), ISO duration, "human duration" as used in code        signIn:          resolvers:            # See https://backstage.io/docs/auth/onelogin/provider#resolvers for more resolvers            - resolver: usernameMatchingUserEntityName

OneLogin 제공자는 세 개의 구성 키를 가진 구조예요. 이들은 OneLogin 애플리케이션의 SSO 탭에서 찾을 수 있어요:

  • clientId: 클라이언트 ID

  • clientSecret: 클라이언트 시크릿

  • issuer: 발급자 URL

선택

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

Resolver

이 제공자에는 기본 제공되는 여러 resolver가 포함되어 있어요:

  • emailMatchingUserEntityProfileEmail: 인증 제공자의 이메일 주소를 일치하는 spec.profile.email을 가진 User 엔터티와 매칭해요. 일치하는 항목이 없으면 NotFoundError를 던져요.

  • emailLocalPartMatchingUserEntityName: 인증 제공자의 이메일 주소의 로컬 부분을 일치하는 name을 가진 User 엔터티와 매칭해요. 일치하는 항목이 없으면 NotFoundError를 던져요.

  • usernameMatchingUserEntityName: 인증 제공자의 사용자 이름을 일치하는 name을 가진 User 엔터티와 매칭해요. 일치하는 항목이 없으면 NotFoundError를 던져요.

참고

resolver는 순서대로 시도되지만, NotFoundError를 던지는 경우에만 건너뛰게 됩니다.

이 resolver가 요구에 맞지 않으면 커스텀 resolver를 만들 수 있으며, 이는 Sign-in Identities and Resolvers 문서의 Building Custom Resolvers 섹션에서 다뤄요.

백엔드 설치

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

from your Backstage root directory

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

그런 다음 이 줄을 추가해야 해요:

in packages/backend/src/index.ts

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

제공자를 Backstage 프론트엔드에 추가

프론트엔드에 제공자를 추가하려면 제공자를 sign-in 페이지에 추가하기 에 표시된 대로 oneloginAuthApi 참조와 SignInPage 컴포넌트를 추가하세요.

더 알아보기 (Learn more)