Google Identity Toolkit에서 Google Cloud Identity Platform으로 이전

Google Identity 툴킷의 최신 버전이 Identity PlatformFirebase 인증. 앞으로 Identity Toolkit의 기능 작업이 정지됩니다. 완전히 새로운 Identity Platform 및 Firebase에서 기능 개발 진행 인증. Identity Toolkit 개발자가 실용적이 되는 대로 즉시 이러한 플랫폼을 구축해야 합니다.

새로운 기능

Identity Platform은 이미 Google ID 도구:

  • 새 관리 콘솔

    Identity Platform에는 새 개발자 콘솔 사용자를 보고, 수정하고, 삭제할 수 있습니다. 도움이 될 수 있습니다 디버깅할 수 있습니다. 또한 콘솔을 사용하면 인증 방법을 구성하고 이메일 템플릿을 맞춤설정합니다.

  • 새로운 인증 방법

    Identity Platform은 SAML 및 OIDC는 SaaS 앱 및 서비스를 확장할 수 있도록 지원합니다. 또한 Identity Platform은 은 GitHub, Microsoft, Yahoo 등과 같은 공급자를 지원합니다. 익명 로그인을 사용하여 사용자에게 로그인 또는 가입 절차를 진행하도록 요구 이렇게 하면 일반 사용자와 마찬가지로 인증된 API 호출을 할 수 있습니다. 날짜 사용자가 계정에 가입하기로 결정하면 모든 활동이 동일한 사용자 ID를 찾습니다. 이는 서버 측 쇼핑과 같은 시나리오에 유용합니다 사용자의 참여를 유도하고자 하는 장바구니 또는 기타 애플리케이션을 가입 절차를 통해 제품을 홍보할 수 있습니다.

  • 서비스수준계약 및 클라우드 지원을 통해 안심하고 확장

    Identity Platform은 신뢰할 수 있는 Google 인프라를 기반으로 빌드되었으며 서비스수준계약 Google Cloud의 지원을 받을 수 있습니다 즉, 서비스를 확장할 수 있으며 안심하고, Google의 지원을 받아 확장성도 제공합니다

  • 모든 Firebase에 액세스

    Firebase는 고품질의 애플리케이션을 신속하게 개발할 수 있는 모바일 플랫폼입니다. 사용자층을 확대하고, 더 많은 수익을 창출하세요. Firebase는 필요에 맞게 조합하여 사용할 수 있는 보완 기능을 다음을 위한 인프라 포함: 모바일 애널리틱스 클라우드 메시징 실시간 데이터베이스 파일 저장소, 정적 호스팅, 원격 구성, 모바일 비정상 종료 보고 및 Android 테스트.

  • 업데이트된 UI

    Google의 최신 UX를 기반으로 UI 흐름을 완전히 다시 구축했습니다. 연구 여기에는 비밀번호 복구, 계정 연결, 신규/기존이 포함됩니다. 코드 및 입력에 상당한 시간이 걸리는 계정 명확성 흐름을 디버그. 비밀번호 대용 Smart Lock을 통합합니다. Android에서 앱 로그인 및 가입 전환이 크게 개선되었습니다. (참여 에 제공됨) 또한 애플리케이션에 맞게 쉽게 테마를 수정할 수 있습니다. AndroidiOS 버전이 오픈소스로 제공되었습니다.

  • 간소화된 서버 설정

    Identity 도구 키트를 사용하면서부터 많은 개발자들이 이메일 복구 플로우로 인해 사용자가 이메일을 계정을 보호할 수 있습니다. Identity Platform은 이메일 확인, 비밀번호 재설정 및 비밀번호 변경 메일을 에 보내기 사용자와 텍스트를 쉽게 맞춤설정할 수 있음 사용자를 위해 설계되었습니다 또한 더 이상 리디렉션 호스팅용 UI 위젯 비밀번호 변경 작업 완료

  • 새 SDK

    이제 Identity Toolkit의 모든 서버 API가 각각 클라이언트 라이브러리 (Android, iOS, 웹)를 지원합니다. 개발자는 라이선스 서명, 기존 사용자와 신규 사용자를 로그인 및 등록하고, 사용자 속성에 액세스하고, 계정 삭제, 비밀번호 재설정 등을 할 수 있습니다. 원하는 경우 전체 로그인 과정을 수동으로 빌드하고 이 API를 기반으로 작동합니다

  • 모바일 앱용 세션 관리

    Identity Toolkit을 통해 앱은 초기 인증 이벤트를 수신합니다. Identity Platform은 인증에서 발급된 갱신 토큰을 받는 백엔드 서비스 이벤트를 통해 Android, iOS 및 있습니다. 사용자가 비밀번호를 변경할 때 갱신 토큰은 새 액세스 토큰을 더 오래 생성할 수 있으므로 사용자가 해당 기기에서 다시 인증합니다.

