Créer des clients OAuth pour IAP

Cette page explique comment créer un client OAuth lorsque vous utilisez la configuration OAuth personnalisée pour activer l'IAP avec des identités Google.

Créer un client OAuth

Vous pouvez créer au maximum 36 clients OAuth pour chaque projet avec la console Google Cloud. Vous pouvez créer jusqu'à 500 clients OAuth par projet avec la Google Cloud CLI.

Console

Suivez les étapes ci-dessous pour créer un client OAuth à l'aide de la console Google Cloud.

  1. Configurez l'écran de consentement OAuth en suivant les instructions de la page Configurer votre écran de consentement OAuth.

  2. Créez un client OAuth en suivant les instructions de la section Configurer OAuth 2.0.

gcloud

Limitations connues

Vous trouverez ci-dessous les limites des clients OAuth créés par programmation à l'aide de l'API:

  • Les clients OAuth créés par l'API ne peuvent être modifiés qu'à l'aide de l'API. Vous ne pouvez pas modifier un client OAuth à l'aide de la console Google Cloud s'il a été créé à l'aide de l'API.
  • Les clients OAuth créés par l'API sont verrouillés pour une utilisation IAP uniquement. Par conséquent, l'API n'autorise aucune mise à jour de l'URI de redirection ni d'autres attributs.
  • L'API ne fonctionne pas sur les clients OAuth créés à l'aide de la console Google Cloud.
  • Seuls 500 clients OAuth sont autorisés par projet lors de l'utilisation de l'API.
  • Les marques d'écran d'autorisation OAuth créées par l'API ont des limitations spécifiques. Pour en savoir plus, consultez la section.

Comprendre les marques et leur état

L'l'écran d'autorisation OAuth, qui contient des informations sur les marques pour les utilisateurs, est appelé marque. Les marques peuvent être limitées aux utilisateurs internes ou publics. Une marque interne rend le flux OAuth accessible à une personne qui appartient à la même organisation Google Workspace que le projet. Une marque publique rend le flux OAuth disponible à tous sur Internet.

Les marques peuvent être créées manuellement ou par programmation à l'aide d'une API. Les marques créées à l'aide d'une API sont automatiquement configurées avec les paramètres suivants:

  • Interne. Vous devez définir manuellement la valeur sur "public".

  • Non examinées. Vous devez déclencher un examen de la marque.

Pour définir une marque interne sur public:

  1. Ouvrez l'écran d'autorisation OAuth.
  2. Sélectionnez un projet dans le menu déroulant.
  3. Sur l'écran d'autorisation OAuth, notez que le Type d'utilisateur est automatiquement défini sur Interne. Pour le définir sur Public, cliquez sur Modifier l'application. D'autres options de configuration sont disponibles.
  4. Sous Type d'application, cliquez sur Public.

Pour déclencher une révision de marque pour une marque non révisée créée par l'API :

  1. Ouvrez l'écran d'autorisation OAuth.
  2. Sélectionnez le projet souhaité dans le menu déroulant.
  3. Sur la page Écran d'autorisation OAuth, saisissez les informations requises, puis cliquez sur Soumettre pour validation.

Le processus de validation peut prendre plusieurs semaines. Vous recevrez des informations concernant la progression de l'opération par e-mail. En savoir plus sur la validation. Tant que le processus de validation est en cours, vous pouvez toujours utiliser l'application dans votre organisation Google Workspace. En savoir plus sur le comportement de votre application avant sa validation.

Autorisations requises

Avant de créer le client, assurez-vous que l'appelant a reçu les autorisations suivantes:

  • clientauthconfig.brands.list
  • clientauthconfig.brands.create
  • clientauthconfig.brands.get
  • clientauthconfig.clients.create
  • clientauthconfig.clients.listWithSecrets
  • clientauthconfig.clients.getWithSecret
  • clientauthconfig.clients.delete
  • clientauthconfig.clients.update

Ces autorisations sont incluses dans les rôles de base d'éditeur (roles/editor) et de propriétaire (roles/owner), mais nous vous recommandons de créer un rôle personnalisé qui contient ces autorisations et les accorde à l'appelant à la place.

Configurer OAuth pour IAP

Les étapes suivantes décrivent comment configurer l'écran d'autorisation et créer et autoriser un client pour IAP.

  1. Vérifiez que vous disposez déjà d'une marque à l'aide de la commande list. Vous ne pouvez disposer que d'une seule marque par projet.

    gcloud iap oauth-brands list

    Voici un exemple de réponse gcloud, si la marque existe :

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID]
    applicationTitle: [APPLICATION_TITLE]
    supportEmail: [SUPPORT_EMAIL]
    orgInternalOnly: true
    
  2. Si aucune marque n'existe, utilisez la commande create :

    gcloud iap oauth-brands create --application_title=APPLICATION_TITLE --support_email=SUPPORT_EMAIL

    Les champs ci-dessus sont obligatoires lors de l'appel de cette API :

    • supportEmail : l'adresse e-mail d'assistance affichée sur l'écran d'autorisation OAuth. Il peut s'agir de l'adresse e-mail d'un utilisateur ou d'un alias d'adresses e-mail de Google Groupes. Bien que les comptes de service possèdent également une adresse e-mail, celles-ci ne sont pas valides et ne peuvent pas être utilisées lors de la création d'une marque. Toutefois, un compte de service peut être propriétaire d'un groupe Google. Créez un groupe Google ou configurez un groupe existant, puis définissez le compte de service souhaité en tant que propriétaire du groupe.

    • applicationTitle : nom de l'application affiché sur l'écran d'autorisation OAuth.

    La réponse contient les champs suivants :

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID]
    applicationTitle: [APPLICATION_TITLE]
    supportEmail: [SUPPORT_EMAIL]
    orgInternalOnly: true
    

Créer un client OAuth IAP

  1. Utilisez la commande "create" pour créer un client. Utilisez la marque name de l'étape précédente.

    gcloud iap oauth-clients create projects/PROJECT_NUMBER/brands/BRAND-ID --display_name=NAME

    La réponse contient les champs suivants :

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_NAME]/identityAwareProxyClients/[CLIENT_ID]
    secret: [CLIENT_SECRET]
    displayName: [NAME]