published on Saturday, Aug 15, 2026 by Pulumi
published on Saturday, Aug 15, 2026 by Pulumi
Preview feature: This feature is currently available as a preview and is possibly incomplete and subject to change. We strongly discourage using preview or beta features with production workflows.
Manages OAuth Resource Server Configuration profiles in Vault Enterprise. These profiles define how Vault validates JWT tokens from OAuth 2.0 resource servers, enabling JWT-based authentication for API requests.
Important This resource is only available in Vault Enterprise and requires Vault 2.0.1 or later.
Example Usage
Enable the Feature
import * as pulumi from "@pulumi/pulumi";
import * as vault from "@pulumi/vault";
const oauth = new vault.ActivationFlags("oauth", {feature: "oauth-resource-server"});
const example = new vault.OauthResourceServerConfigProfile("example", {
profileName: "example-profile",
issuerId: "https://example.com",
useJwks: true,
jwksUri: "https://example.com/.well-known/jwks.json",
}, {
dependsOn: [oauth],
});
import pulumi
import pulumi_vault as vault
oauth = vault.ActivationFlags("oauth", feature="oauth-resource-server")
example = vault.OauthResourceServerConfigProfile("example",
profile_name="example-profile",
issuer_id="https://example.com",
use_jwks=True,
jwks_uri="https://example.com/.well-known/jwks.json",
opts = pulumi.ResourceOptions(depends_on=[oauth]))
package main
import (
"github.com/pulumi/pulumi-vault/sdk/v7/go/vault"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
oauth, err := vault.NewActivationFlags(ctx, "oauth", &vault.ActivationFlagsArgs{
Feature: pulumi.String("oauth-resource-server"),
})
if err != nil {
return err
}
_, err = vault.NewOauthResourceServerConfigProfile(ctx, "example", &vault.OauthResourceServerConfigProfileArgs{
ProfileName: pulumi.String("example-profile"),
IssuerId: pulumi.String("https://example.com"),
UseJwks: pulumi.Bool(true),
JwksUri: pulumi.String("https://example.com/.well-known/jwks.json"),
}, pulumi.DependsOn([]pulumi.Resource{
oauth,
}))
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Vault = Pulumi.Vault;
return await Deployment.RunAsync(() =>
{
var oauth = new Vault.ActivationFlags("oauth", new()
{
Feature = "oauth-resource-server",
});
var example = new Vault.OauthResourceServerConfigProfile("example", new()
{
ProfileName = "example-profile",
IssuerId = "https://example.com",
UseJwks = true,
JwksUri = "https://example.com/.well-known/jwks.json",
}, new CustomResourceOptions
{
DependsOn =
{
oauth,
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.vault.ActivationFlags;
import com.pulumi.vault.ActivationFlagsArgs;
import com.pulumi.vault.OauthResourceServerConfigProfile;
import com.pulumi.vault.OauthResourceServerConfigProfileArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var oauth = new ActivationFlags("oauth", ActivationFlagsArgs.builder()
.feature("oauth-resource-server")
.build());
var example = new OauthResourceServerConfigProfile("example", OauthResourceServerConfigProfileArgs.builder()
.profileName("example-profile")
.issuerId("https://example.com")
.useJwks(true)
.jwksUri("https://example.com/.well-known/jwks.json")
.build(), CustomResourceOptions.builder()
.dependsOn(oauth)
.build());
}
}
resources:
oauth:
type: vault:ActivationFlags
properties:
feature: oauth-resource-server
example:
type: vault:OauthResourceServerConfigProfile
properties:
profileName: example-profile
issuerId: https://example.com
useJwks: true
jwksUri: https://example.com/.well-known/jwks.json
options:
dependsOn:
- ${oauth}
pulumi {
required_providers {
vault = {
source = "pulumi/vault"
}
}
}
resource "vault_activationflags" "oauth" {
feature = "oauth-resource-server"
}
resource "vault_oauthresourceserverconfigprofile" "example" {
depends_on = [vault_activationflags.oauth]
profile_name = "example-profile"
issuer_id = "https://example.com"
use_jwks = true
jwks_uri = "https://example.com/.well-known/jwks.json"
}
JWKS-Based Profile
import * as pulumi from "@pulumi/pulumi";
import * as vault from "@pulumi/vault";
const example = new vault.OauthResourceServerConfigProfile("example", {
profileName: "my-oauth-profile",
issuerId: "https://auth.example.com",
useJwks: true,
jwksUri: "https://auth.example.com/.well-known/jwks.json",
audiences: [
"api.example.com",
"vault.example.com",
],
});
import pulumi
import pulumi_vault as vault
example = vault.OauthResourceServerConfigProfile("example",
profile_name="my-oauth-profile",
issuer_id="https://auth.example.com",
use_jwks=True,
jwks_uri="https://auth.example.com/.well-known/jwks.json",
audiences=[
"api.example.com",
"vault.example.com",
])
package main
import (
"github.com/pulumi/pulumi-vault/sdk/v7/go/vault"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := vault.NewOauthResourceServerConfigProfile(ctx, "example", &vault.OauthResourceServerConfigProfileArgs{
ProfileName: pulumi.String("my-oauth-profile"),
IssuerId: pulumi.String("https://auth.example.com"),
UseJwks: pulumi.Bool(true),
JwksUri: pulumi.String("https://auth.example.com/.well-known/jwks.json"),
Audiences: pulumi.StringArray{
pulumi.String("api.example.com"),
pulumi.String("vault.example.com"),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Vault = Pulumi.Vault;
return await Deployment.RunAsync(() =>
{
var example = new Vault.OauthResourceServerConfigProfile("example", new()
{
ProfileName = "my-oauth-profile",
IssuerId = "https://auth.example.com",
UseJwks = true,
JwksUri = "https://auth.example.com/.well-known/jwks.json",
Audiences = new[]
{
"api.example.com",
"vault.example.com",
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.vault.OauthResourceServerConfigProfile;
import com.pulumi.vault.OauthResourceServerConfigProfileArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new OauthResourceServerConfigProfile("example", OauthResourceServerConfigProfileArgs.builder()
.profileName("my-oauth-profile")
.issuerId("https://auth.example.com")
.useJwks(true)
.jwksUri("https://auth.example.com/.well-known/jwks.json")
.audiences(
"api.example.com",
"vault.example.com")
.build());
}
}
resources:
example:
type: vault:OauthResourceServerConfigProfile
properties:
profileName: my-oauth-profile
issuerId: https://auth.example.com
useJwks: true
jwksUri: https://auth.example.com/.well-known/jwks.json
audiences:
- api.example.com
- vault.example.com
pulumi {
required_providers {
vault = {
source = "pulumi/vault"
}
}
}
resource "vault_oauthresourceserverconfigprofile" "example" {
profile_name = "my-oauth-profile"
issuer_id = "https://auth.example.com"
use_jwks = true
jwks_uri = "https://auth.example.com/.well-known/jwks.json"
audiences = ["api.example.com", "vault.example.com"]
}
PEM-Based Profile with Static Keys
import * as pulumi from "@pulumi/pulumi";
import * as vault from "@pulumi/vault";
const pemExample = new vault.OauthResourceServerConfigProfile("pem_example", {
profileName: "my-pem-profile",
issuerId: "https://auth.example.com",
useJwks: false,
publicKeys: [
{
keyId: "key-1",
pem: `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1SU1LfVLPHCozMxH2Mo
4lgOEePzNm0tRgeLezV6ffAt0gunVTLw7onLRnrq0/IzW7yWR7QkrmBL7jTKEn5u
...
-----END PUBLIC KEY-----
`,
},
{
keyId: "key-2",
pem: `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvXxG8VqPvXxG8VqPvXxG
...
-----END PUBLIC KEY-----
`,
},
],
});
import pulumi
import pulumi_vault as vault
pem_example = vault.OauthResourceServerConfigProfile("pem_example",
profile_name="my-pem-profile",
issuer_id="https://auth.example.com",
use_jwks=False,
public_keys=[
{
"key_id": "key-1",
"pem": """-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1SU1LfVLPHCozMxH2Mo
4lgOEePzNm0tRgeLezV6ffAt0gunVTLw7onLRnrq0/IzW7yWR7QkrmBL7jTKEn5u
...
-----END PUBLIC KEY-----
""",
},
{
"key_id": "key-2",
"pem": """-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvXxG8VqPvXxG8VqPvXxG
...
-----END PUBLIC KEY-----
""",
},
])
package main
import (
"github.com/pulumi/pulumi-vault/sdk/v7/go/vault"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := vault.NewOauthResourceServerConfigProfile(ctx, "pem_example", &vault.OauthResourceServerConfigProfileArgs{
ProfileName: pulumi.String("my-pem-profile"),
IssuerId: pulumi.String("https://auth.example.com"),
UseJwks: pulumi.Bool(false),
PublicKeys: vault.OauthResourceServerConfigProfilePublicKeyArray{
&vault.OauthResourceServerConfigProfilePublicKeyArgs{
KeyId: pulumi.String("key-1"),
Pem: pulumi.String(`-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1SU1LfVLPHCozMxH2Mo
4lgOEePzNm0tRgeLezV6ffAt0gunVTLw7onLRnrq0/IzW7yWR7QkrmBL7jTKEn5u
...
-----END PUBLIC KEY-----
`),
},
&vault.OauthResourceServerConfigProfilePublicKeyArgs{
KeyId: pulumi.String("key-2"),
Pem: pulumi.String("-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvXxG8VqPvXxG8VqPvXxG\n...\n-----END PUBLIC KEY-----\n"),
},
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Vault = Pulumi.Vault;
return await Deployment.RunAsync(() =>
{
var pemExample = new Vault.OauthResourceServerConfigProfile("pem_example", new()
{
ProfileName = "my-pem-profile",
IssuerId = "https://auth.example.com",
UseJwks = false,
PublicKeys = new[]
{
new Vault.Inputs.OauthResourceServerConfigProfilePublicKeyArgs
{
KeyId = "key-1",
Pem = @"-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1SU1LfVLPHCozMxH2Mo
4lgOEePzNm0tRgeLezV6ffAt0gunVTLw7onLRnrq0/IzW7yWR7QkrmBL7jTKEn5u
...
-----END PUBLIC KEY-----
",
},
new Vault.Inputs.OauthResourceServerConfigProfilePublicKeyArgs
{
KeyId = "key-2",
Pem = @"-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvXxG8VqPvXxG8VqPvXxG
...
-----END PUBLIC KEY-----
",
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.vault.OauthResourceServerConfigProfile;
import com.pulumi.vault.OauthResourceServerConfigProfileArgs;
import com.pulumi.vault.inputs.OauthResourceServerConfigProfilePublicKeyArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var pemExample = new OauthResourceServerConfigProfile("pemExample", OauthResourceServerConfigProfileArgs.builder()
.profileName("my-pem-profile")
.issuerId("https://auth.example.com")
.useJwks(false)
.publicKeys(
OauthResourceServerConfigProfilePublicKeyArgs.builder()
.keyId("key-1")
.pem("""
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1SU1LfVLPHCozMxH2Mo
4lgOEePzNm0tRgeLezV6ffAt0gunVTLw7onLRnrq0/IzW7yWR7QkrmBL7jTKEn5u
...
-----END PUBLIC KEY-----
""")
.build(),
OauthResourceServerConfigProfilePublicKeyArgs.builder()
.keyId("key-2")
.pem("""
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvXxG8VqPvXxG8VqPvXxG
...
-----END PUBLIC KEY-----
""")
.build())
.build());
}
}
resources:
pemExample:
type: vault:OauthResourceServerConfigProfile
name: pem_example
properties:
profileName: my-pem-profile
issuerId: https://auth.example.com
useJwks: false
publicKeys:
- keyId: key-1
pem: |
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1SU1LfVLPHCozMxH2Mo
4lgOEePzNm0tRgeLezV6ffAt0gunVTLw7onLRnrq0/IzW7yWR7QkrmBL7jTKEn5u
...
-----END PUBLIC KEY-----
- keyId: key-2
pem: |
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvXxG8VqPvXxG8VqPvXxG
...
-----END PUBLIC KEY-----
pulumi {
required_providers {
vault = {
source = "pulumi/vault"
}
}
}
resource "vault_oauthresourceserverconfigprofile" "pem_example" {
profile_name = "my-pem-profile"
issuer_id = "https://auth.example.com"
use_jwks = false
public_keys {
key_id = "key-1"
pem = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1SU1LfVLPHCozMxH2Mo\n4lgOEePzNm0tRgeLezV6ffAt0gunVTLw7onLRnrq0/IzW7yWR7QkrmBL7jTKEn5u\n...\n-----END PUBLIC KEY-----\n"
}
public_keys {
key_id = "key-2"
pem = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvXxG8VqPvXxG8VqPvXxG\n...\n-----END PUBLIC KEY-----\n"
}
}
Profile with RAR (Rich Authorization Requests) Support
import * as pulumi from "@pulumi/pulumi";
import * as vault from "@pulumi/vault";
const rarOptional = new vault.OauthResourceServerConfigProfile("rar_optional", {
profileName: "rar-optional-profile",
issuerId: "https://auth.example.com",
useJwks: true,
jwksUri: "https://auth.example.com/.well-known/jwks.json",
optionalAuthorizationDetails: true,
});
const rarMandatory = new vault.OauthResourceServerConfigProfile("rar_mandatory", {
profileName: "rar-mandatory-profile",
issuerId: "https://auth.example.com",
useJwks: true,
jwksUri: "https://auth.example.com/.well-known/jwks.json",
optionalAuthorizationDetails: false,
});
import pulumi
import pulumi_vault as vault
rar_optional = vault.OauthResourceServerConfigProfile("rar_optional",
profile_name="rar-optional-profile",
issuer_id="https://auth.example.com",
use_jwks=True,
jwks_uri="https://auth.example.com/.well-known/jwks.json",
optional_authorization_details=True)
rar_mandatory = vault.OauthResourceServerConfigProfile("rar_mandatory",
profile_name="rar-mandatory-profile",
issuer_id="https://auth.example.com",
use_jwks=True,
jwks_uri="https://auth.example.com/.well-known/jwks.json",
optional_authorization_details=False)
package main
import (
"github.com/pulumi/pulumi-vault/sdk/v7/go/vault"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := vault.NewOauthResourceServerConfigProfile(ctx, "rar_optional", &vault.OauthResourceServerConfigProfileArgs{
ProfileName: pulumi.String("rar-optional-profile"),
IssuerId: pulumi.String("https://auth.example.com"),
UseJwks: pulumi.Bool(true),
JwksUri: pulumi.String("https://auth.example.com/.well-known/jwks.json"),
OptionalAuthorizationDetails: pulumi.Bool(true),
})
if err != nil {
return err
}
_, err = vault.NewOauthResourceServerConfigProfile(ctx, "rar_mandatory", &vault.OauthResourceServerConfigProfileArgs{
ProfileName: pulumi.String("rar-mandatory-profile"),
IssuerId: pulumi.String("https://auth.example.com"),
UseJwks: pulumi.Bool(true),
JwksUri: pulumi.String("https://auth.example.com/.well-known/jwks.json"),
OptionalAuthorizationDetails: pulumi.Bool(false),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Vault = Pulumi.Vault;
return await Deployment.RunAsync(() =>
{
var rarOptional = new Vault.OauthResourceServerConfigProfile("rar_optional", new()
{
ProfileName = "rar-optional-profile",
IssuerId = "https://auth.example.com",
UseJwks = true,
JwksUri = "https://auth.example.com/.well-known/jwks.json",
OptionalAuthorizationDetails = true,
});
var rarMandatory = new Vault.OauthResourceServerConfigProfile("rar_mandatory", new()
{
ProfileName = "rar-mandatory-profile",
IssuerId = "https://auth.example.com",
UseJwks = true,
JwksUri = "https://auth.example.com/.well-known/jwks.json",
OptionalAuthorizationDetails = false,
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.vault.OauthResourceServerConfigProfile;
import com.pulumi.vault.OauthResourceServerConfigProfileArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var rarOptional = new OauthResourceServerConfigProfile("rarOptional", OauthResourceServerConfigProfileArgs.builder()
.profileName("rar-optional-profile")
.issuerId("https://auth.example.com")
.useJwks(true)
.jwksUri("https://auth.example.com/.well-known/jwks.json")
.optionalAuthorizationDetails(true)
.build());
var rarMandatory = new OauthResourceServerConfigProfile("rarMandatory", OauthResourceServerConfigProfileArgs.builder()
.profileName("rar-mandatory-profile")
.issuerId("https://auth.example.com")
.useJwks(true)
.jwksUri("https://auth.example.com/.well-known/jwks.json")
.optionalAuthorizationDetails(false)
.build());
}
}
resources:
rarOptional:
type: vault:OauthResourceServerConfigProfile
name: rar_optional
properties:
profileName: rar-optional-profile
issuerId: https://auth.example.com
useJwks: true
jwksUri: https://auth.example.com/.well-known/jwks.json
optionalAuthorizationDetails: true
rarMandatory:
type: vault:OauthResourceServerConfigProfile
name: rar_mandatory
properties:
profileName: rar-mandatory-profile
issuerId: https://auth.example.com
useJwks: true
jwksUri: https://auth.example.com/.well-known/jwks.json
optionalAuthorizationDetails: false
pulumi {
required_providers {
vault = {
source = "pulumi/vault"
}
}
}
resource "vault_oauthresourceserverconfigprofile" "rar_optional" {
profile_name = "rar-optional-profile"
issuer_id = "https://auth.example.com"
use_jwks = true
jwks_uri = "https://auth.example.com/.well-known/jwks.json"
optional_authorization_details = true
}
resource "vault_oauthresourceserverconfigprofile" "rar_mandatory" {
profile_name = "rar-mandatory-profile"
issuer_id = "https://auth.example.com"
use_jwks = true
jwks_uri = "https://auth.example.com/.well-known/jwks.json"
optional_authorization_details = false
}
Profile in a Namespace
import * as pulumi from "@pulumi/pulumi";
import * as vault from "@pulumi/vault";
const app = new vault.Namespace("app", {path: "application"});
const namespaced = new vault.OauthResourceServerConfigProfile("namespaced", {
namespace: app.path,
profileName: "app-oauth-profile",
issuerId: "https://auth.example.com",
useJwks: true,
jwksUri: "https://auth.example.com/.well-known/jwks.json",
});
import pulumi
import pulumi_vault as vault
app = vault.Namespace("app", path="application")
namespaced = vault.OauthResourceServerConfigProfile("namespaced",
namespace=app.path,
profile_name="app-oauth-profile",
issuer_id="https://auth.example.com",
use_jwks=True,
jwks_uri="https://auth.example.com/.well-known/jwks.json")
package main
import (
"github.com/pulumi/pulumi-vault/sdk/v7/go/vault"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
app, err := vault.NewNamespace(ctx, "app", &vault.NamespaceArgs{
Path: pulumi.String("application"),
})
if err != nil {
return err
}
_, err = vault.NewOauthResourceServerConfigProfile(ctx, "namespaced", &vault.OauthResourceServerConfigProfileArgs{
Namespace: app.Path,
ProfileName: pulumi.String("app-oauth-profile"),
IssuerId: pulumi.String("https://auth.example.com"),
UseJwks: pulumi.Bool(true),
JwksUri: pulumi.String("https://auth.example.com/.well-known/jwks.json"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Vault = Pulumi.Vault;
return await Deployment.RunAsync(() =>
{
var app = new Vault.Namespace("app", new()
{
Path = "application",
});
var namespaced = new Vault.OauthResourceServerConfigProfile("namespaced", new()
{
Namespace = app.Path,
ProfileName = "app-oauth-profile",
IssuerId = "https://auth.example.com",
UseJwks = true,
JwksUri = "https://auth.example.com/.well-known/jwks.json",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.vault.Namespace;
import com.pulumi.vault.NamespaceArgs;
import com.pulumi.vault.OauthResourceServerConfigProfile;
import com.pulumi.vault.OauthResourceServerConfigProfileArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var app = new Namespace("app", NamespaceArgs.builder()
.path("application")
.build());
var namespaced = new OauthResourceServerConfigProfile("namespaced", OauthResourceServerConfigProfileArgs.builder()
.namespace(app.path())
.profileName("app-oauth-profile")
.issuerId("https://auth.example.com")
.useJwks(true)
.jwksUri("https://auth.example.com/.well-known/jwks.json")
.build());
}
}
resources:
app:
type: vault:Namespace
properties:
path: application
namespaced:
type: vault:OauthResourceServerConfigProfile
properties:
namespace: ${app.path}
profileName: app-oauth-profile
issuerId: https://auth.example.com
useJwks: true
jwksUri: https://auth.example.com/.well-known/jwks.json
pulumi {
required_providers {
vault = {
source = "pulumi/vault"
}
}
}
resource "vault_namespace" "app" {
path = "application"
}
resource "vault_oauthresourceserverconfigprofile" "namespaced" {
namespace = vault_namespace.app.path
profile_name = "app-oauth-profile"
issuer_id = "https://auth.example.com"
use_jwks = true
jwks_uri = "https://auth.example.com/.well-known/jwks.json"
}
Disabled Profile
import * as pulumi from "@pulumi/pulumi";
import * as vault from "@pulumi/vault";
const disabled = new vault.OauthResourceServerConfigProfile("disabled", {
profileName: "disabled-profile",
issuerId: "https://auth.example.com",
useJwks: true,
jwksUri: "https://auth.example.com/.well-known/jwks.json",
enabled: false,
});
import pulumi
import pulumi_vault as vault
disabled = vault.OauthResourceServerConfigProfile("disabled",
profile_name="disabled-profile",
issuer_id="https://auth.example.com",
use_jwks=True,
jwks_uri="https://auth.example.com/.well-known/jwks.json",
enabled=False)
package main
import (
"github.com/pulumi/pulumi-vault/sdk/v7/go/vault"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := vault.NewOauthResourceServerConfigProfile(ctx, "disabled", &vault.OauthResourceServerConfigProfileArgs{
ProfileName: pulumi.String("disabled-profile"),
IssuerId: pulumi.String("https://auth.example.com"),
UseJwks: pulumi.Bool(true),
JwksUri: pulumi.String("https://auth.example.com/.well-known/jwks.json"),
Enabled: pulumi.Bool(false),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Vault = Pulumi.Vault;
return await Deployment.RunAsync(() =>
{
var disabled = new Vault.OauthResourceServerConfigProfile("disabled", new()
{
ProfileName = "disabled-profile",
IssuerId = "https://auth.example.com",
UseJwks = true,
JwksUri = "https://auth.example.com/.well-known/jwks.json",
Enabled = false,
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.vault.OauthResourceServerConfigProfile;
import com.pulumi.vault.OauthResourceServerConfigProfileArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var disabled = new OauthResourceServerConfigProfile("disabled", OauthResourceServerConfigProfileArgs.builder()
.profileName("disabled-profile")
.issuerId("https://auth.example.com")
.useJwks(true)
.jwksUri("https://auth.example.com/.well-known/jwks.json")
.enabled(false)
.build());
}
}
resources:
disabled:
type: vault:OauthResourceServerConfigProfile
properties:
profileName: disabled-profile
issuerId: https://auth.example.com
useJwks: true
jwksUri: https://auth.example.com/.well-known/jwks.json
enabled: false
pulumi {
required_providers {
vault = {
source = "pulumi/vault"
}
}
}
resource "vault_oauthresourceserverconfigprofile" "disabled" {
profile_name = "disabled-profile"
issuer_id = "https://auth.example.com"
use_jwks = true
jwks_uri = "https://auth.example.com/.well-known/jwks.json"
enabled = false
}
Notes
Mutual Exclusivity: The
useJwksflag determines which configuration mode is active:- When
use_jwks=true: You must providejwksUriand cannot providepublicKeys - When
use_jwks=false: You must providepublicKeysand cannot providejwksUri
- When
Issuer Uniqueness: Each issuer ID must be unique within a namespace. You cannot have multiple profiles with the same issuer ID in the same namespace.
Profile Name Immutability: The
profileNameandissuerIdcannot be changed after creation. Changing these fields will force a new resource to be created.Key ID Uniqueness: Within a profile, all key IDs must be unique. This applies to both JWKS keys and static PEM keys.
JWKS Caching: When using JWKS, Vault caches the public keys and refreshes them periodically. Unknown key IDs trigger a rate-limited refresh to prevent DoS attacks.
Algorithm Validation: The JWT’s signing algorithm must be in the
supportedAlgorithmslist. This provides defense against algorithm confusion attacks.Audience Validation: If
audiencesis specified, the JWT must contain at least one matching audience in itsaudclaim. If not specified, audience validation is skipped.Clock Skew: Use
clockSkewLeewayto handle clock differences between systems. A value of 30-60 seconds is typically sufficient for most environments.Enterprise Feature: OAuth Resource Server Configuration is only available in Vault Enterprise. Attempting to use this resource with Vault Community Edition will result in an error.
Version Requirement: This resource requires Vault 2.0.1 or later.
Security Considerations
HTTPS for JWKS: Always use HTTPS for
jwksUrito prevent man-in-the-middle attacks.CA Certificate Validation: When using custom CA certificates, ensure they are properly validated and from trusted sources.
Key Rotation: When rotating keys, ensure the new keys are published to the JWKS endpoint before revoking old keys to prevent authentication failures.
Disabled Profiles: Disabled profiles are completely ignored during JWT validation. Use this feature carefully in production environments.
Algorithm Selection: Limit
supportedAlgorithmsto only those algorithms your authorization server uses. This reduces the attack surface.
Create OauthResourceServerConfigProfile Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new OauthResourceServerConfigProfile(name: string, args: OauthResourceServerConfigProfileArgs, opts?: CustomResourceOptions);@overload
def OauthResourceServerConfigProfile(resource_name: str,
args: OauthResourceServerConfigProfileArgs,
opts: Optional[ResourceOptions] = None)
@overload
def OauthResourceServerConfigProfile(resource_name: str,
opts: Optional[ResourceOptions] = None,
issuer_id: Optional[str] = None,
profile_name: Optional[str] = None,
jwt_type: Optional[str] = None,
enabled: Optional[bool] = None,
jwks_ca_pem: Optional[str] = None,
jwks_uri: Optional[str] = None,
audiences: Optional[Sequence[str]] = None,
namespace: Optional[str] = None,
no_default_policy: Optional[bool] = None,
optional_authorization_details: Optional[bool] = None,
clock_skew_leeway: Optional[int] = None,
public_keys: Optional[Sequence[OauthResourceServerConfigProfilePublicKeyArgs]] = None,
supported_algorithms: Optional[Sequence[str]] = None,
use_jwks: Optional[bool] = None,
user_claim: Optional[str] = None)func NewOauthResourceServerConfigProfile(ctx *Context, name string, args OauthResourceServerConfigProfileArgs, opts ...ResourceOption) (*OauthResourceServerConfigProfile, error)public OauthResourceServerConfigProfile(string name, OauthResourceServerConfigProfileArgs args, CustomResourceOptions? opts = null)
public OauthResourceServerConfigProfile(String name, OauthResourceServerConfigProfileArgs args)
public OauthResourceServerConfigProfile(String name, OauthResourceServerConfigProfileArgs args, CustomResourceOptions options)
type: vault:OauthResourceServerConfigProfile
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "vault_oauth_resource_server_config_profile" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args OauthResourceServerConfigProfileArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args OauthResourceServerConfigProfileArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args OauthResourceServerConfigProfileArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args OauthResourceServerConfigProfileArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args OauthResourceServerConfigProfileArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var oauthResourceServerConfigProfileResource = new Vault.OauthResourceServerConfigProfile("oauthResourceServerConfigProfileResource", new()
{
IssuerId = "string",
ProfileName = "string",
JwtType = "string",
Enabled = false,
JwksCaPem = "string",
JwksUri = "string",
Audiences = new[]
{
"string",
},
Namespace = "string",
NoDefaultPolicy = false,
OptionalAuthorizationDetails = false,
ClockSkewLeeway = 0,
PublicKeys = new[]
{
new Vault.Inputs.OauthResourceServerConfigProfilePublicKeyArgs
{
KeyId = "string",
Pem = "string",
},
},
SupportedAlgorithms = new[]
{
"string",
},
UseJwks = false,
UserClaim = "string",
});
example, err := vault.NewOauthResourceServerConfigProfile(ctx, "oauthResourceServerConfigProfileResource", &vault.OauthResourceServerConfigProfileArgs{
IssuerId: pulumi.String("string"),
ProfileName: pulumi.String("string"),
JwtType: pulumi.String("string"),
Enabled: pulumi.Bool(false),
JwksCaPem: pulumi.String("string"),
JwksUri: pulumi.String("string"),
Audiences: pulumi.StringArray{
pulumi.String("string"),
},
Namespace: pulumi.String("string"),
NoDefaultPolicy: pulumi.Bool(false),
OptionalAuthorizationDetails: pulumi.Bool(false),
ClockSkewLeeway: pulumi.Int(0),
PublicKeys: vault.OauthResourceServerConfigProfilePublicKeyArray{
&vault.OauthResourceServerConfigProfilePublicKeyArgs{
KeyId: pulumi.String("string"),
Pem: pulumi.String("string"),
},
},
SupportedAlgorithms: pulumi.StringArray{
pulumi.String("string"),
},
UseJwks: pulumi.Bool(false),
UserClaim: pulumi.String("string"),
})
resource "vault_oauth_resource_server_config_profile" "oauthResourceServerConfigProfileResource" {
lifecycle {
create_before_destroy = true
}
issuer_id = "string"
profile_name = "string"
jwt_type = "string"
enabled = false
jwks_ca_pem = "string"
jwks_uri = "string"
audiences = ["string"]
namespace = "string"
no_default_policy = false
optional_authorization_details = false
clock_skew_leeway = 0
public_keys {
key_id = "string"
pem = "string"
}
supported_algorithms = ["string"]
use_jwks = false
user_claim = "string"
}
var oauthResourceServerConfigProfileResource = new OauthResourceServerConfigProfile("oauthResourceServerConfigProfileResource", OauthResourceServerConfigProfileArgs.builder()
.issuerId("string")
.profileName("string")
.jwtType("string")
.enabled(false)
.jwksCaPem("string")
.jwksUri("string")
.audiences("string")
.namespace("string")
.noDefaultPolicy(false)
.optionalAuthorizationDetails(false)
.clockSkewLeeway(0)
.publicKeys(OauthResourceServerConfigProfilePublicKeyArgs.builder()
.keyId("string")
.pem("string")
.build())
.supportedAlgorithms("string")
.useJwks(false)
.userClaim("string")
.build());
oauth_resource_server_config_profile_resource = vault.OauthResourceServerConfigProfile("oauthResourceServerConfigProfileResource",
issuer_id="string",
profile_name="string",
jwt_type="string",
enabled=False,
jwks_ca_pem="string",
jwks_uri="string",
audiences=["string"],
namespace="string",
no_default_policy=False,
optional_authorization_details=False,
clock_skew_leeway=0,
public_keys=[{
"key_id": "string",
"pem": "string",
}],
supported_algorithms=["string"],
use_jwks=False,
user_claim="string")
const oauthResourceServerConfigProfileResource = new vault.OauthResourceServerConfigProfile("oauthResourceServerConfigProfileResource", {
issuerId: "string",
profileName: "string",
jwtType: "string",
enabled: false,
jwksCaPem: "string",
jwksUri: "string",
audiences: ["string"],
namespace: "string",
noDefaultPolicy: false,
optionalAuthorizationDetails: false,
clockSkewLeeway: 0,
publicKeys: [{
keyId: "string",
pem: "string",
}],
supportedAlgorithms: ["string"],
useJwks: false,
userClaim: "string",
});
type: vault:OauthResourceServerConfigProfile
properties:
audiences:
- string
clockSkewLeeway: 0
enabled: false
issuerId: string
jwksCaPem: string
jwksUri: string
jwtType: string
namespace: string
noDefaultPolicy: false
optionalAuthorizationDetails: false
profileName: string
publicKeys:
- keyId: string
pem: string
supportedAlgorithms:
- string
useJwks: false
userClaim: string
OauthResourceServerConfigProfile Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The OauthResourceServerConfigProfile resource accepts the following input properties:
- Issuer
Id string - The issuer ID (iss claim) to validate against in incoming JWTs. This should match the issuer claim in the JWT tokens. Changing this will force a new resource to be created.
- Profile
Name string - The name of the OAuth Resource Server Configuration profile. Must be unique within the namespace. Changing this will force a new resource to be created.
- Audiences List<string>
- List of allowed audiences (aud claim) to validate in JWTs. If specified, the JWT must contain at least one of these audiences in its aud claim.
- Clock
Skew intLeeway - Leeway for clock skew in seconds when validating time-based claims (exp, iat, nbf). Defaults to
0. Use this to account for clock differences between systems. - Enabled bool
- Whether this profile is enabled for JWT validation. Disabled profiles are ignored during JWT authentication. Defaults to
true. - Jwks
Ca stringPem - CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
- Jwks
Uri string - The JWKS URI to fetch public keys from. Required when
use_jwks=true. This should be the URL where the authorization server publishes its public keys in JWKS format. - Jwt
Type string - The JWT type:
accessTokenortransactionToken. Defaults toaccessToken. - Namespace string
- The namespace to provision the resource in.
The value should not contain leading or trailing forward slashes.
The
namespaceis always relative to the provider's configured namespace. Available only for Vault Enterprise. - No
Default boolPolicy - If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to
false. - bool
- When
false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set totrue, authorizationDetails in the JWT token are optional. Defaults tofalse. Requires Vault 2.0.3 or later. - Public
Keys List<OauthResource Server Config Profile Public Key> - List of static public keys with
keyIdandpemfields. Required whenuse_jwks=false. Each public key must have: - Supported
Algorithms List<string> - List of supported signing algorithms (e.g., RS256, ES256). Defaults to all supported algorithms:
["RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512"]. Valid values are:RS256,RS384,RS512- RSA with SHA-256/384/512ES256,ES384,ES512- ECDSA with SHA-256/384/512PS256,PS384,PS512- RSA-PSS with SHA-256/384/512
- Use
Jwks bool - If true, use JWKS URI for key validation; if false, use static public keys. Defaults to
true. When set to true,jwksUriis required. When set to false,publicKeysis required. - User
Claim string - The claim to use as the user identifier. Defaults to
sub. This determines which JWT claim is used to identify the user.
- Issuer
Id string - The issuer ID (iss claim) to validate against in incoming JWTs. This should match the issuer claim in the JWT tokens. Changing this will force a new resource to be created.
- Profile
Name string - The name of the OAuth Resource Server Configuration profile. Must be unique within the namespace. Changing this will force a new resource to be created.
- Audiences []string
- List of allowed audiences (aud claim) to validate in JWTs. If specified, the JWT must contain at least one of these audiences in its aud claim.
- Clock
Skew intLeeway - Leeway for clock skew in seconds when validating time-based claims (exp, iat, nbf). Defaults to
0. Use this to account for clock differences between systems. - Enabled bool
- Whether this profile is enabled for JWT validation. Disabled profiles are ignored during JWT authentication. Defaults to
true. - Jwks
Ca stringPem - CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
- Jwks
Uri string - The JWKS URI to fetch public keys from. Required when
use_jwks=true. This should be the URL where the authorization server publishes its public keys in JWKS format. - Jwt
Type string - The JWT type:
accessTokenortransactionToken. Defaults toaccessToken. - Namespace string
- The namespace to provision the resource in.
The value should not contain leading or trailing forward slashes.
The
namespaceis always relative to the provider's configured namespace. Available only for Vault Enterprise. - No
Default boolPolicy - If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to
false. - bool
- When
false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set totrue, authorizationDetails in the JWT token are optional. Defaults tofalse. Requires Vault 2.0.3 or later. - Public
Keys []OauthResource Server Config Profile Public Key Args - List of static public keys with
keyIdandpemfields. Required whenuse_jwks=false. Each public key must have: - Supported
Algorithms []string - List of supported signing algorithms (e.g., RS256, ES256). Defaults to all supported algorithms:
["RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512"]. Valid values are:RS256,RS384,RS512- RSA with SHA-256/384/512ES256,ES384,ES512- ECDSA with SHA-256/384/512PS256,PS384,PS512- RSA-PSS with SHA-256/384/512
- Use
Jwks bool - If true, use JWKS URI for key validation; if false, use static public keys. Defaults to
true. When set to true,jwksUriis required. When set to false,publicKeysis required. - User
Claim string - The claim to use as the user identifier. Defaults to
sub. This determines which JWT claim is used to identify the user.
- issuer_
id string - The issuer ID (iss claim) to validate against in incoming JWTs. This should match the issuer claim in the JWT tokens. Changing this will force a new resource to be created.
- profile_
name string - The name of the OAuth Resource Server Configuration profile. Must be unique within the namespace. Changing this will force a new resource to be created.
- audiences list(string)
- List of allowed audiences (aud claim) to validate in JWTs. If specified, the JWT must contain at least one of these audiences in its aud claim.
- clock_
skew_ numberleeway - Leeway for clock skew in seconds when validating time-based claims (exp, iat, nbf). Defaults to
0. Use this to account for clock differences between systems. - enabled bool
- Whether this profile is enabled for JWT validation. Disabled profiles are ignored during JWT authentication. Defaults to
true. - jwks_
ca_ stringpem - CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
- jwks_
uri string - The JWKS URI to fetch public keys from. Required when
use_jwks=true. This should be the URL where the authorization server publishes its public keys in JWKS format. - jwt_
type string - The JWT type:
accessTokenortransactionToken. Defaults toaccessToken. - namespace string
- The namespace to provision the resource in.
The value should not contain leading or trailing forward slashes.
The
namespaceis always relative to the provider's configured namespace. Available only for Vault Enterprise. - no_
default_ boolpolicy - If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to
false. - bool
- When
false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set totrue, authorizationDetails in the JWT token are optional. Defaults tofalse. Requires Vault 2.0.3 or later. - public_
keys list(object) - List of static public keys with
keyIdandpemfields. Required whenuse_jwks=false. Each public key must have: - supported_
algorithms list(string) - List of supported signing algorithms (e.g., RS256, ES256). Defaults to all supported algorithms:
["RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512"]. Valid values are:RS256,RS384,RS512- RSA with SHA-256/384/512ES256,ES384,ES512- ECDSA with SHA-256/384/512PS256,PS384,PS512- RSA-PSS with SHA-256/384/512
- use_
jwks bool - If true, use JWKS URI for key validation; if false, use static public keys. Defaults to
true. When set to true,jwksUriis required. When set to false,publicKeysis required. - user_
claim string - The claim to use as the user identifier. Defaults to
sub. This determines which JWT claim is used to identify the user.
- issuer
Id String - The issuer ID (iss claim) to validate against in incoming JWTs. This should match the issuer claim in the JWT tokens. Changing this will force a new resource to be created.
- profile
Name String - The name of the OAuth Resource Server Configuration profile. Must be unique within the namespace. Changing this will force a new resource to be created.
- audiences List<String>
- List of allowed audiences (aud claim) to validate in JWTs. If specified, the JWT must contain at least one of these audiences in its aud claim.
- clock
Skew IntegerLeeway - Leeway for clock skew in seconds when validating time-based claims (exp, iat, nbf). Defaults to
0. Use this to account for clock differences between systems. - enabled Boolean
- Whether this profile is enabled for JWT validation. Disabled profiles are ignored during JWT authentication. Defaults to
true. - jwks
Ca StringPem - CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
- jwks
Uri String - The JWKS URI to fetch public keys from. Required when
use_jwks=true. This should be the URL where the authorization server publishes its public keys in JWKS format. - jwt
Type String - The JWT type:
accessTokenortransactionToken. Defaults toaccessToken. - namespace String
- The namespace to provision the resource in.
The value should not contain leading or trailing forward slashes.
The
namespaceis always relative to the provider's configured namespace. Available only for Vault Enterprise. - no
Default BooleanPolicy - If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to
false. - Boolean
- When
false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set totrue, authorizationDetails in the JWT token are optional. Defaults tofalse. Requires Vault 2.0.3 or later. - public
Keys List<OauthResource Server Config Profile Public Key> - List of static public keys with
keyIdandpemfields. Required whenuse_jwks=false. Each public key must have: - supported
Algorithms List<String> - List of supported signing algorithms (e.g., RS256, ES256). Defaults to all supported algorithms:
["RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512"]. Valid values are:RS256,RS384,RS512- RSA with SHA-256/384/512ES256,ES384,ES512- ECDSA with SHA-256/384/512PS256,PS384,PS512- RSA-PSS with SHA-256/384/512
- use
Jwks Boolean - If true, use JWKS URI for key validation; if false, use static public keys. Defaults to
true. When set to true,jwksUriis required. When set to false,publicKeysis required. - user
Claim String - The claim to use as the user identifier. Defaults to
sub. This determines which JWT claim is used to identify the user.
- issuer
Id string - The issuer ID (iss claim) to validate against in incoming JWTs. This should match the issuer claim in the JWT tokens. Changing this will force a new resource to be created.
- profile
Name string - The name of the OAuth Resource Server Configuration profile. Must be unique within the namespace. Changing this will force a new resource to be created.
- audiences string[]
- List of allowed audiences (aud claim) to validate in JWTs. If specified, the JWT must contain at least one of these audiences in its aud claim.
- clock
Skew numberLeeway - Leeway for clock skew in seconds when validating time-based claims (exp, iat, nbf). Defaults to
0. Use this to account for clock differences between systems. - enabled boolean
- Whether this profile is enabled for JWT validation. Disabled profiles are ignored during JWT authentication. Defaults to
true. - jwks
Ca stringPem - CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
- jwks
Uri string - The JWKS URI to fetch public keys from. Required when
use_jwks=true. This should be the URL where the authorization server publishes its public keys in JWKS format. - jwt
Type string - The JWT type:
accessTokenortransactionToken. Defaults toaccessToken. - namespace string
- The namespace to provision the resource in.
The value should not contain leading or trailing forward slashes.
The
namespaceis always relative to the provider's configured namespace. Available only for Vault Enterprise. - no
Default booleanPolicy - If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to
false. - boolean
- When
false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set totrue, authorizationDetails in the JWT token are optional. Defaults tofalse. Requires Vault 2.0.3 or later. - public
Keys OauthResource Server Config Profile Public Key[] - List of static public keys with
keyIdandpemfields. Required whenuse_jwks=false. Each public key must have: - supported
Algorithms string[] - List of supported signing algorithms (e.g., RS256, ES256). Defaults to all supported algorithms:
["RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512"]. Valid values are:RS256,RS384,RS512- RSA with SHA-256/384/512ES256,ES384,ES512- ECDSA with SHA-256/384/512PS256,PS384,PS512- RSA-PSS with SHA-256/384/512
- use
Jwks boolean - If true, use JWKS URI for key validation; if false, use static public keys. Defaults to
true. When set to true,jwksUriis required. When set to false,publicKeysis required. - user
Claim string - The claim to use as the user identifier. Defaults to
sub. This determines which JWT claim is used to identify the user.
- issuer_
id str - The issuer ID (iss claim) to validate against in incoming JWTs. This should match the issuer claim in the JWT tokens. Changing this will force a new resource to be created.
- profile_
name str - The name of the OAuth Resource Server Configuration profile. Must be unique within the namespace. Changing this will force a new resource to be created.
- audiences Sequence[str]
- List of allowed audiences (aud claim) to validate in JWTs. If specified, the JWT must contain at least one of these audiences in its aud claim.
- clock_
skew_ intleeway - Leeway for clock skew in seconds when validating time-based claims (exp, iat, nbf). Defaults to
0. Use this to account for clock differences between systems. - enabled bool
- Whether this profile is enabled for JWT validation. Disabled profiles are ignored during JWT authentication. Defaults to
true. - jwks_
ca_ strpem - CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
- jwks_
uri str - The JWKS URI to fetch public keys from. Required when
use_jwks=true. This should be the URL where the authorization server publishes its public keys in JWKS format. - jwt_
type str - The JWT type:
accessTokenortransactionToken. Defaults toaccessToken. - namespace str
- The namespace to provision the resource in.
The value should not contain leading or trailing forward slashes.
The
namespaceis always relative to the provider's configured namespace. Available only for Vault Enterprise. - no_
default_ boolpolicy - If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to
false. - bool
- When
false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set totrue, authorizationDetails in the JWT token are optional. Defaults tofalse. Requires Vault 2.0.3 or later. - public_
keys Sequence[OauthResource Server Config Profile Public Key Args] - List of static public keys with
keyIdandpemfields. Required whenuse_jwks=false. Each public key must have: - supported_
algorithms Sequence[str] - List of supported signing algorithms (e.g., RS256, ES256). Defaults to all supported algorithms:
["RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512"]. Valid values are:RS256,RS384,RS512- RSA with SHA-256/384/512ES256,ES384,ES512- ECDSA with SHA-256/384/512PS256,PS384,PS512- RSA-PSS with SHA-256/384/512
- use_
jwks bool - If true, use JWKS URI for key validation; if false, use static public keys. Defaults to
true. When set to true,jwksUriis required. When set to false,publicKeysis required. - user_
claim str - The claim to use as the user identifier. Defaults to
sub. This determines which JWT claim is used to identify the user.
- issuer
Id String - The issuer ID (iss claim) to validate against in incoming JWTs. This should match the issuer claim in the JWT tokens. Changing this will force a new resource to be created.
- profile
Name String - The name of the OAuth Resource Server Configuration profile. Must be unique within the namespace. Changing this will force a new resource to be created.
- audiences List<String>
- List of allowed audiences (aud claim) to validate in JWTs. If specified, the JWT must contain at least one of these audiences in its aud claim.
- clock
Skew NumberLeeway - Leeway for clock skew in seconds when validating time-based claims (exp, iat, nbf). Defaults to
0. Use this to account for clock differences between systems. - enabled Boolean
- Whether this profile is enabled for JWT validation. Disabled profiles are ignored during JWT authentication. Defaults to
true. - jwks
Ca StringPem - CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
- jwks
Uri String - The JWKS URI to fetch public keys from. Required when
use_jwks=true. This should be the URL where the authorization server publishes its public keys in JWKS format. - jwt
Type String - The JWT type:
accessTokenortransactionToken. Defaults toaccessToken. - namespace String
- The namespace to provision the resource in.
The value should not contain leading or trailing forward slashes.
The
namespaceis always relative to the provider's configured namespace. Available only for Vault Enterprise. - no
Default BooleanPolicy - If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to
false. - Boolean
- When
false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set totrue, authorizationDetails in the JWT token are optional. Defaults tofalse. Requires Vault 2.0.3 or later. - public
Keys List<Property Map> - List of static public keys with
keyIdandpemfields. Required whenuse_jwks=false. Each public key must have: - supported
Algorithms List<String> - List of supported signing algorithms (e.g., RS256, ES256). Defaults to all supported algorithms:
["RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512"]. Valid values are:RS256,RS384,RS512- RSA with SHA-256/384/512ES256,ES384,ES512- ECDSA with SHA-256/384/512PS256,PS384,PS512- RSA-PSS with SHA-256/384/512
- use
Jwks Boolean - If true, use JWKS URI for key validation; if false, use static public keys. Defaults to
true. When set to true,jwksUriis required. When set to false,publicKeysis required. - user
Claim String - The claim to use as the user identifier. Defaults to
sub. This determines which JWT claim is used to identify the user.
Outputs
All input properties are implicitly available as output properties. Additionally, the OauthResourceServerConfigProfile resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing OauthResourceServerConfigProfile Resource
Get an existing OauthResourceServerConfigProfile resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: OauthResourceServerConfigProfileState, opts?: CustomResourceOptions): OauthResourceServerConfigProfile@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
audiences: Optional[Sequence[str]] = None,
clock_skew_leeway: Optional[int] = None,
enabled: Optional[bool] = None,
issuer_id: Optional[str] = None,
jwks_ca_pem: Optional[str] = None,
jwks_uri: Optional[str] = None,
jwt_type: Optional[str] = None,
namespace: Optional[str] = None,
no_default_policy: Optional[bool] = None,
optional_authorization_details: Optional[bool] = None,
profile_name: Optional[str] = None,
public_keys: Optional[Sequence[OauthResourceServerConfigProfilePublicKeyArgs]] = None,
supported_algorithms: Optional[Sequence[str]] = None,
use_jwks: Optional[bool] = None,
user_claim: Optional[str] = None) -> OauthResourceServerConfigProfilefunc GetOauthResourceServerConfigProfile(ctx *Context, name string, id IDInput, state *OauthResourceServerConfigProfileState, opts ...ResourceOption) (*OauthResourceServerConfigProfile, error)public static OauthResourceServerConfigProfile Get(string name, Input<string> id, OauthResourceServerConfigProfileState? state, CustomResourceOptions? opts = null)public static OauthResourceServerConfigProfile get(String name, Output<String> id, OauthResourceServerConfigProfileState state, CustomResourceOptions options)resources: _: type: vault:OauthResourceServerConfigProfile get: id: ${id}import {
to = vault_oauth_resource_server_config_profile.example
id = "${id}"
}
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Audiences List<string>
- List of allowed audiences (aud claim) to validate in JWTs. If specified, the JWT must contain at least one of these audiences in its aud claim.
- Clock
Skew intLeeway - Leeway for clock skew in seconds when validating time-based claims (exp, iat, nbf). Defaults to
0. Use this to account for clock differences between systems. - Enabled bool
- Whether this profile is enabled for JWT validation. Disabled profiles are ignored during JWT authentication. Defaults to
true. - Issuer
Id string - The issuer ID (iss claim) to validate against in incoming JWTs. This should match the issuer claim in the JWT tokens. Changing this will force a new resource to be created.
- Jwks
Ca stringPem - CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
- Jwks
Uri string - The JWKS URI to fetch public keys from. Required when
use_jwks=true. This should be the URL where the authorization server publishes its public keys in JWKS format. - Jwt
Type string - The JWT type:
accessTokenortransactionToken. Defaults toaccessToken. - Namespace string
- The namespace to provision the resource in.
The value should not contain leading or trailing forward slashes.
The
namespaceis always relative to the provider's configured namespace. Available only for Vault Enterprise. - No
Default boolPolicy - If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to
false. - bool
- When
false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set totrue, authorizationDetails in the JWT token are optional. Defaults tofalse. Requires Vault 2.0.3 or later. - Profile
Name string - The name of the OAuth Resource Server Configuration profile. Must be unique within the namespace. Changing this will force a new resource to be created.
- Public
Keys List<OauthResource Server Config Profile Public Key> - List of static public keys with
keyIdandpemfields. Required whenuse_jwks=false. Each public key must have: - Supported
Algorithms List<string> - List of supported signing algorithms (e.g., RS256, ES256). Defaults to all supported algorithms:
["RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512"]. Valid values are:RS256,RS384,RS512- RSA with SHA-256/384/512ES256,ES384,ES512- ECDSA with SHA-256/384/512PS256,PS384,PS512- RSA-PSS with SHA-256/384/512
- Use
Jwks bool - If true, use JWKS URI for key validation; if false, use static public keys. Defaults to
true. When set to true,jwksUriis required. When set to false,publicKeysis required. - User
Claim string - The claim to use as the user identifier. Defaults to
sub. This determines which JWT claim is used to identify the user.
- Audiences []string
- List of allowed audiences (aud claim) to validate in JWTs. If specified, the JWT must contain at least one of these audiences in its aud claim.
- Clock
Skew intLeeway - Leeway for clock skew in seconds when validating time-based claims (exp, iat, nbf). Defaults to
0. Use this to account for clock differences between systems. - Enabled bool
- Whether this profile is enabled for JWT validation. Disabled profiles are ignored during JWT authentication. Defaults to
true. - Issuer
Id string - The issuer ID (iss claim) to validate against in incoming JWTs. This should match the issuer claim in the JWT tokens. Changing this will force a new resource to be created.
- Jwks
Ca stringPem - CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
- Jwks
Uri string - The JWKS URI to fetch public keys from. Required when
use_jwks=true. This should be the URL where the authorization server publishes its public keys in JWKS format. - Jwt
Type string - The JWT type:
accessTokenortransactionToken. Defaults toaccessToken. - Namespace string
- The namespace to provision the resource in.
The value should not contain leading or trailing forward slashes.
The
namespaceis always relative to the provider's configured namespace. Available only for Vault Enterprise. - No
Default boolPolicy - If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to
false. - bool
- When
false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set totrue, authorizationDetails in the JWT token are optional. Defaults tofalse. Requires Vault 2.0.3 or later. - Profile
Name string - The name of the OAuth Resource Server Configuration profile. Must be unique within the namespace. Changing this will force a new resource to be created.
- Public
Keys []OauthResource Server Config Profile Public Key Args - List of static public keys with
keyIdandpemfields. Required whenuse_jwks=false. Each public key must have: - Supported
Algorithms []string - List of supported signing algorithms (e.g., RS256, ES256). Defaults to all supported algorithms:
["RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512"]. Valid values are:RS256,RS384,RS512- RSA with SHA-256/384/512ES256,ES384,ES512- ECDSA with SHA-256/384/512PS256,PS384,PS512- RSA-PSS with SHA-256/384/512
- Use
Jwks bool - If true, use JWKS URI for key validation; if false, use static public keys. Defaults to
true. When set to true,jwksUriis required. When set to false,publicKeysis required. - User
Claim string - The claim to use as the user identifier. Defaults to
sub. This determines which JWT claim is used to identify the user.
- audiences list(string)
- List of allowed audiences (aud claim) to validate in JWTs. If specified, the JWT must contain at least one of these audiences in its aud claim.
- clock_
skew_ numberleeway - Leeway for clock skew in seconds when validating time-based claims (exp, iat, nbf). Defaults to
0. Use this to account for clock differences between systems. - enabled bool
- Whether this profile is enabled for JWT validation. Disabled profiles are ignored during JWT authentication. Defaults to
true. - issuer_
id string - The issuer ID (iss claim) to validate against in incoming JWTs. This should match the issuer claim in the JWT tokens. Changing this will force a new resource to be created.
- jwks_
ca_ stringpem - CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
- jwks_
uri string - The JWKS URI to fetch public keys from. Required when
use_jwks=true. This should be the URL where the authorization server publishes its public keys in JWKS format. - jwt_
type string - The JWT type:
accessTokenortransactionToken. Defaults toaccessToken. - namespace string
- The namespace to provision the resource in.
The value should not contain leading or trailing forward slashes.
The
namespaceis always relative to the provider's configured namespace. Available only for Vault Enterprise. - no_
default_ boolpolicy - If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to
false. - bool
- When
false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set totrue, authorizationDetails in the JWT token are optional. Defaults tofalse. Requires Vault 2.0.3 or later. - profile_
name string - The name of the OAuth Resource Server Configuration profile. Must be unique within the namespace. Changing this will force a new resource to be created.
- public_
keys list(object) - List of static public keys with
keyIdandpemfields. Required whenuse_jwks=false. Each public key must have: - supported_
algorithms list(string) - List of supported signing algorithms (e.g., RS256, ES256). Defaults to all supported algorithms:
["RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512"]. Valid values are:RS256,RS384,RS512- RSA with SHA-256/384/512ES256,ES384,ES512- ECDSA with SHA-256/384/512PS256,PS384,PS512- RSA-PSS with SHA-256/384/512
- use_
jwks bool - If true, use JWKS URI for key validation; if false, use static public keys. Defaults to
true. When set to true,jwksUriis required. When set to false,publicKeysis required. - user_
claim string - The claim to use as the user identifier. Defaults to
sub. This determines which JWT claim is used to identify the user.
- audiences List<String>
- List of allowed audiences (aud claim) to validate in JWTs. If specified, the JWT must contain at least one of these audiences in its aud claim.
- clock
Skew IntegerLeeway - Leeway for clock skew in seconds when validating time-based claims (exp, iat, nbf). Defaults to
0. Use this to account for clock differences between systems. - enabled Boolean
- Whether this profile is enabled for JWT validation. Disabled profiles are ignored during JWT authentication. Defaults to
true. - issuer
Id String - The issuer ID (iss claim) to validate against in incoming JWTs. This should match the issuer claim in the JWT tokens. Changing this will force a new resource to be created.
- jwks
Ca StringPem - CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
- jwks
Uri String - The JWKS URI to fetch public keys from. Required when
use_jwks=true. This should be the URL where the authorization server publishes its public keys in JWKS format. - jwt
Type String - The JWT type:
accessTokenortransactionToken. Defaults toaccessToken. - namespace String
- The namespace to provision the resource in.
The value should not contain leading or trailing forward slashes.
The
namespaceis always relative to the provider's configured namespace. Available only for Vault Enterprise. - no
Default BooleanPolicy - If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to
false. - Boolean
- When
false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set totrue, authorizationDetails in the JWT token are optional. Defaults tofalse. Requires Vault 2.0.3 or later. - profile
Name String - The name of the OAuth Resource Server Configuration profile. Must be unique within the namespace. Changing this will force a new resource to be created.
- public
Keys List<OauthResource Server Config Profile Public Key> - List of static public keys with
keyIdandpemfields. Required whenuse_jwks=false. Each public key must have: - supported
Algorithms List<String> - List of supported signing algorithms (e.g., RS256, ES256). Defaults to all supported algorithms:
["RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512"]. Valid values are:RS256,RS384,RS512- RSA with SHA-256/384/512ES256,ES384,ES512- ECDSA with SHA-256/384/512PS256,PS384,PS512- RSA-PSS with SHA-256/384/512
- use
Jwks Boolean - If true, use JWKS URI for key validation; if false, use static public keys. Defaults to
true. When set to true,jwksUriis required. When set to false,publicKeysis required. - user
Claim String - The claim to use as the user identifier. Defaults to
sub. This determines which JWT claim is used to identify the user.
- audiences string[]
- List of allowed audiences (aud claim) to validate in JWTs. If specified, the JWT must contain at least one of these audiences in its aud claim.
- clock
Skew numberLeeway - Leeway for clock skew in seconds when validating time-based claims (exp, iat, nbf). Defaults to
0. Use this to account for clock differences between systems. - enabled boolean
- Whether this profile is enabled for JWT validation. Disabled profiles are ignored during JWT authentication. Defaults to
true. - issuer
Id string - The issuer ID (iss claim) to validate against in incoming JWTs. This should match the issuer claim in the JWT tokens. Changing this will force a new resource to be created.
- jwks
Ca stringPem - CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
- jwks
Uri string - The JWKS URI to fetch public keys from. Required when
use_jwks=true. This should be the URL where the authorization server publishes its public keys in JWKS format. - jwt
Type string - The JWT type:
accessTokenortransactionToken. Defaults toaccessToken. - namespace string
- The namespace to provision the resource in.
The value should not contain leading or trailing forward slashes.
The
namespaceis always relative to the provider's configured namespace. Available only for Vault Enterprise. - no
Default booleanPolicy - If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to
false. - boolean
- When
false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set totrue, authorizationDetails in the JWT token are optional. Defaults tofalse. Requires Vault 2.0.3 or later. - profile
Name string - The name of the OAuth Resource Server Configuration profile. Must be unique within the namespace. Changing this will force a new resource to be created.
- public
Keys OauthResource Server Config Profile Public Key[] - List of static public keys with
keyIdandpemfields. Required whenuse_jwks=false. Each public key must have: - supported
Algorithms string[] - List of supported signing algorithms (e.g., RS256, ES256). Defaults to all supported algorithms:
["RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512"]. Valid values are:RS256,RS384,RS512- RSA with SHA-256/384/512ES256,ES384,ES512- ECDSA with SHA-256/384/512PS256,PS384,PS512- RSA-PSS with SHA-256/384/512
- use
Jwks boolean - If true, use JWKS URI for key validation; if false, use static public keys. Defaults to
true. When set to true,jwksUriis required. When set to false,publicKeysis required. - user
Claim string - The claim to use as the user identifier. Defaults to
sub. This determines which JWT claim is used to identify the user.
- audiences Sequence[str]
- List of allowed audiences (aud claim) to validate in JWTs. If specified, the JWT must contain at least one of these audiences in its aud claim.
- clock_
skew_ intleeway - Leeway for clock skew in seconds when validating time-based claims (exp, iat, nbf). Defaults to
0. Use this to account for clock differences between systems. - enabled bool
- Whether this profile is enabled for JWT validation. Disabled profiles are ignored during JWT authentication. Defaults to
true. - issuer_
id str - The issuer ID (iss claim) to validate against in incoming JWTs. This should match the issuer claim in the JWT tokens. Changing this will force a new resource to be created.
- jwks_
ca_ strpem - CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
- jwks_
uri str - The JWKS URI to fetch public keys from. Required when
use_jwks=true. This should be the URL where the authorization server publishes its public keys in JWKS format. - jwt_
type str - The JWT type:
accessTokenortransactionToken. Defaults toaccessToken. - namespace str
- The namespace to provision the resource in.
The value should not contain leading or trailing forward slashes.
The
namespaceis always relative to the provider's configured namespace. Available only for Vault Enterprise. - no_
default_ boolpolicy - If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to
false. - bool
- When
false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set totrue, authorizationDetails in the JWT token are optional. Defaults tofalse. Requires Vault 2.0.3 or later. - profile_
name str - The name of the OAuth Resource Server Configuration profile. Must be unique within the namespace. Changing this will force a new resource to be created.
- public_
keys Sequence[OauthResource Server Config Profile Public Key Args] - List of static public keys with
keyIdandpemfields. Required whenuse_jwks=false. Each public key must have: - supported_
algorithms Sequence[str] - List of supported signing algorithms (e.g., RS256, ES256). Defaults to all supported algorithms:
["RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512"]. Valid values are:RS256,RS384,RS512- RSA with SHA-256/384/512ES256,ES384,ES512- ECDSA with SHA-256/384/512PS256,PS384,PS512- RSA-PSS with SHA-256/384/512
- use_
jwks bool - If true, use JWKS URI for key validation; if false, use static public keys. Defaults to
true. When set to true,jwksUriis required. When set to false,publicKeysis required. - user_
claim str - The claim to use as the user identifier. Defaults to
sub. This determines which JWT claim is used to identify the user.
- audiences List<String>
- List of allowed audiences (aud claim) to validate in JWTs. If specified, the JWT must contain at least one of these audiences in its aud claim.
- clock
Skew NumberLeeway - Leeway for clock skew in seconds when validating time-based claims (exp, iat, nbf). Defaults to
0. Use this to account for clock differences between systems. - enabled Boolean
- Whether this profile is enabled for JWT validation. Disabled profiles are ignored during JWT authentication. Defaults to
true. - issuer
Id String - The issuer ID (iss claim) to validate against in incoming JWTs. This should match the issuer claim in the JWT tokens. Changing this will force a new resource to be created.
- jwks
Ca StringPem - CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
- jwks
Uri String - The JWKS URI to fetch public keys from. Required when
use_jwks=true. This should be the URL where the authorization server publishes its public keys in JWKS format. - jwt
Type String - The JWT type:
accessTokenortransactionToken. Defaults toaccessToken. - namespace String
- The namespace to provision the resource in.
The value should not contain leading or trailing forward slashes.
The
namespaceis always relative to the provider's configured namespace. Available only for Vault Enterprise. - no
Default BooleanPolicy - If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to
false. - Boolean
- When
false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set totrue, authorizationDetails in the JWT token are optional. Defaults tofalse. Requires Vault 2.0.3 or later. - profile
Name String - The name of the OAuth Resource Server Configuration profile. Must be unique within the namespace. Changing this will force a new resource to be created.
- public
Keys List<Property Map> - List of static public keys with
keyIdandpemfields. Required whenuse_jwks=false. Each public key must have: - supported
Algorithms List<String> - List of supported signing algorithms (e.g., RS256, ES256). Defaults to all supported algorithms:
["RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "PS256", "PS384", "PS512"]. Valid values are:RS256,RS384,RS512- RSA with SHA-256/384/512ES256,ES384,ES512- ECDSA with SHA-256/384/512PS256,PS384,PS512- RSA-PSS with SHA-256/384/512
- use
Jwks Boolean - If true, use JWKS URI for key validation; if false, use static public keys. Defaults to
true. When set to true,jwksUriis required. When set to false,publicKeysis required. - user
Claim String - The claim to use as the user identifier. Defaults to
sub. This determines which JWT claim is used to identify the user.
Supporting Types
OauthResourceServerConfigProfilePublicKey, OauthResourceServerConfigProfilePublicKeyArgs
Import
You can import OAuth Resource Server Configuration profiles using their profileName, e.g.
$ pulumi import vault:index/oauthResourceServerConfigProfile:OauthResourceServerConfigProfile example my-oauth-profile
The import string does not encode the namespace. To import a profile from a
namespace, set the TERRAFORM_VAULT_NAMESPACE_IMPORT environment variable:
$ TERRAFORM_VAULT_NAMESPACE_IMPORT=application terraform import vault_oauth_resource_server_config_profile.example my-oauth-profile
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- Vault pulumi/pulumi-vault
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
vaultTerraform Provider.
published on Saturday, Aug 15, 2026 by Pulumi