기능 차이

현재 ID에서 일부 Identity Toolkit 기능을 사용할 수 없습니다. 플랫폼을 지원하지만 그 밖의 기능은 새롭게 디자인되어 작동 방식이 다릅니다. 이러한 기능이 중요한 비즈니스라면 있습니다. 대부분의 경우 이러한 기능은 앱에 중요하지 않거나 이전을 진행하는 데 도움이 되는 쉬운 대체 방법이 있을 수 있습니다.

서버 측 차이점

기본 REST API가 포함된 핵심 Identity Toolkit 서비스인 유효성 검사 로직과 기본 사용자 데이터베이스가 소규모 업데이트만 받음 하지만 일부 기능과 Identity Platform을 통합하는 방법은 알 수 있습니다

  • ID 공급업체

    PayPal 및 AOL은 지원되지 않습니다. 사용자 이 IDP의 계정은 여전히 계정에 비밀번호를 설정할 수 있습니다.

  • 서버 라이브러리

    현재 Admin SDK가 있습니다 Java, Node.js, Python, Go 및 C#에서 사용할 수 있습니다.

  • 계정 관리 이메일

    비밀번호 재설정, 이메일 확인 및 이메일 변경 메시지는 Firebase 또는 개발자의 액세스할 수 있습니다 현재 이메일 템플릿은 UI에서 맞춤설정할 수 있지만 Admin SDK

  • 이메일 주소 변경 확인

    Identity Toolkit에서는 사용자가 이메일 주소를 변경하기로 결정하면 이메일을 계속 보낼 수 있는 링크가 있는 새 주소로 이메일을 보냅니다. 주소 변경 흐름에 따라 달라집니다.

    Firebase는 취소 이메일을 전송하여 이메일 주소 변경을 확인합니다. 변경사항을 되돌리는 링크가 있는 기존 이메일 주소를 삭제합니다.

  • IDP 출시

    Identity Toolkit에서 ID 공급업체를 로그인에 추가할 수 있었습니다. 점차적으로 운영하여 캠페인 실적에 미치는 영향을 실험해 볼 수 있습니다. 이 기능은 Firebase 인증에서 삭제되었습니다.

클라이언트 측 차이점

Identity Platform에서 Google Identity Toolkit에서 제공하는 기능은 두 가지 구성요소로 나뉩니다.

  • 클라이언트 및 서버 SDK

    Identity Platform에서 Identity Toolkit의 REST API는 Android, iOS 및 Android용 클라이언트 SDK에 패키징되어 있습니다. SDK를 사용하여 사용자를 로그인 및 등록할 수 있습니다. 액세스 사용자 프로필 정보 계정 연결, 업데이트, 삭제 및 비밀번호 재설정 백엔드 서비스와 통신하는 대신 클라이언트 SDK를 사용하여 REST 호출.

  • UI 위젯

    로그인, 가입, 비밀번호 복구 및 계정 연결은 클라이언트 SDK를 사용하여 다시 빌드되고 로그인 위젯입니다. Cloud Functions는 iOS, Android Google Cloud로는 불가능한 방식으로 흐름을 Identity 도구 키트를 사용하는 것이 좋습니다

