Docs Menu
Docs Home
/ /
Atlas App Services
/ /

Firebase JWT 인증(사용자 지정 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 가져옵니다. 방법을 학습하려면 Firebase 문서에서 클라이언트에서 ID 토큰 조회 를 참조하세요.

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

돌아가기

사용자 지정 JWT

이 페이지의 내용