Docs Menu
Docs Home
/ /
Atlas App Services
/ /

Firebase JWT 인증(사용자 지정 JWT)

이 페이지의 내용

  • 시작하기 전에
  • 사용자 지정 JWT 인증 제공자 구성하기
  • Firebase JWT로 로그인

Firebase 인증 으로 관리 하는 JSON web token 사용자를 인증하도록 사용자 지정 인증 제공자를 구성할 수 있습니다.

Firebase 인증을 사용하려면 다음이 필요합니다.

  • 인증이 구성된 Firebase 프로젝트입니다. 자세한 내용은 Firebase 인증 문서를 참조하세요.

  • 아직 사용자 지정 JWT 인증을 사용하지 않는 App Services App입니다. 새 App Services App을 만드는 방법을 알아보려면 앱 생성을 참조하세요.

  • 명령줄 인터페이스를 사용하는 경우 로컬 시스템에 App Services CLI를 설치하고 인증해야 합니다.

  • Admin API를 사용하는 경우 MongoDB Atlas Admin API 공개/비공개 키 쌍이 필요합니다. API 키에는 프로젝트 소유자 권한이 있어야 합니다.

UI에서 사용자 지정 JWT 인증을 구성하거나 CLI 또는 관리 API를 사용하여 기본 구성 파일을 직접 수정하여 구성할 수 있습니다. 아래에서 선호하는 방법을 선택하세요.

왼쪽 탐색 메뉴에서 Authentication 을 클릭합니다. 그런 다음 Authentication Providers 탭 을 클릭하고 Custom JWT 제공자 를 선택합니다.

이제 사용자 정의 JWT 인증 제공자가 Firebase 프로젝트에서 작동하도록 구성할 수 있습니다.

  1. 토글을 클릭하여 제공자를 활성화합니다.

  2. Verification MethodUse a JWK URI로 설정합니다. JWK URI에 다음 URL을 지정합니다:

    https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com
  3. Metadata Fields을(를) 정의하여 Firebase JWT의 데이터를 해당 App Services 사용자 계정에 매핑합니다.

    메타데이터 필드는 필수 항목이 아닙니다. 하지만 Firebase JWT의 사용자 정보를 앱으로 가져오는 데 유용할 수 있습니다.

    다음은 Firebase JWT에서 App Services 사용자로의 매핑입니다. 메타데이터 필드 문서에 따라 UI의 테이블에 그대로 추가하거나 원하는 대로 매핑을 수정할 수 있습니다.

    경로
    필드 이름
    firebase.identities.email
    이메일
    firebase.sign-in_provider
    signInProvider
    user_id
    userId
    email_verified
    이메일 인증
    이메일
    이메일
  4. 을(를)Audience Firebase 프로젝트 ID 로 설정합니다.

    중요

    대상을 Firebase 프로젝트 ID로 설정해야 합니다.

    UI에서 선택 사항으로 레이블이 지정되어 있더라도 사용자 정의 JWT 제공자로 Firebase 프로젝트 ID를 사용하려면 Audience을(를) 반드시 설정해야 합니다.

  5. 변경 사항을 배포하려면 Save 를 클릭합니다.

다음 명령을 실행하여 --remote 값을 앱의 클라이언트 앱 ID 로 바꿉니다. 이렇게 하면 앱의 최신 구성 파일의 로컬 사본이 다운로드되고 앱과 동일한 이름을 사용하는 구성 파일 디렉토리 로 이동합니다.

appservices pull --remote "myapp-abcde"
cd myapp

앱의 /auth/providers.json 파일 에 새 사용자 지정 JSON web token 인증 제공자 를 추가합니다. 다음 구성을 템플릿으로 사용하여 audience 값을 Firebase 프로젝트 ID 로 바꿉니다. 제공된 metadata_fields 를 그대로 사용하거나 메타데이터 필드 문서에 따라 원하는 대로 매핑을 수정할 수 있습니다.

/auth/providers.json
{
"custom-token": {
"name": "custom-token",
"type": "custom-token",
"disabled": false,
"config": {
"audience": ["<Your Firebase Project ID>"],
"jwkURI": "https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com",
"useJWKURI": true
},
"secret_config": {
"signingKeys": []
},
"metadata_fields": [
{
"required": false,
"name": "firebase.identities.email",
"field_name": "emails"
},
{
"required": false,
"name": "firebase.sign_in_provider",
"field_name": "signInProvider"
},
{
"required": false,
"name": "user_id",
"field_name": "userId"
},
{
"required": false,
"name": "email_verified",
"field_name": "emailVerified"
},
{
"required": false,
"name": "email",
"field_name": "email"
}
]
}
}

변경 사항을 /auth/providers.json 에 저장합니다. 그런 다음 업데이트된 구성 파일을 푸시하여 앱을 배포합니다.

appservices push

인증 제공자 생성 엔드포인트를 사용하여 앱에 새 사용자 지정 JWT 인증 공급자를 추가합니다.

다음 구성을 템플릿으로 사용합니다. 다음을 확인하세요.

  • 앱의 $PROJECT_ID$APP_ID지정

  • Authorization 헤더에 관리자 API 액세스 토큰을 포함합니다.

  • 요청 본문의 audience 값을 Firebase 프로젝트 ID 로 바꿉니다.

제공된 metadata_fields 를 그대로 사용하거나 메타데이터 필드 문서에 따라 원하는 대로 매핑을 수정할 수 있습니다.

curl "https://services.cloud.mongodb.com/api/admin/v3.0/groups/$PROJECT_ID/apps/$APP_ID/auth_providers" \
-X "POST" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "custom-token",
"type": "custom-token",
"disabled": false,
"config": {
"audience": ["<Your Firebase Project ID>"],
"jwkURI": "https://www.googleapis.com/service_accounts/v1/jwk/securetoken@system.gserviceaccount.com",
"useJWKURI": true
},
"secret_config": {
"signingKeys": []
},
"metadata_fields": [
{
"required": false,
"name": "firebase.identities.email",
"field_name": "emails"
},
{
"required": false,
"name": "firebase.sign_in_provider",
"field_name": "signInProvider"
},
{
"required": false,
"name": "user_id",
"field_name": "userId"
},
{
"required": false,
"name": "email_verified",
"field_name": "emailVerified"
},
{
"required": false,
"name": "email",
"field_name": "email"
}
]
}'

사용자 지정 JWT 인증 제공자가 Firebase 인증을 사용하도록 구성한 후에는 Firebase JWT를 사용하여 App Services App에 로그인할 수 있습니다.

  1. 사용자를 Firebase에 로그인합니다. 방법을 알아보려면 관련 Firebase SDK 문서 를 참조하세요. 플랫폼 및 프로그래밍 언어에 적합합니다.

  2. 사용자의 Firebase JSON web token 을 가져옵니다. 방법을 학습 보려면 클라이언트에서 ID 토큰 조회를 참조하세요. Firebase 문서에서 확인할 수 있습니다.

  3. Firebase JWT를 사용하여 Atlas App Services로 인증합니다. HTTP를 통해 세션을 시작하거나 SDK로 로그인할 수 있습니다. 방법을 알아보려면 다음 SDK 관련 문서를 참조하세요.

돌아가기

사용자 지정 JWT