추가적인 차이점은 다음과 같습니다.

  • 세션 및 이전

    Identity Toolkit과 ID에서 세션이 다르게 관리되기 때문입니다. 플랫폼, 즉 사용자의 다음 날짜 이후에 기존 세션이 종료됨 사용자가 다시 로그인해야 합니다

시작하기 전에

Identity Toolkit에서 Identity Platform으로 이전하기 전에 다음을 충족해야 합니다.

  1. Cloud 콘솔을 열고 Identity Toolkit 프로젝트입니다.

  2. Marketplace에서 Identity Platform 'Identity Platform 사용 설정'을 선택합니다.

  3. 서비스 계정 페이지를 엽니다. 여기에서 원하는 서비스 계정을 사용할 수 있습니다

  4. 서비스 계정 옆에 있는 > 키 만들기를 선택합니다. 그런 다음 비공개 키 만들기 대화상자에서 키 유형을 JSON으로 설정하고 클릭합니다. 만들기: 서비스 계정의 사용자 인증 정보가 포함된 JSON 파일은 자동으로 다운로드됩니다. 다음 단계에서 이 파일이 있어야 SDK를 초기화할 수 있습니다.

  5. Cloud 콘솔로 돌아갑니다. 제공업체 섹션의 '이메일/비밀번호' 사용하는 경우 이메일 템플릿 페이지를 엽니다. 그런 다음 앱의 있습니다.

    Identity Toolkit에서 사용자가 비밀번호를 재설정하거나 이메일 주소를 변경했거나 이메일 주소를 인증한 경우에는 조직으로부터 OOB 코드를 받아야 했습니다. 그런 다음 이메일을 통해 사용자에게 코드를 보냅니다. Identity Platform은 별도의 작업 없이 사용자가 구성한 템플릿을 기반으로 이메일을 추가 조치가 필요합니다.

  6. 선택사항: Firebase SDK를 설치합니다.

    1. npm로 Node.js Admin SDK를 설치할 수 있습니다.

      $ npm init
      $ npm install --save firebase-admin
      
    2. 코드에서 다음을 사용하여 Firebase에 액세스할 수 있습니다.

      var admin = require('firebase-admin');
      var app = admin.initializeApp({
        credential: admin.credential.cert('path/to/serviceAccountCredentials.json')
      });
      

다음으로 앱 플랫폼(Android)의 이전 단계를 완료하세요. iOS, .

서버 및 JavaScript

주요 변경사항

