OIDC認証方法を構成する
HashiCorp VaultでOIDC認証方法を構成するには、CLIコマンドを使用するまたはAPIを使用するのいずれかを行います。API方式には、HCP Vault DedicatedまたはHCP Vaultのいずれかを使用できます。
CLIコマンドを使用する
この構成では、デフォルトのoidcマウントパスが使用されます。カスタムパス(okta-oidcなど)を作成した場合は、Oktaで統合するためにpath変数を更新する必要があります。
- 次のコマンドを実行して、OIDCをデフォルトの認証方法にします:#!/bin/bash vault auth enable oidc
- このコマンドを実行して、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"
- 次のコマンドを実行して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_url、oidc_client_id、およびoidc_client_secretが、前のセクションで構成した変数に設定されます。
- このコマンドを実行して、有効な認証方式を表示します:#!/bin/bash vault auth list
APIを使用する
HCP Vault DedicatedまたはHCP Vaultのいずれかで次の手順を完了します。
HCP Vault Dedicated
- 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
- 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」を参照してください。
- 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
- 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_url、oidc_client_id、およびoidc_client_secretが、前のセクションで構成した変数に設定されます。また、default_roleはvault-role-okta-defaultに設定されます。
- 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
- auth/oidcエンドポイントでOIDC認証方法を有効にするリクエストを送信します:curl --header "X-Vault-Token: $VAULT_TOKEN" \ --request POST \ --data '{"type": "oidc"}' \ $VAULT_ADDR/v1/sys/auth/oidc
- 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
- 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
- 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
- OIDC認証方法を有効にするリクエストを送信します:curl --header "X-Vault-Token: $VAULT_TOKEN" \ --request POST \ --data @oidc_config.json \ $VAULT_ADDR/v1/auth/oidc/config
