Configurer la méthode d'authentification OIDC

Pour configurer la méthode d'authentification OIDC dans HashiCorp Vault, vous pouvez Utiliser une commande de l'interface de ligne de commande ou Utiliser l'API. Pour la méthode API, vous pouvez utiliser soit HCP Vault Dedicated, soit HCP Vault.

Utiliser une commande de l'interface de ligne de commande

Cette configuration utilise le chemin de montage oidc par défaut. Si vous avez créé un chemin personnalisé (par exemple, okta-oidc), vous devez mettre à jour la variable path pour l'intégration dans Okta.

  1. Exécutez cette commande pour faire d'OIDC la méthode d'authentification par défaut :
    #!/bin/bash 
    vault auth enable oidc
  2. Exécutez cette commande pour créer un rôle nommé vault-role-okta-default :
    #!/bin/bash 
    vault write auth/oidc/role/vault-role-okta-default \
    	bound_audiences="$OKTA_CLIENT_ID" \
    	allowed_redirect_uris="$VAULT_ADDR/ui/vault/auth/oidc/oidc/callback" \
    	allowed_redirect_uris="http://localhost:8250/oidc/callback" \
    	user_claim="sub" \
    	token_policies="default"
  3. Exécutez cette commande pour configurer la méthode d'authentification OIDC :
    #!/bin/bash 
    vault write auth/oidc/config \
    	oidc_discovery_url="https://$OKTA_DOMAIN" \
    	oidc_client_id="$OKTA_CLIENT_ID" \
    	oidc_client_secret="$OKTA_CLIENT_SECRET" \
    	default_role="vault-role-okta-default"
    

    Dans HCP Vault, oidc_discovery_url, oidc_client_idet oidc_client_secret sont définis sur les variables que vous avez configurées à la section précédente.

  4. Exécutez cette commande pour afficher les méthodes d'authentification activées :
    #!/bin/bash 
    vault auth list
    

Utiliser l'API

Effectuez ces étapes dans HCP Vault Dedicated ou HCP Vault.

HCP Vault Dedicated

  1. Envoyez une requête qui active la méthode d'authentification OIDC au point de terminaison sys/auth/oidc :
    curl --header "X-Vault-Token: $VAULT_TOKEN" \
    	--header "X-Vault-Namespace: $VAULT_NAMESPACE" \
    	--request POST \
    	--data '{"type": "oidc"}' \
    	$VAULT_ADDR/v1/sys/auth/oidc		
  2. Envoyez une requête qui contient la définition de rôle vault-role-okta-default :
    #!/bin/bash 
    tee vault-role-okta-default.json <<EOF
    {
    	"bound_audiences": "$OKTA_CLIENT_ID",
    	"allowed_redirect_uris": [
    		"$VAULT_ADDR/ui/vault/auth/oidc/oidc/callback",
    		"http://localhost:8250/oidc/callback"
    	],
    	"user_claim": "sub",
    	"token_policies": ["default"]
    }
    EOF

    allowed_redirect_uris dans la requête utilisent les URL de rappel que vous avez définies dans la section précédente. user_claim indique à l'app comment identifier chaque utilisateur unique. Consultez OpenID Connect and OAuth 2.0 pour plus d'informations.

  3. Envoyez une requête pour configurer le rôlevault-role-okta-admin :
    curl --header "X-Vault-Token: $VAULT_TOKEN" \
    	--header "X-Vault-Namespace: $VAULT_NAMESPACE" \
    	--request POST \
    	--data @vault-role-okta-default.json \
    	$VAULT_ADDR/v1/auth/oidc/role/vault-role-okta-default	
  4. Envoyez une requête qui contient la définition de la configuration OIDC :
    tee oidc_config.json <<EOF
    {
    	"oidc_discovery_url": "https://$OKTA_DOMAIN",
    	"oidc_client_id": "$OKTA_CLIENT_ID",
    	"oidc_client_secret": "$OKTA_CLIENT_SECRET",
    	"default_role": "vault-role-okta-default"
    }
    EOF
    
    Dans HCP Vault, oidc_discovery_url, oidc_client_idet oidc_client_secret sont définis sur les variables que vous avez configurées à la section précédente. De plus, default_role est défini sur vault-role-okta-default.
  5. Envoyez une requête qui active la méthode d'authentification OIDC :
    curl --header "X-Vault-Token: $VAULT_TOKEN" \
    	--header "X-Vault-Namespace: $VAULT_NAMESPACE" \
    	--request POST \
    	--data @oidc_config.json \
    			$VAULT_ADDR/v1/auth/oidc/config

HCP Vault

  1. Envoyez une requête qui active la méthode d'authentification OIDC au point de terminaison auth/oidc :
    curl --header "X-Vault-Token: $VAULT_TOKEN" \
    	--request POST \
    	--data '{"type": "oidc"}' \
    	$VAULT_ADDR/v1/sys/auth/oidc
  2. Envoyez une requête qui contient la définition de rôle vault-role-okta-default.
    #!/bin/bash
    tee vault-role-okta-default.json <<EOF
    {
    	"bound_audiences": "$OKTA_CLIENT_ID",
    	"allowed_redirect_uris": [
    	"$VAULT_ADDR/ui/vault/auth/oidc/oidc/callback",
    	"http://localhost:8250/oidc/callback"
    	],
    	"user_claim": "sub",
    	"token_policies": ["default"]
    }
    EOF	
  3. Envoyez une requête qui crée le rôle vault-role-okta-default :
    curl --header "X-Vault-Token: $VAULT_TOKEN" \
    	--request POST \
    	--data @vault-role-okta-default.json \
    	$VAULT_ADDR/v1/auth/oidc/role/vault-role-okta-default
  4. Envoyez une requête qui contient la définition de la configuration OIDC :
    #!/bin/bash
    tee oidc_config.json <<EOF
    {
    	"oidc_discovery_url": "https://$OKTA_DOMAIN",
    	"oidc_client_id": "$OKTA_CLIENT_ID",
    	"oidc_client_secret": "$OKTA_CLIENT_SECRET",
    	"default_role": "vault-role-okta-default"}
    EOF		
  5. Envoyez une requête qui active la méthode d'authentification OIDC :
    curl --header "X-Vault-Token: $VAULT_TOKEN" \
    	--request POST \
    	--data @oidc_config.json \
    	$VAULT_ADDR/v1/auth/oidc/config

Étape suivante

Configurer des groupes et des politiques