forked from GuyBarros/terraform-com-showcase-pipeline
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvault_okta.tf
56 lines (50 loc) · 1.64 KB
/
vault_okta.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# Vault config
resource "vault_jwt_auth_backend" "okta_oidc" {
provider = vault.app
description = "Okta OIDC"
path = var.okta_mount_path
type = "oidc"
oidc_discovery_url = okta_auth_server.vault.issuer
bound_issuer = okta_auth_server.vault.issuer
oidc_client_id = okta_app_oauth.vault.client_id
oidc_client_secret = okta_app_oauth.vault.client_secret
default_role = "okta_admin"
tune {
listing_visibility = "unauth"
default_lease_ttl = var.okta_default_lease_ttl
max_lease_ttl = var.okta_max_lease_ttl
token_type = var.okta_token_type
}
}
resource "vault_jwt_auth_backend_role" "okta_role" {
provider = vault.app
for_each = var.roles
backend = vault_jwt_auth_backend.okta_oidc.path
role_name = each.key
token_policies = each.value.token_policies
allowed_redirect_uris = ["${var.vault_address}/ui/vault/auth/${var.okta_mount_path}/oidc/callback",
# "${var.vault_address}/v1/auth/${var.okta_mount_path}/oidc/callback",
# This is for logging in with the CLI if you want.
"http://localhost:${var.cli_port}/oidc/callback",
]
user_claim = "email"
#user_claim = "sub"
role_type = "oidc"
bound_audiences = [var.okta_auth_audience, okta_app_oauth.vault.client_id]
# bound_audiences = [okta_auth_server.vault.audiences]
oidc_scopes = [
"openid",
"profile",
"email",
]
bound_claims = {
groups = join(",", each.value.bound_groups)
}
verbose_oidc_logging = true
}
# add KV for developers
resource "vault_mount" "developers" {
provider = vault.app
type = "kv"
path = "developers"
}