웹 서버 구현에는 Identity Toolkit의 Identity Platform을 선택할 수 있습니다

  • 웹 세션 관리

    이전에는 사용자가 Identity Toolkit 위젯 쿠키를 설정할 때 세션을 부트스트랩하는 방법을 보여줍니다. 이 쿠키의 유효 기간은 2주가었으며 사용자가 계정 관리 위젯을 사용하여 비밀번호와 이메일 주소를 변경하세요. 다소 유용함 사이트가 이 쿠키를 사용하여 사이트의 다른 모든 페이지 요청을 인증했습니다. 다른 사이트는 이 쿠키를 사용하여 쿠키 관리 시스템에 적용됩니다.

    이제 Identity Platform 클라이언트 SDK에서 ID 토큰 Identity Platform의 백엔드와 협력하여 세션을 최신 상태로 유지합니다. 백엔드에서 중요한 계정 변경 (예: 사용자 계정)이 변경되면 비밀번호 변경)이 발생한 적이 있는지 확인합니다. ID 토큰은 웹 클라이언트에서 쿠키로 설정되고 수명이 1시간밖에 되지 않습니다. 사용자가 1시간의 세션만 원하는 경우, ID 토큰은 적합하지 않습니다. 모든 페이지 요청의 유효성을 검사하는 쿠키로 사용됩니다. 대신 리스너를 설정해야 함 사용자가 로그인할 때 ID 토큰을 가져옵니다. 토큰을 검증하고, 자체 쿠키에 액세스할 수 있습니다.

    쿠키의 세션 수명은 애플리케이션 보안 요구사항을 충족할 수 있습니다

  • 웹 로그인 흐름

    이전에는 로그인할 때 사용자가 accountchooser.com(으)로 리디렉션되었습니다. 사용자가 사용하기를 원하는 식별자를 학습하기 시작했습니다. Identity Platform 이제 UI 흐름이 이메일을 포함한 로그인 방법 목록으로 시작됩니다. 옵션은 웹용 accountchooser.com로 이동하고 hintRequest API 사용 Android 또한 UI에서는 더 이상 이메일 주소가 필요하지 않습니다. 이렇게 하면 익명 사용자, 커스텀 인증 사용자 이메일 주소가 필요하지 않은 제공업체의 사용자

  • 계정 관리 위젯

    이 위젯은 사용자가 이메일 주소를 변경하거나 비밀번호를 만들거나 ID 공급업체에서 계정의 연결을 해제할 수 있습니다. 현재는 개발 중입니다.

  • 로그인 버튼/위젯

    로그인 버튼, 사용자 카드와 같은 위젯은 더 이상 제공되지 않습니다. 그들은 Firebase Authentication API를 사용하여 아주 쉽게 빌드할 수 있습니다.

  • signOutUrl 없음

    firebase.auth.signOut()를 호출하고 콜백을 처리해야 합니다.

  • oobActionUrl 없음

    이제 이메일 전송은 Identity Platform에서 처리되며 Firebase Console

  • CSS 맞춤설정

    UI 위젯은 Material Design Lite 스타일을 사용하는데, 머티리얼 디자인 애니메이션을 동적으로 추가합니다.

1단계: 서버 코드 변경

  1. 서버가 Identity Toolkit 토큰 (2주 동안 유효)을 사용하여 웹 사용자 세션을 관리하려면 자체 웹 사용자 세션을 사용하도록 서버를 세션 쿠키에 저장됩니다.

    1. 엔드포인트 구현 ID 토큰 검증 사용자에 대한 세션 쿠키를 설정합니다. 클라이언트 앱은 이 엔드포인트에 대한 Firebase ID 토큰입니다.
    2. 수신 요청에 자체 세션 쿠키가 포함되어 있는 경우 사용자가 인증된 것으로 간주합니다. 그렇지 않은 경우 요청을 다음과 같이 처리합니다. 인증되지 않았습니다.
    3. 사용자가 기존 로그인 정보를 잃지 않도록 하려면 2주 동안 기다린 후 만료되거나 웹 애플리케이션에 대한 이중 토큰 유효성 검사도 수행합니다. 을 만들 수 있습니다.
  2. 다음으로 ID 토큰이 Identity 도구 키트와 다르기 때문입니다. 토큰의 경우 토큰 유효성 검사 로직을 업데이트해야 합니다. 설치 Admin SDK 서버에 복사됩니다. 또는 Admin SDK에서 지원하지 않는 언어를 사용하는 경우 JWT 토큰 검증 라이브러리 다운로드 적절하게 토큰의 유효성을 검사합니다.

  3. 위의 업데이트를 처음 수행하면 여전히 Identity Toolkit 토큰을 사용합니다 iOS 또는 Android 애플리케이션이 있는 경우 새 버전의 앱으로 업그레이드해야 사용자가 새 코드 경로가 작동합니다. 사용자가 2024년 11월 10일 이후로 앱에 있는 경우 버전을 검사하는 서버 유효성 검사 로직을 Firebase SDK 또는 토큰의 유효성을 검사하는 Identity Toolkit SDK 웹만 있는 경우 애플리케이션의 경우, 모든 새로운 인증 요청은 Identity Platform을 사용하기 때문에 ID 토큰만 사용하면 되며 확인 방법을 사용합니다.

웹 API 참조를 확인하세요.

