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

Atlassian 인증 공급자(Atlassian Authentication Provider)

원문 보기 위키 갱신

Backstage core-plugin-api 패키지에는 Atlassian 인증 공급자가 포함되어 있으며, 사용자를 Atlassian 제품으로 인증할 수 있습니다.

출처: 문서

본문

Backstage core-plugin-api 패키지에는 Atlassian 인증 공급자가 포함되어 있으며, Atlassian 제품을 사용해 사용자를 인증할 수 있습니다. 이 auth는 다음 API에 대한 scope만 제공합니다.

  • Confluence API

  • User REST API

  • Jira platform REST API

  • Jira Service Desk API

  • Personal data reporting API

  • User identity API

Atlassian 개발자 콘솔에서 OAuth 2.0(3LO) 앱 만들기

Atlassian 인증을 추가하려면 OAuth 2.0(3LO) 앱을 만들어야 합니다.

https://developer.atlassian.com/console/myapps/로 이동하세요.

Create 드롭다운을 클릭하고 OAuth 2.0 integration을 선택하세요.

통합 이름을 지정하고 Create 버튼을 클릭하세요.

로컬 개발 설정:

  • 콜백 URL: http://localhost:7007/api/auth/atlassian/handler/frame

  • 순환식 리프레시 토큰 사용

  • 권한의 경우, User identity API 아래에서 현재 로그인한 사용자에 대해 View user profile을 활성화해야 합니다.

구성

공급자 구성은 루트 auth 구성 아래의 app-config.yaml에 추가할 수 있습니다.

auth:  environment: development  providers:    atlassian:      development:        clientId: ${AUTH_ATLASSIAN_CLIENT_ID}        clientSecret: ${AUTH_ATLASSIAN_CLIENT_SECRET}        audience: 'https://api.atlassian.com'        callbackUrl: 'https://backstage.example.com/api/auth/atlassian/handler/frame'        additionalScopes:          - 'read:jira-user'          - 'read:jira-work'        ## uncomment to set lifespan of user session        # sessionDuration: { hours: 24 } # supports `ms` library

Atlassian 공급자는 다음 구성 키를 가진 구조입니다.

  • clientId: 개발자 콘솔에서 생성한 Key.

  • clientSecret: 생성된 Key에 연결된 Secret.

  • audience: (선택) 토큰의 의도된 수신자를 지정합니다.

  • callbackUrl: (선택) Atlassian OAuth 설정에 설정된 리다이렉트 URL과 일치해야 합니다.

  • additionalScopes: (선택) Atlassian에 요청하는 추가 권한.

참고: offline_access, read:jira-work, read:jira-user scope는 기본적으로 제공됩니다.

선택 사항

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

리졸버

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

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

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

  • usernameMatchingUserEntityName: 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-atlassian-provider

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

packages/backend/src/index.ts에

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

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

프론트엔드에 공급자를 추가하려면 atlassianAuthApi 참조와 SignInPage 컴포넌트를 Adding the provider to the sign-in page에 표시된 대로 추가하세요.

더 알아보기 (Learn more)