Menginstal Admin SDK
Dokumen ini menunjukkan cara menginstal Identity Platform Admin SDK. Admin SDK memungkinkan Anda mengelola Identity Platform dari lingkungan server, dan melakukan tindakan administrator seperti memigrasikan pengguna, menetapkan klaim kustom, dan mengonfigurasi penyedia identitas.
Sebelum memulai
Untuk menggunakan Admin SDK, Anda memerlukan aplikasi server yang menjalankan salah satu hal berikut:
| Bahasa | Versi framework minimum |
|---|---|
| Node.js | Node.js 8.13.0+ |
| Java | Java 7+ (direkomendasikan Java 8+) |
| Python | Python 2.7+ atau 3.4+ (3.4+ direkomendasikan) |
| Go | Go 1.9+ |
| C# | .NET Framework 4.5+ atau .NET Core 1.5+ |
Tabel berikut mencantumkan fitur yang didukung oleh setiap bahasa SDK:
Konsol
-
Membuat akun layanan:
-
Pastikan Anda memiliki peran IAM Create Service Accounts
(
roles/iam.serviceAccountCreator) dan peran Project IAM Admin (roles/resourcemanager.projectIamAdmin). Pelajari cara memberikan peran. -
Di konsol Google Cloud , buka halaman Buat akun layanan.
Buka Create service account - Pilih project Anda.
-
Di kolom Nama akun layanan, masukkan nama. Konsol Google Cloud akan mengisi kolom ID akun layanan berdasarkan nama ini.
Di kolom Deskripsi akun layanan, masukkan sebuah deskripsi. Sebagai contoh,
Service account for quickstart. - Klik Create and continue.
-
Berikan peran Lainnya > Admin Identity Toolkit ke akun layanan.
Untuk memberikan peran, temukan daftar Pilih peran, lalu pilih Lainnya > Admin Identity Toolkit.
- Klik Lanjutkan.
-
Klik Selesai untuk menyelesaikan pembuatan akun layanan.
Jangan tutup jendela browser Anda. Anda akan menggunakannya pada langkah berikutnya.
-
Pastikan Anda memiliki peran IAM Create Service Accounts
(
-
Membuat kunci akun layanan:
- Di konsol Google Cloud , klik alamat email untuk akun layanan yang telah dibuat.
- Klik Kunci.
- Klik Tambahkan kunci, lalu klik Buat kunci baru.
- Klik Create. File kunci JSON akan didownload ke komputer Anda.
- Klik Close.
gcloud
-
Menyiapkan autentikasi:
-
Pastikan Anda memiliki peran IAM Create Service Accounts
(
roles/iam.serviceAccountCreator) dan peran IAM Project IAM Admin (roles/resourcemanager.projectIamAdmin). Pelajari cara memberikan peran. -
Buat akun layanan:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Ganti
SERVICE_ACCOUNT_NAMEdengan nama untuk akun layanan. -
Memberikan peran IAM
roles/identitytoolkit.adminke akun layanan.gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/identitytoolkit.admin
Ganti kode berikut:
SERVICE_ACCOUNT_NAME: nama dari akun layanan.PROJECT_ID: project ID dimana Anda membuat akun layanan
-
Membuat file kunci:
gcloud iam service-accounts keys create FILE_NAME.json --iam-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Ganti kode berikut:
FILE_NAME: nama untuk file kunciSERVICE_ACCOUNT_NAME: nama dari akun layanan.PROJECT_ID: project ID dimana Anda membuat akun layanan
-
Pastikan Anda memiliki peran IAM Create Service Accounts
(
Menginstal SDK
Node.js
Node.js Admin SDK tersedia di npm. Jika Anda belum memiliki
file package.json, buat file tersebut menggunakan npm init. Selanjutnya, instal
paket npm dan simpan ke package.json Anda:
npm install firebase-admin --save
Untuk menggunakan modul tersebut di aplikasi Anda, terapkan require padanya dari file JavaScript mana pun:
var admin = require('firebase-admin');
Jika menggunakan ES2015, Anda dapat menerapkan import pada modul tersebut:
import * as admin from 'firebase-admin';
Java
Java Admin SDK dipublikasikan ke repositori pusat Maven.
Untuk menginstal library tersebut, deklarasikan sebagai dependensi di file
build.gradle Anda:
dependencies {
implementation 'com.google.firebase:firebase-admin:6.11.0'
}
Jika menggunakan Maven untuk mem-build aplikasi, Anda dapat menambahkan
dependensi berikut ke pom.xml:
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>6.11.0</version>
</dependency>
Python
Python Admin SDK tersedia menggunakan pip.
pip install --user firebase-admin
Go
Gunakan utilitas go get untuk menginstal Go Admin SDK:
go get firebase.google.com/go
C#
Instal .NET Admin SDK menggunakan pengelola paket .NET:
Install-Package FirebaseAdmin -Version 1.9.1
Sebagai alternatif, Anda dapat menginstalnya menggunakan aplikasi utilitas command line dotnet:
dotnet add package FirebaseAdmin --version 1.9.1
Atau, Anda dapat menginstalnya dengan menambahkan entri referensi paket berikut ke
file .csproj Anda:
<ItemGroup>
<PackageReference Include="FirebaseAdmin" Version="1.9.1" />
</ItemGroup>
Menginisialisasi SDK menggunakan kredensial default
Tambahkan kode berikut ke aplikasi server Anda untuk menginisialisasi Admin SDK menggunakan kredensial default:
Node.js
// Initialize the default app
var admin = require('firebase-admin');
var app = admin.initializeApp({
credential: admin.credential.applicationDefault()
});
Java
FirebaseApp.initializeApp();
Python
default_app = firebase_admin.initialize_app()
Go
app, err := firebase.NewApp(context.Background(), nil) if err != nil { log.Fatalf("error initializing app: %v\n", err) }
C#
FirebaseApp.Create();
Menginisialisasi SDK dengan file kunci akun layanan
Anda juga dapat menentukan file kunci akun layanan secara manual:
Node.js
// Initialize the default app
var admin = require('firebase-admin');
var app = admin.initializeApp({
credential: admin.credential.cert('/path/to/serviceAccountKey.json')
});
Java
FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json"); FirebaseOptions options = FirebaseOptions.builder() .setCredentials(GoogleCredentials.fromStream(serviceAccount)) .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/") .build(); FirebaseApp.initializeApp(options);
Python
import firebase_admin from firebase_admin import credentials from firebase_admin import exceptions cred = credentials.Certificate('path/to/serviceAccountKey.json') default_app = firebase_admin.initialize_app(cred)
Go
opt := option.WithCredentialsFile("path/to/serviceAccountKey.json") app, err := firebase.NewApp(context.Background(), nil, opt) if err != nil { log.Fatalf("error initializing app: %v\n", err) }
C#
FirebaseApp.Create(new AppOptions() { Credential = CredentialFactory.FromFile<ServiceAccountCredential>("path/to/serviceAccountKey.json").ToGoogleCredential(), });
Menginisialisasi beberapa aplikasi
Biasanya, Anda hanya perlu menginisialisasi satu aplikasi default. Namun, Anda juga dapat membuat beberapa instance aplikasi, yang masing-masing memiliki opsi konfigurasi dan status autentikasinya sendiri.
Node.js
// Initialize the default app
admin.initializeApp(defaultAppConfig);
// Initialize another app with a different config
var otherApp = admin.initializeApp(otherAppConfig, 'other');
console.log(admin.app().name); // '[DEFAULT]'
console.log(otherApp.name); // 'other'
// Use the shorthand notation to retrieve the default app's services
var defaultAuth = admin.auth();
Java
// Initialize the default app FirebaseApp defaultApp = FirebaseApp.initializeApp(defaultOptions); // Initialize another app with a different config FirebaseApp otherApp = FirebaseApp.initializeApp(otherAppConfig, "other"); System.out.println(defaultApp.getName()); // "[DEFAULT]" System.out.println(otherApp.getName()); // "other" // Use the shorthand notation to retrieve the default app's services FirebaseAuth defaultAuth = FirebaseAuth.getInstance(); FirebaseDatabase defaultDatabase = FirebaseDatabase.getInstance(); // Use the otherApp variable to retrieve the other app's services FirebaseAuth otherAuth = FirebaseAuth.getInstance(otherApp); FirebaseDatabase otherDatabase = FirebaseDatabase.getInstance(otherApp);
Python
# Initialize the default app default_app = firebase_admin.initialize_app(cred) # Initialize another app with a different config other_app = firebase_admin.initialize_app(cred, name='other') print(default_app.name) # "[DEFAULT]" print(other_app.name) # "other" # Retrieve default services via the auth package... # auth.create_custom_token(...) # Use the `app` argument to retrieve the other app's services # auth.create_custom_token(..., app=other_app)
Go
// Initialize the default app defaultApp, err := firebase.NewApp(context.Background(), nil) if err != nil { log.Fatalf("error initializing app: %v\n", err) } // Initialize another app with a different config opt := option.WithCredentialsFile("service-account-other.json") otherApp, err := firebase.NewApp(context.Background(), nil, opt) if err != nil { log.Fatalf("error initializing app: %v\n", err) } // Access Auth service from default app defaultClient, err := defaultApp.Auth(context.Background()) if err != nil { log.Fatalf("error getting Auth client: %v\n", err) } // Access auth service from other app otherClient, err := otherApp.Auth(context.Background()) if err != nil { log.Fatalf("error getting Auth client: %v\n", err) }
C#
// Initialize the default app var defaultApp = FirebaseApp.Create(defaultOptions); // Initialize another app with a different config var otherApp = FirebaseApp.Create(otherAppConfig, "other"); Console.WriteLine(defaultApp.Name); // "[DEFAULT]" Console.WriteLine(otherApp.Name); // "other" // Use the shorthand notation to retrieve the default app's services var defaultAuth = FirebaseAuth.DefaultInstance; // Use the otherApp variable to retrieve the other app's services var otherAuth = FirebaseAuth.GetAuth(otherApp);
Menetapkan cakupan
Jika Anda menggunakan VM Compute Engine dengan Kredensial Default Aplikasi Google untuk autentikasi, Anda harus menetapkan cakupan akses yang tepat.
Identity Platform memerlukan cakupan akses userinfo.email dan cloud-platform.
Untuk memeriksa cakupan akses yang ada, jalankan perintah berikut:
gcloud compute instances describe [INSTANCE-NAME] --format json
Perintah ini akan menampilkan informasi tentang akun layanan. Contoh:
"serviceAccounts": [
{
"email": "example.gserviceaccount.com",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/userinfo.email"
]
}
]
Untuk memperbarui cakupan akses, hentikan VM, lalu jalankan perintah berikut:
gcloud compute instances set-service-account [INSTANCE-NAME] \
--service-account "your.gserviceaccount.com" \
--scopes ""https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/userinfo.email"
Langkah berikutnya
- Lihat kode sumber dan dokumentasi tambahan untuk Admin SDK di GitHub:
- Memigrasikan pengguna yang ada ke Identity Platform
- Mengelola penyedia SAML dan OIDC secara terprogram
- Mengelola tenant Identity Platform