2단계: HTML 업데이트

  1. 앱에 초기화 코드를 추가합니다.

    1. 다음에서 프로젝트를 엽니다. Cloud 콘솔.
    2. providers에서 페이지에서 애플리케이션 설정 세부정보를 클릭합니다. 이 코드 스니펫이 초기화하면 Identity Platform이 표시됩니다
    3. 초기화 스니펫을 복사하여 웹페이지에 붙여넣습니다.
  2. 인증 위젯 추가 있습니다.

    <script src="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.js"></script>
    <link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.css" />
    <!-- *******************************************************************************************
       * TODO(DEVELOPER): Paste the initialization snippet from:
       * Firebase Console > Overview > Add Firebase to your web app. *
       ***************************************************************************************** -->
    <script type="text/javascript">
      // FirebaseUI config.
      var uiConfig = {
        'signInSuccessUrl': '<url-to-redirect-to-on-success>',
        'signInOptions': [
          // Leave the lines as is for the providers you want to offer your users.
          firebase.auth.GoogleAuthProvider.PROVIDER_ID,
          firebase.auth.FacebookAuthProvider.PROVIDER_ID,
          firebase.auth.TwitterAuthProvider.PROVIDER_ID,
          firebase.auth.GithubAuthProvider.PROVIDER_ID,
          firebase.auth.EmailAuthProvider.PROVIDER_ID
        ],
        // Terms of service url.
        'tosUrl': '<your-tos-url>',
      };
    
      // Initialize the FirebaseUI Widget using Firebase.
      var ui = new firebaseui.auth.AuthUI(firebase.auth());
      // The start method will wait until the DOM is loaded.
      ui.start('#firebaseui-auth-container', uiConfig);
    </script>
    
  3. 앱에서 Identity Toolkit SDK를 삭제합니다.

  4. 세션 관리를 위해 Identity Toolkit ID 토큰을 사용한다면 클라이언트 측에서 다음과 같이 변경해야 합니다.

    1. Identity Platform에 성공적으로 로그인한 후 다음을 수행하여 ID 토큰을 가져옵니다. firebase.auth().currentUser.getToken()를 호출합니다.

    2. 백엔드 서버로 ID 토큰을 전송하고 검증하고 발행합니다. 자신의 세션 쿠키에 저장됩니다.

      민감한 정보를 실행할 때 세션 쿠키에만 의존하지 않음 인증된 수정 요청을 서버에 전송할 수 있습니다 나 추가 교차 사이트 요청 위조 (CSRF)를 제공해야 함 있습니다

      프레임워크가 CSRF 보호를 제공하지 않는 경우 로그인한 사용자의 ID 토큰을 얻고 getToken()로 설정하고 각 요청 (세션 쿠키도 기본적으로 전송됩니다. 그런 다음 이 토큰을 검증하여 Admin SDK를 사용하여 세션 쿠키 확인 확인할 수 있습니다 이렇게 하면 CSRF 공격은 성공할 수 있습니다. ID 토큰은 웹 스토리지에 저장됩니다

    3. Identity Toolkit 토큰은 2주 동안 유효합니다. 권장 사항 2주 동안 지속된 토큰을 계속 발급하거나 앱의 보안 요구사항에 따라 길이를 늘리거나 줄일 수 있습니다. 사용자가 로그아웃하면 세션 쿠키를 삭제합니다.

3단계: IDP 리디렉션 URL 업데이트

  1. Cloud 콘솔에서 Providers를 열고 섹션으로 이동합니다.

  2. 지원하는 제휴 로그인 제공업체마다 다음을 수행합니다.

    1. 로그인 제공업체의 이름을 클릭합니다.
    2. OAuth 리디렉션 URI를 복사합니다.
    3. 로그인 제공업체의 개발자 콘솔에서 OAuth 리디렉션을 업데이트합니다. URI.

Android

1단계: Firebase로 앱에 Identity Platform 추가

  1. Google 검색 앱 홈 화면의 오른쪽 상단에 있는 Cloud 콘솔 Identity Toolkit 프로젝트를 선택합니다.

  2. 제공업체 페이지에서 애플리케이션 설정 세부정보를 클릭하고 Android 탭에서 Firebase 시작하기를 클릭합니다. Firebase 추가 대화상자에서 앱의 패키지 이름과 서명을 입력합니다. 인증서 지문을 선택하고 앱 추가를 클릭합니다. google-services.json 컴퓨터에 다운로드됩니다.

  3. 구성 파일을 Android 앱 모듈 루트 디렉터리에 복사합니다. 이 구성 파일에는 프로젝트와 Google OAuth 클라이언트 정보가 포함되어 있습니다.

  4. 프로젝트 수준 build.gradle 파일 (<var>your-project</var>/build.gradle) defaultConfig 섹션:

    defaultConfig {
       …..
      applicationId "com.your-app"
    }
    
  5. 또한 프로젝트 수준 build.gradle 파일에 포함할 종속 항목을 추가합니다. google-services 플러그인입니다.

    buildscript {
     dependencies {
       // Add this line
       classpath 'com.google.gms:google-services:3.0.0'
     }
    }
    
  6. 앱의 앱 수준 build.gradle 파일에서 (<var>my-project</var>/<var>app-module</var>/build.gradle) 아래에 Android Gradle 플러그인 다음에 다음 줄을 추가하여 google-services 플러그인:

    apply plugin: 'com.android.application'
    // Add this line
    apply plugin: 'com.google.gms.google-services'
    

    google-services 플러그인은 google-services.json 파일을 사용하여 애플리케이션을 구축해야 합니다

  7. 또한 앱 수준 build.gradle 파일에서 Firebase 인증을 추가합니다. 종속됩니다.

    compile 'com.google.firebase:firebase-auth:23.0.0'
    compile 'com.google.android.gms:play-services-auth:21.2.0'
    

2단계: Identity Toolkit SDK 삭제하기

  1. AndroidManifest.xml에서 Identity Toolkit 구성을 삭제합니다. 파일에서 참조됩니다. 이 정보는 google-service.json 파일에 포함되어 있으며 Google 서비스 플러그인에서 로드할 수 있습니다
  2. 앱에서 Identity Toolkit SDK를 삭제합니다.

3단계: 앱에 FirebaseUI 추가

  1. FirebaseUI 인증 추가 해야 합니다.

  2. 앱에서 Identity Toolkit SDK에 대한 호출을 있습니다.

iOS

1단계: 앱에 Firebase 추가

  1. 다음 명령어를 실행하여 앱에 클라이언트 SDK를 추가합니다.

    $ cd your-project directory
    $ pod init
    $ pod 'Firebase'
    
  2. Google 검색 앱 홈 화면의 오른쪽 상단에 있는 Cloud 콘솔 Identity Toolkit 프로젝트를 선택합니다.

  3. 제공업체 페이지에서 애플리케이션 설정 세부정보를 클릭하고 iOS를 선택합니다. Firebase에서 시작하기를 클릭합니다. Firebase 추가 대화상자에서 앱의 패키지 이름과 서명 인증서 지문을 제공하고 앱 추가를 클릭합니다. 그러면 google-services.json 구성 파일이 컴퓨터에 다운로드할 수 있습니다. Firebase 추가 대화상자에서 앱의 번들 ID와 App Store ID를 선택한 다음 앱 추가를 클릭합니다. 그러면 GoogleService-Info.plist 구성 파일이 있습니다. 프로젝트에 번들 ID가 여러 개 있는 경우 각 번들 ID Firebase Console에서 연결해야 GoogleService-Info.plist 파일.

  4. 구성 파일을 Xcode 프로젝트의 루트에 복사하여 모든 타겟에 적용됩니다

2단계: Identity Toolkit SDK 삭제하기

  1. 앱의 Podfile에서 GoogleIdentityToolkit를 삭제합니다.
  2. pod install 명령어를 실행합니다.

3단계: 앱에 FirebaseUI 추가

  1. FirebaseUI 인증 추가 해야 합니다.

  2. 앱에서 Identity Toolkit SDK에 대한 호출을 있습니다.