OIDC認証方法を構成する

HashiCorp VaultでOIDC認証方法を構成するには、CLIコマンドを使用するまたはAPIを使用するのいずれかを行います。API方式には、HCP Vault DedicatedまたはHCP Vaultのいずれかを使用できます。

CLIコマンドを使用する

この構成では、デフォルトのoidcマウントパスが使用されます。カスタムパス(okta-oidcなど)を作成した場合は、Oktaで統合するためにpath変数を更新する必要があります。

  1. 次のコマンドを実行して、OIDCをデフォルトの認証方法にします:#!/bin/bash vault auth enable oidc
  2. このコマンドを実行して、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. 次のコマンドを実行して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"

    HCP Vaultでは、oidc_discovery_urloidc_client_id、およびoidc_client_secretが、前のセクションで構成した変数に設定されます。

  4. このコマンドを実行して、有効な認証方式を表示します:#!/bin/bash vault auth list

APIを使用する

HCP Vault DedicatedまたはHCP Vaultのいずれかで次の手順を完了します。

HCP Vault Dedicated

  1. sys/auth/oidcエンドポイントで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. 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は、前のセクションで定義したコールバックURLを使用します。user_claimは、一意の各ユーザーを識別する方法をアプリに伝えます。詳細は、「OpenID ConnectとOAuth 2.0」を参照してください。

  3. vault-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. 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 HCP Vaultでは、oidc_discovery_urloidc_client_id、およびoidc_client_secretが、前のセクションで構成した変数に設定されます。また、default_rolevault-role-okta-defaultに設定されます。
  5. 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. auth/oidcエンドポイントでOIDC認証方法を有効にするリクエストを送信します:curl --header "X-Vault-Token: $VAULT_TOKEN" \ --request POST \ --data '{"type": "oidc"}' \ $VAULT_ADDR/v1/sys/auth/oidc
  2. 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. 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. 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. OIDC認証方法を有効にするリクエストを送信します:curl --header "X-Vault-Token: $VAULT_TOKEN" \ --request POST \ --data @oidc_config.json \ $VAULT_ADDR/v1/auth/oidc/config

次の手順

グループおよびポリシーを構成する