1. Registry
  2. Packages
  3. HashiCorp Vault Provider
  4. API Docs
  5. OauthResourceServerConfigProfile
Viewing docs for HashiCorp Vault v7.12.0
published on Saturday, Aug 15, 2026 by Pulumi
vault logo vault logo
Viewing docs for HashiCorp Vault v7.12.0
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 useJwks flag determines which configuration mode is active:

      • When use_jwks=true: You must provide jwksUri and cannot provide publicKeys
      • When use_jwks=false: You must provide publicKeys and cannot provide jwksUri
    • 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 profileName and issuerId cannot 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 supportedAlgorithms list. This provides defense against algorithm confusion attacks.

    • Audience Validation: If audiences is specified, the JWT must contain at least one matching audience in its aud claim. If not specified, audience validation is skipped.

    • Clock Skew: Use clockSkewLeeway to 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 jwksUri to 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 supportedAlgorithms to 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:

    IssuerId 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.
    ProfileName 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.
    ClockSkewLeeway int
    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.
    JwksCaPem string
    CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
    JwksUri 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.
    JwtType string
    The JWT type: accessToken or transactionToken. Defaults to accessToken.
    Namespace string
    The namespace to provision the resource in. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    NoDefaultPolicy bool
    If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to false.
    OptionalAuthorizationDetails bool
    When false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set to true, authorizationDetails in the JWT token are optional. Defaults to false. Requires Vault 2.0.3 or later.
    PublicKeys List<OauthResourceServerConfigProfilePublicKey>
    List of static public keys with keyId and pem fields. Required when use_jwks=false. Each public key must have:
    SupportedAlgorithms 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/512
    • ES256, ES384, ES512 - ECDSA with SHA-256/384/512
    • PS256, PS384, PS512 - RSA-PSS with SHA-256/384/512
    UseJwks bool
    If true, use JWKS URI for key validation; if false, use static public keys. Defaults to true. When set to true, jwksUri is required. When set to false, publicKeys is required.
    UserClaim string
    The claim to use as the user identifier. Defaults to sub. This determines which JWT claim is used to identify the user.
    IssuerId 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.
    ProfileName 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.
    ClockSkewLeeway int
    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.
    JwksCaPem string
    CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
    JwksUri 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.
    JwtType string
    The JWT type: accessToken or transactionToken. Defaults to accessToken.
    Namespace string
    The namespace to provision the resource in. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    NoDefaultPolicy bool
    If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to false.
    OptionalAuthorizationDetails bool
    When false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set to true, authorizationDetails in the JWT token are optional. Defaults to false. Requires Vault 2.0.3 or later.
    PublicKeys []OauthResourceServerConfigProfilePublicKeyArgs
    List of static public keys with keyId and pem fields. Required when use_jwks=false. Each public key must have:
    SupportedAlgorithms []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/512
    • ES256, ES384, ES512 - ECDSA with SHA-256/384/512
    • PS256, PS384, PS512 - RSA-PSS with SHA-256/384/512
    UseJwks bool
    If true, use JWKS URI for key validation; if false, use static public keys. Defaults to true. When set to true, jwksUri is required. When set to false, publicKeys is required.
    UserClaim 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_leeway number
    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_pem string
    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: accessToken or transactionToken. Defaults to accessToken.
    namespace string
    The namespace to provision the resource in. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    no_default_policy bool
    If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to false.
    optional_authorization_details bool
    When false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set to true, authorizationDetails in the JWT token are optional. Defaults to false. Requires Vault 2.0.3 or later.
    public_keys list(object)
    List of static public keys with keyId and pem fields. Required when use_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/512
    • ES256, ES384, ES512 - ECDSA with SHA-256/384/512
    • PS256, 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, jwksUri is required. When set to false, publicKeys is 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.
    issuerId 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.
    profileName 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.
    clockSkewLeeway Integer
    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.
    jwksCaPem String
    CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
    jwksUri 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.
    jwtType String
    The JWT type: accessToken or transactionToken. Defaults to accessToken.
    namespace String
    The namespace to provision the resource in. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    noDefaultPolicy Boolean
    If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to false.
    optionalAuthorizationDetails Boolean
    When false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set to true, authorizationDetails in the JWT token are optional. Defaults to false. Requires Vault 2.0.3 or later.
    publicKeys List<OauthResourceServerConfigProfilePublicKey>
    List of static public keys with keyId and pem fields. Required when use_jwks=false. Each public key must have:
    supportedAlgorithms 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/512
    • ES256, ES384, ES512 - ECDSA with SHA-256/384/512
    • PS256, PS384, PS512 - RSA-PSS with SHA-256/384/512
    useJwks Boolean
    If true, use JWKS URI for key validation; if false, use static public keys. Defaults to true. When set to true, jwksUri is required. When set to false, publicKeys is required.
    userClaim String
    The claim to use as the user identifier. Defaults to sub. This determines which JWT claim is used to identify the user.
    issuerId 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.
    profileName 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.
    clockSkewLeeway number
    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.
    jwksCaPem string
    CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
    jwksUri 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.
    jwtType string
    The JWT type: accessToken or transactionToken. Defaults to accessToken.
    namespace string
    The namespace to provision the resource in. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    noDefaultPolicy boolean
    If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to false.
    optionalAuthorizationDetails boolean
    When false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set to true, authorizationDetails in the JWT token are optional. Defaults to false. Requires Vault 2.0.3 or later.
    publicKeys OauthResourceServerConfigProfilePublicKey[]
    List of static public keys with keyId and pem fields. Required when use_jwks=false. Each public key must have:
    supportedAlgorithms 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/512
    • ES256, ES384, ES512 - ECDSA with SHA-256/384/512
    • PS256, PS384, PS512 - RSA-PSS with SHA-256/384/512
    useJwks boolean
    If true, use JWKS URI for key validation; if false, use static public keys. Defaults to true. When set to true, jwksUri is required. When set to false, publicKeys is required.
    userClaim 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_leeway int
    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_pem str
    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: accessToken or transactionToken. Defaults to accessToken.
    namespace str
    The namespace to provision the resource in. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    no_default_policy bool
    If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to false.
    optional_authorization_details bool
    When false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set to true, authorizationDetails in the JWT token are optional. Defaults to false. Requires Vault 2.0.3 or later.
    public_keys Sequence[OauthResourceServerConfigProfilePublicKeyArgs]
    List of static public keys with keyId and pem fields. Required when use_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/512
    • ES256, ES384, ES512 - ECDSA with SHA-256/384/512
    • PS256, 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, jwksUri is required. When set to false, publicKeys is 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.
    issuerId 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.
    profileName 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.
    clockSkewLeeway Number
    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.
    jwksCaPem String
    CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
    jwksUri 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.
    jwtType String
    The JWT type: accessToken or transactionToken. Defaults to accessToken.
    namespace String
    The namespace to provision the resource in. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    noDefaultPolicy Boolean
    If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to false.
    optionalAuthorizationDetails Boolean
    When false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set to true, authorizationDetails in the JWT token are optional. Defaults to false. Requires Vault 2.0.3 or later.
    publicKeys List<Property Map>
    List of static public keys with keyId and pem fields. Required when use_jwks=false. Each public key must have:
    supportedAlgorithms 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/512
    • ES256, ES384, ES512 - ECDSA with SHA-256/384/512
    • PS256, PS384, PS512 - RSA-PSS with SHA-256/384/512
    useJwks Boolean
    If true, use JWKS URI for key validation; if false, use static public keys. Defaults to true. When set to true, jwksUri is required. When set to false, publicKeys is required.
    userClaim 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) -> OauthResourceServerConfigProfile
    func 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.
    The following state arguments are supported:
    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.
    ClockSkewLeeway int
    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.
    IssuerId 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.
    JwksCaPem string
    CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
    JwksUri 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.
    JwtType string
    The JWT type: accessToken or transactionToken. Defaults to accessToken.
    Namespace string
    The namespace to provision the resource in. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    NoDefaultPolicy bool
    If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to false.
    OptionalAuthorizationDetails bool
    When false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set to true, authorizationDetails in the JWT token are optional. Defaults to false. Requires Vault 2.0.3 or later.
    ProfileName 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.
    PublicKeys List<OauthResourceServerConfigProfilePublicKey>
    List of static public keys with keyId and pem fields. Required when use_jwks=false. Each public key must have:
    SupportedAlgorithms 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/512
    • ES256, ES384, ES512 - ECDSA with SHA-256/384/512
    • PS256, PS384, PS512 - RSA-PSS with SHA-256/384/512
    UseJwks bool
    If true, use JWKS URI for key validation; if false, use static public keys. Defaults to true. When set to true, jwksUri is required. When set to false, publicKeys is required.
    UserClaim 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.
    ClockSkewLeeway int
    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.
    IssuerId 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.
    JwksCaPem string
    CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
    JwksUri 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.
    JwtType string
    The JWT type: accessToken or transactionToken. Defaults to accessToken.
    Namespace string
    The namespace to provision the resource in. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    NoDefaultPolicy bool
    If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to false.
    OptionalAuthorizationDetails bool
    When false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set to true, authorizationDetails in the JWT token are optional. Defaults to false. Requires Vault 2.0.3 or later.
    ProfileName 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.
    PublicKeys []OauthResourceServerConfigProfilePublicKeyArgs
    List of static public keys with keyId and pem fields. Required when use_jwks=false. Each public key must have:
    SupportedAlgorithms []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/512
    • ES256, ES384, ES512 - ECDSA with SHA-256/384/512
    • PS256, PS384, PS512 - RSA-PSS with SHA-256/384/512
    UseJwks bool
    If true, use JWKS URI for key validation; if false, use static public keys. Defaults to true. When set to true, jwksUri is required. When set to false, publicKeys is required.
    UserClaim 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_leeway number
    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_pem string
    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: accessToken or transactionToken. Defaults to accessToken.
    namespace string
    The namespace to provision the resource in. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    no_default_policy bool
    If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to false.
    optional_authorization_details bool
    When false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set to true, authorizationDetails in the JWT token are optional. Defaults to false. 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 keyId and pem fields. Required when use_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/512
    • ES256, ES384, ES512 - ECDSA with SHA-256/384/512
    • PS256, 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, jwksUri is required. When set to false, publicKeys is 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.
    clockSkewLeeway Integer
    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.
    issuerId 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.
    jwksCaPem String
    CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
    jwksUri 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.
    jwtType String
    The JWT type: accessToken or transactionToken. Defaults to accessToken.
    namespace String
    The namespace to provision the resource in. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    noDefaultPolicy Boolean
    If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to false.
    optionalAuthorizationDetails Boolean
    When false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set to true, authorizationDetails in the JWT token are optional. Defaults to false. Requires Vault 2.0.3 or later.
    profileName 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.
    publicKeys List<OauthResourceServerConfigProfilePublicKey>
    List of static public keys with keyId and pem fields. Required when use_jwks=false. Each public key must have:
    supportedAlgorithms 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/512
    • ES256, ES384, ES512 - ECDSA with SHA-256/384/512
    • PS256, PS384, PS512 - RSA-PSS with SHA-256/384/512
    useJwks Boolean
    If true, use JWKS URI for key validation; if false, use static public keys. Defaults to true. When set to true, jwksUri is required. When set to false, publicKeys is required.
    userClaim 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.
    clockSkewLeeway number
    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.
    issuerId 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.
    jwksCaPem string
    CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
    jwksUri 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.
    jwtType string
    The JWT type: accessToken or transactionToken. Defaults to accessToken.
    namespace string
    The namespace to provision the resource in. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    noDefaultPolicy boolean
    If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to false.
    optionalAuthorizationDetails boolean
    When false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set to true, authorizationDetails in the JWT token are optional. Defaults to false. Requires Vault 2.0.3 or later.
    profileName 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.
    publicKeys OauthResourceServerConfigProfilePublicKey[]
    List of static public keys with keyId and pem fields. Required when use_jwks=false. Each public key must have:
    supportedAlgorithms 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/512
    • ES256, ES384, ES512 - ECDSA with SHA-256/384/512
    • PS256, PS384, PS512 - RSA-PSS with SHA-256/384/512
    useJwks boolean
    If true, use JWKS URI for key validation; if false, use static public keys. Defaults to true. When set to true, jwksUri is required. When set to false, publicKeys is required.
    userClaim 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_leeway int
    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_pem str
    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: accessToken or transactionToken. Defaults to accessToken.
    namespace str
    The namespace to provision the resource in. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    no_default_policy bool
    If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to false.
    optional_authorization_details bool
    When false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set to true, authorizationDetails in the JWT token are optional. Defaults to false. 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[OauthResourceServerConfigProfilePublicKeyArgs]
    List of static public keys with keyId and pem fields. Required when use_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/512
    • ES256, ES384, ES512 - ECDSA with SHA-256/384/512
    • PS256, 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, jwksUri is required. When set to false, publicKeys is 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.
    clockSkewLeeway Number
    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.
    issuerId 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.
    jwksCaPem String
    CA certificate (PEM format) for JWKS URI TLS validation. Use this when the JWKS URI uses a custom CA certificate.
    jwksUri 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.
    jwtType String
    The JWT type: accessToken or transactionToken. Defaults to accessToken.
    namespace String
    The namespace to provision the resource in. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    noDefaultPolicy Boolean
    If true, JWT-authenticated tokens omit the default policy unless added elsewhere. Defaults to false.
    optionalAuthorizationDetails Boolean
    When false, RAR (Rich Authorization Requests) is mandatory and authorizationDetails must be present in the token. When set to true, authorizationDetails in the JWT token are optional. Defaults to false. Requires Vault 2.0.3 or later.
    profileName 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.
    publicKeys List<Property Map>
    List of static public keys with keyId and pem fields. Required when use_jwks=false. Each public key must have:
    supportedAlgorithms 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/512
    • ES256, ES384, ES512 - ECDSA with SHA-256/384/512
    • PS256, PS384, PS512 - RSA-PSS with SHA-256/384/512
    useJwks Boolean
    If true, use JWKS URI for key validation; if false, use static public keys. Defaults to true. When set to true, jwksUri is required. When set to false, publicKeys is required.
    userClaim 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

    KeyId string
    The key ID (kid) for this public key. Must be unique within the profile.
    Pem string
    The PEM-encoded public key.
    KeyId string
    The key ID (kid) for this public key. Must be unique within the profile.
    Pem string
    The PEM-encoded public key.
    key_id string
    The key ID (kid) for this public key. Must be unique within the profile.
    pem string
    The PEM-encoded public key.
    keyId String
    The key ID (kid) for this public key. Must be unique within the profile.
    pem String
    The PEM-encoded public key.
    keyId string
    The key ID (kid) for this public key. Must be unique within the profile.
    pem string
    The PEM-encoded public key.
    key_id str
    The key ID (kid) for this public key. Must be unique within the profile.
    pem str
    The PEM-encoded public key.
    keyId String
    The key ID (kid) for this public key. Must be unique within the profile.
    pem String
    The PEM-encoded public key.

    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 vault Terraform Provider.
    vault logo vault logo
    Viewing docs for HashiCorp Vault v7.12.0
    published on Saturday, Aug 15, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial