Mengelola aplikasi OAuth

Anda dapat membuat, melihat, memperbarui, dan menghapus klien OAuth dan kredensial klien untuk mengintegrasikan aplikasi berbasis OAuth Anda dengan Google Cloud. Dengan mendaftarkan klien OAuth, pengguna workforce gabungan dapat login ke aplikasi Anda dan mengakses resource Google Cloud .

Pada intinya, untuk mengintegrasikan aplikasi berbasis OAuth, Anda perlu melakukan tindakan berikut:

  1. Buat klien OAuth.
  2. Buat kredensial klien OAuth.
  3. Di kredensial klien OAuth, dapatkan rahasia klien. Untuk mempelajari risiko yang terkait dengan penyimpanan dan akses rahasia klien serta strategi yang dapat membantu memitigasinya, lihat Risiko dan mitigasi keamanan kredensial dan klien OAuth.

Setelah Anda menyelesaikan langkah-langkah ini, aplikasi berbasis OAuth dapat mengakses produk dan dataGoogle Cloud . Anda dapat mengalihkan pengguna ke endpoint otorisasi (https://auth.cloud.google/authorize) untuk mendapatkan kode otorisasi, lalu menggunakan kredensial klien OAuth yang terdaftar untuk menukarkan kode otorisasi atau token refresh dengan Cloud OAuth API.

Sebelum memulai

  1. Anda harus menyiapkan organisasi Google Cloud .

  2. Instal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

    gcloud init

    Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  3. Anda harus menyiapkan workforce identity pool dan penyedia di organisasi tempat Anda akan mendaftarkan aplikasi OAuth. Pelajari cara menyiapkan workforce identity federation untuk Microsoft Entra ID, Okta, serta penyedia OIDC dan SAML 2.0 lainnya.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna mendaftarkan aplikasi OAuth untuk organisasi Anda, minta administrator untuk memberi Anda peran IAM IAM OAuth Client Admin (roles/iam.oauthClientAdmin) di project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Mengelola klien OAuth

Bagian ini menunjukkan cara mengelola klien OAuth.

Membuat klien OAuth

Untuk membuat klien OAuth, lakukan hal berikut:

gcloud

gcloud iam oauth-clients create APP_OAUTH_CLIENT_ID \
    --project=PROJECT_ID \
    --location=global \
    --client-type="CONFIDENTIAL_CLIENT" \
    --display-name="My OAuth application" \
    --description="An application registration for MyApp" \
    --allowed-scopes="https://www.googleapis.com/auth/cloud-platform" \
    --allowed-redirect-uris="REDIRECT_URI" \
    --allowed-grant-types="authorization_code_grant"

Ganti kode berikut:

  • APP_OAUTH_CLIENT_ID: client ID untuk mewakili klien OAuth ini.
  • PROJECT_ID: ID project tempat Anda membuat workforce identity pool dan penyedia. Project harus dibuat di organisasi tempat workforce pool dan penyedia Anda dibuat.
  • REDIRECT_URI: URI pengalihan untuk aplikasi OAuth—misalnya, https://myapp.com/signin-callback.

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  -d "{ \
        'allowedGrantTypes': ['AUTHORIZATION_CODE_GRANT'], \
        'allowedRedirectUris': ['REDIRECT_URI'], \
        'allowedScopes': ['https://www.googleapis.com/auth/cloud-platform'], \
        'clientType': 'CONFIDENTIAL_CLIENT', \
        'description': 'My OAuth client description', \
        'disabled': false, \
        'displayName': 'My OAuth client'}" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients\?oauthClientId\=APP_OAUTH_CLIENT_ID

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda membuat workforce identity pool dan penyedia. Project harus dibuat di organisasi tempat workforce pool dan penyedia Anda dibuat.
  • REDIRECT_URI: URI pengalihan untuk aplikasi OAuth—misalnya, https://myapp.com/signin-callback.
  • APP_OAUTH_CLIENT_ID: client ID untuk mewakili klien OAuth ini.

Setelah mendaftarkan aplikasi, Anda membuat kredensial klien OAuth dan mendapatkan secret yang digunakan aplikasi OAuth untuk mengakses Google Cloud.

Mencantumkan klien OAuth

Untuk mencantumkan klien OAuth yang terdaftar, jalankan perintah berikut:

gcloud

gcloud iam oauth-clients list \
    --project=PROJECT_ID \
    --location=global

REST

curl \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients

Ganti PROJECT_ID dengan ID project tempat aplikasi OAuth Anda terdaftar.

Menjelaskan klien OAuth

Untuk mendeskripsikan klien OAuth, jalankan perintah berikut:

gcloud

gcloud iam oauth-clients describe APP_OAUTH_CLIENT_ID \
    --project PROJECT_ID \
    --location global

Ganti kode berikut:

  • APP_OAUTH_CLIENT_ID: ID klien OAuth yang ingin Anda deskripsikan
  • PROJECT_ID: ID project tempat Anda mendaftarkan aplikasi OAuth

REST

curl \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda mendaftarkan aplikasi OAuth
  • APP_OAUTH_CLIENT_ID: ID klien OAuth yang ingin Anda deskripsikan

Mengupdate klien OAuth

Untuk mengupdate klien OAuth, jalankan perintah berikut.

gcloud

gcloud iam oauth-clients update APP_OAUTH_CLIENT_ID \
    --project=PROJECT_ID \
    --location=global \
    --allowed-redirect-uris="REDIRECT_URI"

Ganti kode berikut:

  • APP_OAUTH_CLIENT_ID: client ID OAuth untuk klien OAuth yang ingin Anda update
  • PROJECT_ID: ID project tempat Anda mendaftarkan aplikasi OAuth
  • REDIRECT_URI: URI pengalihan untuk aplikasi OAuth

Untuk memperbarui kolom lain, gunakan flag yang tercantum dalam gcloud iam oauth-clients update.

REST

curl -d'{"allowedRedirectUris":"REDIRECT_URI"}' \
  -H "Content-Type: application/json" -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID?update_mask=allowed_redirect_uris

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda mendaftarkan aplikasi OAuth
  • APP_OAUTH_CLIENT_ID: client ID OAuth untuk klien OAuth yang ingin Anda update
  • REDIRECT_URI: URI pengalihan untuk klien OAuth

Untuk memperbarui kolom lain, tetapkan update_mask ke nama kolom yang tercantum di gcloud iam oauth-clients update.

Menghapus klien OAuth

Untuk menghapus klien OAuth, jalankan perintah berikut:

gcloud

gcloud iam oauth-clients delete APP_OAUTH_CLIENT_ID \
    --project PROJECT_ID \
    --location global

Ganti kode berikut:

  • APP_OAUTH_CLIENT_ID: client ID OAuth yang akan dihapus
  • PROJECT_ID: ID project tempat Anda mendaftarkan aplikasi OAuth

REST

curl -X DELETE \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda mendaftarkan aplikasi OAuth
  • APP_OAUTH_CLIENT_ID: client ID OAuth yang akan dihapus

Mengelola kredensial klien OAuth

Bagian ini menunjukkan cara mengelola kredensial klien OAuth untuk klien OAuth.

Membuat kredensial klien OAuth

Untuk membuat kredensial klien OAuth, jalankan perintah berikut:

gcloud

gcloud iam oauth-clients credentials create APP_OAUTH_CLIENT_CREDENTIAL_ID \
    --oauth-client=APP_OAUTH_CLIENT_ID \
    --display-name='My OAuth client credential' \
    --location='global'

Ganti kode berikut:

  • APP_OAUTH_CLIENT_CREDENTIAL_ID: ID yang mewakili kredensial klien ini
  • APP_OAUTH_CLIENT_ID: client ID OAuth yang dapat Anda peroleh dengan mendeskripsikan aplikasi klien OAuth yang terdaftar

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  -d "{'disabled': false, 'displayName': 'My OAuth client credential'}" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials\?oauthClientCredentialId=APP_OAUTH_CLIENT_CREDENTIAL_ID

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda mendaftarkan aplikasi OAuth
  • APP_OAUTH_CLIENT_ID: client ID OAuth yang dapat Anda peroleh dengan mendeskripsikan aplikasi klien OAuth yang terdaftar
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: ID yang mewakili kredensial klien ini

Mencantumkan kredensial klien OAuth

Untuk mencantumkan kredensial klien OAuth, jalankan perintah berikut:

gcloud

gcloud iam oauth-clients credentials list \
    --oauth-client=APP_OAUTH_CLIENT_ID \
    --project=PROJECT_ID \
    --location=global

Ganti kode berikut:

  • APP_OAUTH_CLIENT_ID: client ID OAuth yang kredensialnya akan dicantumkan
  • PROJECT_ID: ID project tempat Anda mendaftarkan aplikasi OAuth

REST

curl \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam.googleapis.com/v1/projects/$PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda mendaftarkan aplikasi OAuth
  • APP_OAUTH_CLIENT_ID: client ID OAuth yang kredensialnya akan dicantumkan

Menjelaskan kredensial klien OAuth

Untuk mendeskripsikan kredensial klien OAuth, jalankan perintah berikut. Anda dapat memperoleh rahasia klien dengan memeriksa output.

gcloud

gcloud iam oauth-clients credentials describe APP_OAUTH_CLIENT_CREDENTIAL_ID \
    --oauth-client=APP_OAUTH_CLIENT_ID \
    --location='global'

Ganti kode berikut:

  • APP_OAUTH_CLIENT_CREDENTIAL_ID: URI pengalihan untuk klien OAuth
  • APP_OAUTH_CLIENT_ID: client ID OAuth yang dapat Anda peroleh dengan mendeskripsikan pendaftaran aplikasi klien

REST

curl \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda mendaftarkan aplikasi OAuth
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: URI pengalihan untuk klien OAuth
  • APP_OAUTH_CLIENT_ID: client ID OAuth yang dapat Anda peroleh dengan mendeskripsikan pendaftaran aplikasi klien

Dalam output, clientSecret adalah rahasia klien. Ini adalah secret yang digunakan aplikasi OAuth untuk mengakses Google Cloud.

Memperbarui kredensial klien OAuth

Untuk memperbarui kredensial klien OAuth, jalankan perintah berikut:

gcloud

gcloud iam oauth-clients credentials update APP_OAUTH_CLIENT_CREDENTIAL_ID \
    --client-id=APP_OAUTH_CLIENT_ID \
    --display-name="My new credential name" \
    --location=global

REST

curl -d'{"displayName":"My new credential name"}' -X PATCH \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID?update_mask=display_name

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda mendaftarkan aplikasi OAuth
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: URI pengalihan untuk klien OAuth
  • APP_OAUTH_CLIENT_ID: client ID OAuth yang dapat Anda peroleh dengan mendeskripsikan pendaftaran aplikasi klien

Menonaktifkan kredensial klien OAuth

Sebelum dapat menghapus kredensial klien OAuth, Anda harus menonaktifkannya. Untuk menonaktifkan kredensial klien OAuth, jalankan perintah berikut:

gcloud

gcloud iam oauth-clients credentials update APP_OAUTH_CLIENT_CREDENTIAL_ID \
    --oauth-client=APP_OAUTH_CLIENT_ID \
    --disabled \
    --project=PROJECT_ID \
    --location=global

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda mendaftarkan aplikasi OAuth
  • APP_OAUTH_CLIENT_ID: client ID OAuth
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: ID kredensial klien yang akan dinonaktifkan

REST

curl -d'{"disabled":"true"}' \
  -H "Content-Type: application/json" -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID?update_mask=disabled

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda mendaftarkan aplikasi OAuth
  • APP_OAUTH_CLIENT_ID: client ID OAuth
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: ID kredensial klien yang akan dinonaktifkan

Menghapus kredensial klien OAuth

Untuk menghapus kredensial klien OAuth, jalankan perintah berikut:

gcloud

gcloud iam oauth-clients credentials delete APP_OAUTH_CLIENT_CREDENTIAL_ID \
    --project=PROJECT_ID \
    --oauth-client=APP_OAUTH_CLIENT_ID \
    --location=global

Ganti kode berikut:

  • APP_OAUTH_CLIENT_CREDENTIAL_ID: client ID OAuth
  • PROJECT_ID: ID project tempat Anda mendaftarkan aplikasi OAuth
  • APP_OAUTH_CLIENT_ID: ID kredensial klien

REST

curl -X DELETE \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda mendaftarkan aplikasi OAuth
  • APP_OAUTH_CLIENT_ID: ID kredensial klien
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: client ID OAuth

Langkah berikutnya