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 컴포넌트를 추가하세요.