Ce guide explique comment gérer les intégrations d'applications basées sur OAuth avec Google Cloud.
De manière générale, pour intégrer une application basée sur OAuth, procédez comme suit:
- Créer un client OAuth.
- Créez un identifiant de client OAuth.
- Dans les identifiants du client OAuth, obtenez le code secret du client. Pour en savoir plus sur les risques associés au stockage et à l'accès au code secret du client, et sur les stratégies qui peuvent vous aider à les atténuer, consultez Risques et solutions pour la sécurité des clients OAuth et des identifiants.
Une fois ces étapes terminées, l'application basée sur OAuth peut accéder aux produits et aux données Google Cloud.
Avant de commencer
Vous devez disposer d'une organisation Google Cloud déjà configurée.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Vous devez avoir configuré un pool d'identités de personnel et un fournisseur dans l'organisation dans laquelle vous allez enregistrer l'application OAuth. Découvrez comment configurer la fédération d'identité de personnel pour Microsoft Entra ID, Okta et d'autres fournisseurs OIDC et SAML 2.0.
Rôles requis
Pour obtenir les autorisations nécessaires pour enregistrer une application OAuth pour votre organisation, demandez à votre administrateur de vous accorder le rôle IAM Administrateur client OAuth IAM (roles/iam.oauthClientAdmin
) sur le projet.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Gérer les clients OAuth
Cette section explique comment gérer les clients OAuth.
Créer un client OAuth
Pour créer un client OAuth, procédez comme suit:
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"
Remplacez les éléments suivants :
APP_OAUTH_CLIENT_ID
: un ID client représentant ce client OAuth.PROJECT_ID
: ID du projet dans lequel vous avez créé votre pool d'identités des employés et votre fournisseur. Le projet doit être créé dans l'organisation où votre pool de personnel et votre fournisseur ont été créés.REDIRECT_URI
: URI de redirection de l'application OAuth (par exemple,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
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel vous avez créé votre pool d'identités des employés et votre fournisseur. Le projet doit être créé dans l'organisation où votre pool de personnel et votre fournisseur ont été créés.REDIRECT_URI
: URI de redirection de l'application OAuth (par exemple,https://myapp.com/signin-callback
).APP_OAUTH_CLIENT_ID
: un ID client représentant ce client OAuth.
Après avoir enregistré l'application, vous créez les identifiants du client OAuth et obtenez le secret que l'application OAuth utilise pour accéder à Google Cloud.
Répertorier les clients OAuth
Pour lister les clients OAuth enregistrés, exécutez la commande suivante:
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
Remplacez PROJECT_ID
par l'ID du projet dans lequel vos applications OAuth sont enregistrées.
Décrire un client OAuth
Pour décrire un client OAuth, exécutez la commande suivante:
gcloud
gcloud iam oauth-clients describe APP_OAUTH_CLIENT_ID \
--project PROJECT_ID \
--location global
Remplacez les éléments suivants :
APP_OAUTH_CLIENT_ID
: ID du client OAuth que vous souhaitez décrirePROJECT_ID
: ID du projet dans lequel vous avez enregistré votre application 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
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel vous avez enregistré votre application OAuth.APP_OAUTH_CLIENT_ID
: ID du client OAuth que vous souhaitez décrire
Mettre à jour un client OAuth
Pour mettre à jour un client OAuth, exécutez la commande suivante.
gcloud
gcloud iam oauth-clients update APP_OAUTH_CLIENT_ID \
--project=PROJECT_ID \
--location=global \
--allowed-redirect-uris="REDIRECT_URI"
Remplacez les éléments suivants :
APP_OAUTH_CLIENT_ID
: ID client OAuth du client OAuth que vous souhaitez mettre à jourPROJECT_ID
: ID du projet dans lequel vous avez enregistré votre application OAuth.REDIRECT_URI
: URI de redirection de l'application OAuth
Pour mettre à jour d'autres champs, utilisez les options répertoriées dans 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
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel vous avez enregistré votre application OAuth.APP_OAUTH_CLIENT_ID
: ID client OAuth du client OAuth que vous souhaitez mettre à jourREDIRECT_URI
: URI de redirection du client OAuth
Pour mettre à jour d'autres champs, définissez update_mask
sur les noms de champ répertoriés dans gcloud iam oauth-clients update
.
Supprimer un client OAuth
Pour supprimer un client OAuth, exécutez la commande suivante:
gcloud
gcloud iam oauth-clients delete APP_OAUTH_CLIENT_ID \
--project PROJECT_ID \
--location global
Remplacez les éléments suivants :
APP_OAUTH_CLIENT_ID
: ID client OAuth à supprimerPROJECT_ID
: ID du projet dans lequel vous avez enregistré votre application 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
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel vous avez enregistré votre application OAuth.APP_OAUTH_CLIENT_ID
: ID client OAuth à supprimer
Gérer les identifiants client OAuth
Cette section explique comment gérer les identifiants client OAuth pour le client OAuth.
Créer un identifiant client OAuth
Pour créer un identifiant client OAuth, exécutez la commande suivante:
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'
Remplacez les éléments suivants :
APP_OAUTH_CLIENT_CREDENTIAL_ID
: ID représentant ces identifiants client.APP_OAUTH_CLIENT_ID
: ID client OAuth que vous pouvez obtenir en décrivant l'application cliente OAuth enregistrée
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
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel vous avez enregistré votre application OAuth.APP_OAUTH_CLIENT_ID
: ID client OAuth que vous pouvez obtenir en décrivant l'application cliente OAuth enregistréeAPP_OAUTH_CLIENT_CREDENTIAL_ID
: ID représentant ces identifiants client.
Liste des identifiants client OAuth
Pour lister les identifiants du client OAuth, exécutez la commande suivante:
gcloud
gcloud iam oauth-clients credentials list \
--oauth-client=APP_OAUTH_CLIENT_ID \
--project=PROJECT_ID \
--location=global
Remplacez les éléments suivants :
APP_OAUTH_CLIENT_ID
: ID client OAuth pour lequel lister les identifiantsPROJECT_ID
: ID du projet dans lequel vous avez enregistré votre application 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
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel vous avez enregistré votre application OAuth.APP_OAUTH_CLIENT_ID
: ID client OAuth pour lequel lister les identifiants
Décrire un identifiant client OAuth
Pour décrire un identifiant client OAuth, exécutez la commande suivante. Vous pouvez obtenir le code secret du client en inspectant la sortie.
gcloud
gcloud iam oauth-clients credentials describe APP_OAUTH_CLIENT_CREDENTIAL_ID \
--oauth-client=APP_OAUTH_CLIENT_ID \
--location='global'
Remplacez les éléments suivants :
APP_OAUTH_CLIENT_CREDENTIAL_ID
: URI de redirection pour le client OAuthAPP_OAUTH_CLIENT_ID
: ID client OAuth que vous pouvez obtenir en décrivant l'enregistrement de l'application cliente
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
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel vous avez enregistré votre application OAuth.APP_OAUTH_CLIENT_CREDENTIAL_ID
: URI de redirection pour le client OAuthAPP_OAUTH_CLIENT_ID
: ID client OAuth que vous pouvez obtenir en décrivant l'enregistrement de l'application cliente
Dans la sortie, clientSecret
correspond au code secret du client. Il s'agit du secret utilisé par l'application OAuth pour accéder à Google Cloud.
Mettre à jour un identifiant de client OAuth
Pour mettre à jour un identifiant de client OAuth, exécutez la commande suivante:
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://staging-iam.sandbox.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID?update_mask=display_name
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel vous avez enregistré votre application OAuth.APP_OAUTH_CLIENT_CREDENTIAL_ID
: URI de redirection pour le client OAuthAPP_OAUTH_CLIENT_ID
: ID client OAuth que vous pouvez obtenir en décrivant l'enregistrement de l'application cliente
Désactiver un identifiant client OAuth
Avant de pouvoir supprimer un identifiant de client OAuth, vous devez le désactiver. Pour désactiver les identifiants du client OAuth, exécutez la commande suivante:
gcloud
gcloud iam oauth-clients credentials update APP_OAUTH_CLIENT_CREDENTIAL_ID \
--oauth-client=APP_OAUTH_CLIENT_ID \
--disabled \
--project=PROJECT_ID \
--location=global
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel vous avez enregistré votre application OAuth.APP_OAUTH_CLIENT_ID
: ID client OAuthAPP_OAUTH_CLIENT_CREDENTIAL_ID
: ID des identifiants du client à désactiver
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
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel vous avez enregistré votre application OAuth.APP_OAUTH_CLIENT_ID
: ID client OAuthAPP_OAUTH_CLIENT_CREDENTIAL_ID
: ID des identifiants du client à désactiver
Supprimer un identifiant de client OAuth
Pour supprimer un identifiant de client OAuth, exécutez la commande suivante:
gcloud
gcloud iam oauth-clients credentials delete APP_OAUTH_CLIENT_CREDENTIAL_ID \
--project=PROJECT_ID \
--oauth-client=APP_OAUTH_CLIENT_ID \
--location=global
Remplacez les éléments suivants :
APP_OAUTH_CLIENT_CREDENTIAL_ID
: ID client OAuthPROJECT_ID
: ID du projet dans lequel vous avez enregistré votre application OAuth.APP_OAUTH_CLIENT_ID
: ID des identifiants du client
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
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel vous avez enregistré votre application OAuth.APP_OAUTH_CLIENT_ID
: ID des identifiants du clientAPP_OAUTH_CLIENT_CREDENTIAL_ID
: ID client OAuth
Étape suivante
- En savoir plus sur Identity-Aware Proxy avec la fédération d'identité de personnel