Créer par programmation des clients OAuth pour IAP

Cette page décrit comment créer par programmation des clients OAuth à utiliser avec IAP, vous permettant de configurer de bout en bout IAP par programmation pour les applications internes.

Limitations connues

Les clients OAuth créés de manière automatisée à l'aide de cette API présentent certaines limites:

  • 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 via la console Google Cloud s'il a été créé à l'aide de l'API.
  • Les clients OAuth créés par l'API ne sont verrouillés que pour une utilisation via IAP. Par conséquent, l'API n'autorise pas les mises à 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 ci-dessous.

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 via une API. Les marques créées par l'API sont automatiquement configurées avec différents paramètres :

  • Elles sont définies sur interne et doivent être définis manuellement sur public si vous le souhaitez.
  • Elles sont définies sur un état "non révisé" et un examen de la marque doit être déclenché.

Pour définir manuellement une marque interne sur public :

  1. Ouvrez l'écran d'autorisation OAuth.
  2. Sélectionnez le projet souhaité 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.

Avant de commencer

Avant de pouvoir créer un client, assurez-vous d'abord 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]
    
  2. Utilisez l'ID client (client_id dans l'exemple ci-dessus) et le secret pour activer IAP. Consultez les rubriques suivantes pour en savoir plus sur l'activation d'IAP à l'aide des identifiants que vous venez de créer :