diff --git a/docs/data-sources/client.md b/docs/data-sources/client.md
index c4460c75..11e65f01 100644
--- a/docs/data-sources/client.md
+++ b/docs/data-sources/client.md
@@ -62,6 +62,7 @@ data "auth0_client" "some-client-by-id" {
- `native_social_login` (List of Object) Configuration settings to toggle native social login for mobile native applications. Once this is set it must stay set, with both resources set to `false` in order to change the `app_type`. (see [below for nested schema](#nestedatt--native_social_login))
- `oidc_backchannel_logout_urls` (Set of String) Set of URLs that are valid to call back from Auth0 for OIDC backchannel logout. Currently only one URL is allowed.
- `oidc_conformant` (Boolean) Indicates whether this client will conform to strict OIDC specifications.
+- `oidc_logout` (List of Object) Configure OIDC logout for the Client (see [below for nested schema](#nestedatt--oidc_logout))
- `organization_require_behavior` (String) Defines how to proceed during an authentication transaction when `organization_usage = "require"`. Can be `no_prompt` (default), `pre_login_prompt` or `post_login_prompt`.
- `organization_usage` (String) Defines how to proceed during an authentication transaction with regards to an organization. Can be `deny` (default), `allow` or `require`.
- `refresh_token` (List of Object) Configuration settings for the refresh tokens issued for this client. (see [below for nested schema](#nestedatt--refresh_token))
@@ -554,6 +555,24 @@ Read-Only:
+
+### Nested Schema for `oidc_logout`
+
+Read-Only:
+
+- `backchannel_logout_initiators` (List of Object) (see [below for nested schema](#nestedobjatt--oidc_logout--backchannel_logout_initiators))
+- `backchannel_logout_urls` (Set of String)
+
+
+### Nested Schema for `oidc_logout.backchannel_logout_initiators`
+
+Read-Only:
+
+- `mode` (String)
+- `selected_initiators` (Set of String)
+
+
+
### Nested Schema for `refresh_token`
diff --git a/docs/data-sources/clients.md b/docs/data-sources/clients.md
index 002a9f04..d39df491 100644
--- a/docs/data-sources/clients.md
+++ b/docs/data-sources/clients.md
@@ -59,6 +59,23 @@ Read-Only:
- `is_first_party` (Boolean)
- `is_token_endpoint_ip_header_trusted` (Boolean)
- `name` (String)
+- `oidc_logout` (List of Object) (see [below for nested schema](#nestedobjatt--clients--oidc_logout))
- `web_origins` (List of String)
+
+### Nested Schema for `clients.oidc_logout`
+
+Read-Only:
+
+- `backchannel_logout_initiators` (List of Object) (see [below for nested schema](#nestedobjatt--clients--oidc_logout--backchannel_logout_initiators))
+- `backchannel_logout_urls` (Set of String)
+
+
+### Nested Schema for `clients.oidc_logout.backchannel_logout_initiators`
+
+Read-Only:
+
+- `mode` (String)
+- `selected_initiators` (Set of String)
+
diff --git a/docs/resources/client.md b/docs/resources/client.md
index 3f3709c7..3abd6fc5 100644
--- a/docs/resources/client.md
+++ b/docs/resources/client.md
@@ -116,8 +116,9 @@ resource "auth0_client" "my_client" {
- `logo_uri` (String) URL of the logo for the client. Recommended size is 150px x 150px. If none is set, the default badge for the application type will be shown.
- `mobile` (Block List, Max: 1) Additional configuration for native mobile apps. (see [below for nested schema](#nestedblock--mobile))
- `native_social_login` (Block List, Max: 1) Configuration settings to toggle native social login for mobile native applications. Once this is set it must stay set, with both resources set to `false` in order to change the `app_type`. (see [below for nested schema](#nestedblock--native_social_login))
-- `oidc_backchannel_logout_urls` (Set of String) Set of URLs that are valid to call back from Auth0 for OIDC backchannel logout. Currently only one URL is allowed.
+- `oidc_backchannel_logout_urls` (Set of String, Deprecated) Set of URLs that are valid to call back from Auth0 for OIDC backchannel logout. Currently only one URL is allowed.
- `oidc_conformant` (Boolean) Indicates whether this client will conform to strict OIDC specifications.
+- `oidc_logout` (Block List, Max: 1) Configure OIDC logout for the Client (see [below for nested schema](#nestedblock--oidc_logout))
- `organization_require_behavior` (String) Defines how to proceed during an authentication transaction when `organization_usage = "require"`. Can be `no_prompt` (default), `pre_login_prompt` or `post_login_prompt`.
- `organization_usage` (String) Defines how to proceed during an authentication transaction with regards to an organization. Can be `deny` (default), `allow` or `require`.
- `refresh_token` (Block List, Max: 1) Configuration settings for the refresh tokens issued for this client. (see [below for nested schema](#nestedblock--refresh_token))
@@ -527,6 +528,30 @@ Optional:
+
+### Nested Schema for `oidc_logout`
+
+Required:
+
+- `backchannel_logout_urls` (Set of String) Set of URLs that are valid to call back from Auth0 for OIDC backchannel logout. Currently only one URL is allowed.
+
+Optional:
+
+- `backchannel_logout_initiators` (Block List, Max: 1) Configure OIDC logout initiators for the Client (see [below for nested schema](#nestedblock--oidc_logout--backchannel_logout_initiators))
+
+
+### Nested Schema for `oidc_logout.backchannel_logout_initiators`
+
+Required:
+
+- `mode` (String) Determines the configuration method for enabling initiators. `custom` enables only the initiators listed in the backchannel_logout_selected_initiators set, `all` enables all current and future initiators.
+
+Optional:
+
+- `selected_initiators` (Set of String) Contains the list of initiators to be enabled for the given client.
+
+
+
### Nested Schema for `refresh_token`
diff --git a/internal/auth0/client/expand.go b/internal/auth0/client/expand.go
index 8c21b958..f1334d9d 100644
--- a/internal/auth0/client/expand.go
+++ b/internal/auth0/client/expand.go
@@ -42,6 +42,7 @@ func expandClient(data *schema.ResourceData) (*management.Client, error) {
EncryptionKey: value.MapOfStrings(config.GetAttr("encryption_key")),
IsTokenEndpointIPHeaderTrusted: value.Bool(config.GetAttr("is_token_endpoint_ip_header_trusted")),
OIDCBackchannelLogout: expandOIDCBackchannelLogout(data),
+ OIDCLogout: expandOIDCLogout(data),
ClientMetadata: expandClientMetadata(data),
RefreshToken: expandClientRefreshToken(data),
JWTConfiguration: expandClientJWTConfiguration(data),
@@ -149,6 +150,43 @@ func expandOIDCBackchannelLogout(data *schema.ResourceData) *management.OIDCBack
}
}
+func expandOIDCLogout(data *schema.ResourceData) *management.OIDCLogout {
+ oidcLogoutConfig := data.GetRawConfig().GetAttr("oidc_logout")
+ if oidcLogoutConfig.IsNull() {
+ return nil
+ }
+
+ var oidcLogout management.OIDCLogout
+
+ oidcLogoutConfig.ForEachElement(func(_ cty.Value, config cty.Value) (stop bool) {
+ oidcLogout.BackChannelLogoutURLs = value.Strings(config.GetAttr("backchannel_logout_urls"))
+ oidcLogout.BackChannelLogoutInitiators = expandBackChannelLogoutInitiators(config.GetAttr("backchannel_logout_initiators"))
+ return stop
+ })
+
+ return &oidcLogout
+}
+
+func expandBackChannelLogoutInitiators(config cty.Value) *management.BackChannelLogoutInitiators {
+ if config.IsNull() {
+ return nil
+ }
+
+ var initiators management.BackChannelLogoutInitiators
+
+ config.ForEachElement(func(_ cty.Value, config cty.Value) (stop bool) {
+ initiators.Mode = value.String(config.GetAttr("mode"))
+ initiators.SelectedInitiators = value.Strings(config.GetAttr("selected_initiators"))
+ return stop
+ })
+
+ if initiators == (management.BackChannelLogoutInitiators{}) {
+ return nil
+ }
+
+ return &initiators
+}
+
func expandClientRefreshToken(data *schema.ResourceData) *management.ClientRefreshToken {
refreshTokenConfig := data.GetRawConfig().GetAttr("refresh_token")
if refreshTokenConfig.IsNull() {
diff --git a/internal/auth0/client/flatten.go b/internal/auth0/client/flatten.go
index fc25e3e8..22eb8142 100644
--- a/internal/auth0/client/flatten.go
+++ b/internal/auth0/client/flatten.go
@@ -63,6 +63,42 @@ func flattenClientRefreshTokenConfiguration(refreshToken *management.ClientRefre
}
}
+func flattenOIDCBackchannelURLs(backchannelLogout *management.OIDCBackchannelLogout, logout *management.OIDCLogout) []string {
+ if logout != nil {
+ return nil
+ }
+ return backchannelLogout.GetBackChannelLogoutURLs()
+}
+
+func flattenOIDCLogout(oidcLogout *management.OIDCLogout) []interface{} {
+ if oidcLogout == nil {
+ return nil
+ }
+
+ flattened := map[string]interface{}{
+ "backchannel_logout_urls": oidcLogout.GetBackChannelLogoutURLs(),
+ "backchannel_logout_initiators": flattenBackChannelLogoutInitiators(
+ oidcLogout.GetBackChannelLogoutInitiators(),
+ ),
+ }
+
+ return []interface{}{
+ flattened,
+ }
+}
+func flattenBackChannelLogoutInitiators(initiators *management.BackChannelLogoutInitiators) []interface{} {
+ if initiators == nil {
+ return nil
+ }
+
+ return []interface{}{
+ map[string]interface{}{
+ "mode": initiators.GetMode(),
+ "selected_initiators": initiators.GetSelectedInitiators(),
+ },
+ }
+}
+
func flattenClientMobile(mobile *management.ClientMobile) []interface{} {
if mobile == nil {
return nil
@@ -557,7 +593,8 @@ func flattenClient(data *schema.ResourceData, client *management.Client) error {
data.Set("initiate_login_uri", client.GetInitiateLoginURI()),
data.Set("signing_keys", client.SigningKeys),
data.Set("client_metadata", client.GetClientMetadata()),
- data.Set("oidc_backchannel_logout_urls", client.GetOIDCBackchannelLogout().GetBackChannelLogoutURLs()),
+ data.Set("oidc_backchannel_logout_urls", flattenOIDCBackchannelURLs(client.GetOIDCBackchannelLogout(), client.GetOIDCLogout())),
+ data.Set("oidc_logout", flattenOIDCLogout(client.GetOIDCLogout())),
data.Set("require_pushed_authorization_requests", client.GetRequirePushedAuthorizationRequests()),
data.Set("default_organization", flattenDefaultOrganization(client.GetDefaultOrganization())),
data.Set("require_proof_of_possession", client.GetRequireProofOfPossession()),
diff --git a/internal/auth0/client/resource.go b/internal/auth0/client/resource.go
index eff0972f..9d284f34 100644
--- a/internal/auth0/client/resource.go
+++ b/internal/auth0/client/resource.go
@@ -118,6 +118,8 @@ func NewResource() *schema.Resource {
},
Optional: true,
Description: "Set of URLs that are valid to call back from Auth0 for OIDC backchannel logout. Currently only one URL is allowed.",
+ Deprecated: "This resource is deprecated and will be removed in the next major version. " +
+ "Please use `oidc_logout` for managing OIDC backchannel logout URLs.",
},
"grant_types": {
Type: schema.TypeList,
@@ -1325,6 +1327,48 @@ func NewResource() *schema.Resource {
Optional: true,
Description: "Makes the use of Proof-of-Possession mandatory for this client.",
},
+ "oidc_logout": {
+ Type: schema.TypeList,
+ Optional: true,
+ MaxItems: 1,
+ Description: "Configure OIDC logout for the Client",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "backchannel_logout_urls": {
+ Type: schema.TypeSet,
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ },
+ Required: true,
+ Description: "Set of URLs that are valid to call back from Auth0 for OIDC backchannel logout. Currently only one URL is allowed.",
+ },
+ "backchannel_logout_initiators": {
+ Type: schema.TypeList,
+ Optional: true,
+ MaxItems: 1,
+ Description: "Configure OIDC logout initiators for the Client",
+ Elem: &schema.Resource{
+ Schema: map[string]*schema.Schema{
+ "mode": {
+ Type: schema.TypeString,
+ Required: true,
+ ValidateFunc: validation.StringInSlice([]string{"all", "custom"}, false),
+ Description: "Determines the configuration method for enabling initiators. `custom` enables only the initiators listed in the backchannel_logout_selected_initiators set, `all` enables all current and future initiators.",
+ },
+ "selected_initiators": {
+ Type: schema.TypeSet,
+ Elem: &schema.Schema{
+ Type: schema.TypeString,
+ },
+ Optional: true,
+ Description: "Contains the list of initiators to be enabled for the given client.",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
},
}
}
diff --git a/internal/auth0/client/resource_test.go b/internal/auth0/client/resource_test.go
index 54122804..f011821f 100644
--- a/internal/auth0/client/resource_test.go
+++ b/internal/auth0/client/resource_test.go
@@ -2427,3 +2427,79 @@ func TestAccClientWithDefaultOrganization(t *testing.T) {
},
})
}
+
+const testAccCreateClientWithOIDCLogout = `
+resource "auth0_client" "my_client" {
+ name = "Acceptance Test - OIDC Logout - {{.testName}}"
+ app_type = "spa"
+
+ oidc_logout {
+ backchannel_logout_urls = ["https://auth0.test/all/logout"]
+ backchannel_logout_initiators {
+ mode = "all"
+ }
+ }
+}
+`
+
+const testAccUpdateClientWithOIDCLogout = `
+resource "auth0_client" "my_client" {
+ name = "Acceptance Test - OIDC Logout - {{.testName}}"
+ app_type = "spa"
+
+ oidc_logout {
+ backchannel_logout_urls = ["https://auth0.test/custom/logout"]
+ backchannel_logout_initiators {
+ mode = "custom"
+ selected_initiators = ["rp-logout", "idp-logout", "password-changed", "session-expired"]
+ }
+ }
+}
+`
+const testAccUpdateClientWithOIDCLogoutWhenRemovedFromConfig = `
+resource "auth0_client" "my_client" {
+ name = "Acceptance Test - OIDC Logout - {{.testName}}"
+ app_type = "spa"
+}
+`
+
+func TestAccClientOIDCLogout(t *testing.T) {
+ acctest.Test(t, resource.TestCase{
+ Steps: []resource.TestStep{
+ {
+ Config: acctest.ParseTestName(testAccCreateClientWithOIDCLogout, t.Name()),
+ Check: resource.ComposeTestCheckFunc(
+ resource.TestCheckResourceAttr("auth0_client.my_client", "name", fmt.Sprintf("Acceptance Test - OIDC Logout - %s", t.Name())),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "app_type", "spa"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "oidc_logout.#", "1"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "oidc_logout.0.backchannel_logout_urls.#", "1"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "oidc_logout.0.backchannel_logout_urls.0", "https://auth0.test/all/logout"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "oidc_logout.0.backchannel_logout_initiators.#", "1"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "oidc_logout.0.backchannel_logout_initiators.0.mode", "all"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "oidc_logout.0.backchannel_logout_initiators.0.selected_initiators.#", "0"),
+ ),
+ },
+ {
+ Config: acctest.ParseTestName(testAccUpdateClientWithOIDCLogout, t.Name()),
+ Check: resource.ComposeTestCheckFunc(
+ resource.TestCheckResourceAttr("auth0_client.my_client", "name", fmt.Sprintf("Acceptance Test - OIDC Logout - %s", t.Name())),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "app_type", "spa"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "oidc_logout.#", "1"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "oidc_logout.0.backchannel_logout_urls.#", "1"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "oidc_logout.0.backchannel_logout_urls.0", "https://auth0.test/custom/logout"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "oidc_logout.0.backchannel_logout_initiators.#", "1"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "oidc_logout.0.backchannel_logout_initiators.0.mode", "custom"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "oidc_logout.0.backchannel_logout_initiators.0.selected_initiators.#", "4"),
+ ),
+ },
+ {
+ Config: acctest.ParseTestName(testAccUpdateClientWithOIDCLogoutWhenRemovedFromConfig, t.Name()),
+ Check: resource.ComposeTestCheckFunc(
+ resource.TestCheckResourceAttr("auth0_client.my_client", "name", fmt.Sprintf("Acceptance Test - OIDC Logout - %s", t.Name())),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "app_type", "spa"),
+ resource.TestCheckResourceAttr("auth0_client.my_client", "oidc_logout.#", "0"),
+ ),
+ },
+ },
+ })
+}
diff --git a/test/data/recordings/TestAccClientOIDCLogout.yaml b/test/data/recordings/TestAccClientOIDCLogout.yaml
new file mode 100644
index 00000000..b0f98b1e
--- /dev/null
+++ b/test/data/recordings/TestAccClientOIDCLogout.yaml
@@ -0,0 +1,426 @@
+---
+version: 2
+interactions:
+ - id: 0
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 243
+ transfer_encoding: []
+ trailer: {}
+ host: terraform-provider-auth0-dev.eu.auth0.com
+ remote_addr: ""
+ request_uri: ""
+ body: |
+ {"name":"Acceptance Test - OIDC Logout - TestAccClientOIDCLogout","app_type":"spa","token_endpoint_auth_method":"none","oidc_logout":{"backchannel_logout_urls":["https://auth0.test/all/logout"],"backchannel_logout_initiators":{"mode":"all"}}}
+ form: {}
+ headers:
+ Content-Type:
+ - application/json
+ User-Agent:
+ - Go-Auth0/1.11.1
+ url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients
+ method: POST
+ response:
+ proto: HTTP/2.0
+ proto_major: 2
+ proto_minor: 0
+ transfer_encoding: []
+ trailer: {}
+ content_length: -1
+ uncompressed: false
+ body: '{"name":"Acceptance Test - OIDC Logout - TestAccClientOIDCLogout","client_id":"eDZA9pb390pJRF9EbsFKoevEjOm88554","client_secret":"[REDACTED]","app_type":"spa","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token"],"custom_login_page_on":true,"token_endpoint_auth_method":"none","refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000},"oidc_backchannel_logout":{"backchannel_logout_urls":["https://auth0.test/all/logout"]},"oidc_logout":{"backchannel_logout_urls":["https://auth0.test/all/logout"],"backchannel_logout_initiators":{"mode":"all"}}}'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status: 201 Created
+ code: 201
+ duration: 629.563041ms
+ - id: 1
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 0
+ transfer_encoding: []
+ trailer: {}
+ host: terraform-provider-auth0-dev.eu.auth0.com
+ remote_addr: ""
+ request_uri: ""
+ body: ""
+ form: {}
+ headers:
+ Content-Type:
+ - application/json
+ User-Agent:
+ - Go-Auth0/1.11.1
+ url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/eDZA9pb390pJRF9EbsFKoevEjOm88554
+ method: GET
+ response:
+ proto: HTTP/2.0
+ proto_major: 2
+ proto_minor: 0
+ transfer_encoding: []
+ trailer: {}
+ content_length: -1
+ uncompressed: true
+ body: '{"name":"Acceptance Test - OIDC Logout - TestAccClientOIDCLogout","client_id":"eDZA9pb390pJRF9EbsFKoevEjOm88554","client_secret":"[REDACTED]","app_type":"spa","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token"],"custom_login_page_on":true,"token_endpoint_auth_method":"none","refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000},"oidc_backchannel_logout":{"backchannel_logout_urls":["https://auth0.test/all/logout"]},"oidc_logout":{"backchannel_logout_urls":["https://auth0.test/all/logout"],"backchannel_logout_initiators":{"mode":"all"}}}'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status: 200 OK
+ code: 200
+ duration: 483.595958ms
+ - id: 2
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 0
+ transfer_encoding: []
+ trailer: {}
+ host: terraform-provider-auth0-dev.eu.auth0.com
+ remote_addr: ""
+ request_uri: ""
+ body: ""
+ form: {}
+ headers:
+ Content-Type:
+ - application/json
+ User-Agent:
+ - Go-Auth0/1.11.1
+ url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/eDZA9pb390pJRF9EbsFKoevEjOm88554
+ method: GET
+ response:
+ proto: HTTP/2.0
+ proto_major: 2
+ proto_minor: 0
+ transfer_encoding: []
+ trailer: {}
+ content_length: -1
+ uncompressed: true
+ body: '{"name":"Acceptance Test - OIDC Logout - TestAccClientOIDCLogout","client_id":"eDZA9pb390pJRF9EbsFKoevEjOm88554","client_secret":"[REDACTED]","app_type":"spa","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token"],"custom_login_page_on":true,"token_endpoint_auth_method":"none","refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000},"oidc_backchannel_logout":{"backchannel_logout_urls":["https://auth0.test/all/logout"]},"oidc_logout":{"backchannel_logout_urls":["https://auth0.test/all/logout"],"backchannel_logout_initiators":{"mode":"all"}}}'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status: 200 OK
+ code: 200
+ duration: 457.486708ms
+ - id: 3
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 0
+ transfer_encoding: []
+ trailer: {}
+ host: terraform-provider-auth0-dev.eu.auth0.com
+ remote_addr: ""
+ request_uri: ""
+ body: ""
+ form: {}
+ headers:
+ Content-Type:
+ - application/json
+ User-Agent:
+ - Go-Auth0/1.11.1
+ url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/eDZA9pb390pJRF9EbsFKoevEjOm88554
+ method: GET
+ response:
+ proto: HTTP/2.0
+ proto_major: 2
+ proto_minor: 0
+ transfer_encoding: []
+ trailer: {}
+ content_length: -1
+ uncompressed: true
+ body: '{"name":"Acceptance Test - OIDC Logout - TestAccClientOIDCLogout","client_id":"eDZA9pb390pJRF9EbsFKoevEjOm88554","client_secret":"[REDACTED]","app_type":"spa","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token"],"custom_login_page_on":true,"token_endpoint_auth_method":"none","refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000},"oidc_backchannel_logout":{"backchannel_logout_urls":["https://auth0.test/all/logout"]},"oidc_logout":{"backchannel_logout_urls":["https://auth0.test/all/logout"],"backchannel_logout_initiators":{"mode":"all"}}}'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status: 200 OK
+ code: 200
+ duration: 466.157792ms
+ - id: 4
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 299
+ transfer_encoding: []
+ trailer: {}
+ host: terraform-provider-auth0-dev.eu.auth0.com
+ remote_addr: ""
+ request_uri: ""
+ body: |
+ {"name":"Acceptance Test - OIDC Logout - TestAccClientOIDCLogout","app_type":"spa","oidc_logout":{"backchannel_logout_urls":["https://auth0.test/custom/logout"],"backchannel_logout_initiators":{"mode":"custom","selected_initiators":["rp-logout","idp-logout","password-changed","session-expired"]}}}
+ form: {}
+ headers:
+ Content-Type:
+ - application/json
+ User-Agent:
+ - Go-Auth0/1.11.1
+ url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/eDZA9pb390pJRF9EbsFKoevEjOm88554
+ method: PATCH
+ response:
+ proto: HTTP/2.0
+ proto_major: 2
+ proto_minor: 0
+ transfer_encoding: []
+ trailer: {}
+ content_length: -1
+ uncompressed: true
+ body: '{"name":"Acceptance Test - OIDC Logout - TestAccClientOIDCLogout","client_id":"eDZA9pb390pJRF9EbsFKoevEjOm88554","client_secret":"[REDACTED]","app_type":"spa","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token"],"custom_login_page_on":true,"token_endpoint_auth_method":"none","refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000},"oidc_backchannel_logout":{"backchannel_logout_urls":["https://auth0.test/custom/logout"]},"oidc_logout":{"backchannel_logout_urls":["https://auth0.test/custom/logout"],"backchannel_logout_initiators":{"mode":"custom","selected_initiators":["rp-logout","idp-logout","password-changed","session-expired"]}}}'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status: 200 OK
+ code: 200
+ duration: 481.571ms
+ - id: 5
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 0
+ transfer_encoding: []
+ trailer: {}
+ host: terraform-provider-auth0-dev.eu.auth0.com
+ remote_addr: ""
+ request_uri: ""
+ body: ""
+ form: {}
+ headers:
+ Content-Type:
+ - application/json
+ User-Agent:
+ - Go-Auth0/1.11.1
+ url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/eDZA9pb390pJRF9EbsFKoevEjOm88554
+ method: GET
+ response:
+ proto: HTTP/2.0
+ proto_major: 2
+ proto_minor: 0
+ transfer_encoding: []
+ trailer: {}
+ content_length: -1
+ uncompressed: true
+ body: '{"name":"Acceptance Test - OIDC Logout - TestAccClientOIDCLogout","client_id":"eDZA9pb390pJRF9EbsFKoevEjOm88554","client_secret":"[REDACTED]","app_type":"spa","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token"],"custom_login_page_on":true,"token_endpoint_auth_method":"none","refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000},"oidc_backchannel_logout":{"backchannel_logout_urls":["https://auth0.test/custom/logout"]},"oidc_logout":{"backchannel_logout_urls":["https://auth0.test/custom/logout"],"backchannel_logout_initiators":{"mode":"custom","selected_initiators":["rp-logout","idp-logout","password-changed","session-expired"]}}}'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status: 200 OK
+ code: 200
+ duration: 436.509667ms
+ - id: 6
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 0
+ transfer_encoding: []
+ trailer: {}
+ host: terraform-provider-auth0-dev.eu.auth0.com
+ remote_addr: ""
+ request_uri: ""
+ body: ""
+ form: {}
+ headers:
+ Content-Type:
+ - application/json
+ User-Agent:
+ - Go-Auth0/1.11.1
+ url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/eDZA9pb390pJRF9EbsFKoevEjOm88554
+ method: GET
+ response:
+ proto: HTTP/2.0
+ proto_major: 2
+ proto_minor: 0
+ transfer_encoding: []
+ trailer: {}
+ content_length: -1
+ uncompressed: true
+ body: '{"name":"Acceptance Test - OIDC Logout - TestAccClientOIDCLogout","client_id":"eDZA9pb390pJRF9EbsFKoevEjOm88554","client_secret":"[REDACTED]","app_type":"spa","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token"],"custom_login_page_on":true,"token_endpoint_auth_method":"none","refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000},"oidc_backchannel_logout":{"backchannel_logout_urls":["https://auth0.test/custom/logout"]},"oidc_logout":{"backchannel_logout_urls":["https://auth0.test/custom/logout"],"backchannel_logout_initiators":{"mode":"custom","selected_initiators":["rp-logout","idp-logout","password-changed","session-expired"]}}}'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status: 200 OK
+ code: 200
+ duration: 519.649709ms
+ - id: 7
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 0
+ transfer_encoding: []
+ trailer: {}
+ host: terraform-provider-auth0-dev.eu.auth0.com
+ remote_addr: ""
+ request_uri: ""
+ body: ""
+ form: {}
+ headers:
+ Content-Type:
+ - application/json
+ User-Agent:
+ - Go-Auth0/1.11.1
+ url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/eDZA9pb390pJRF9EbsFKoevEjOm88554
+ method: GET
+ response:
+ proto: HTTP/2.0
+ proto_major: 2
+ proto_minor: 0
+ transfer_encoding: []
+ trailer: {}
+ content_length: -1
+ uncompressed: true
+ body: '{"name":"Acceptance Test - OIDC Logout - TestAccClientOIDCLogout","client_id":"eDZA9pb390pJRF9EbsFKoevEjOm88554","client_secret":"[REDACTED]","app_type":"spa","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token"],"custom_login_page_on":true,"token_endpoint_auth_method":"none","refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000},"oidc_backchannel_logout":{"backchannel_logout_urls":["https://auth0.test/custom/logout"]},"oidc_logout":{"backchannel_logout_urls":["https://auth0.test/custom/logout"],"backchannel_logout_initiators":{"mode":"custom","selected_initiators":["rp-logout","idp-logout","password-changed","session-expired"]}}}'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status: 200 OK
+ code: 200
+ duration: 459.049292ms
+ - id: 8
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 101
+ transfer_encoding: []
+ trailer: {}
+ host: terraform-provider-auth0-dev.eu.auth0.com
+ remote_addr: ""
+ request_uri: ""
+ body: |
+ {"name":"Acceptance Test - OIDC Logout - TestAccClientOIDCLogout","app_type":"spa","oidc_logout":{}}
+ form: {}
+ headers:
+ Content-Type:
+ - application/json
+ User-Agent:
+ - Go-Auth0/1.11.1
+ url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/eDZA9pb390pJRF9EbsFKoevEjOm88554
+ method: PATCH
+ response:
+ proto: HTTP/2.0
+ proto_major: 2
+ proto_minor: 0
+ transfer_encoding: []
+ trailer: {}
+ content_length: -1
+ uncompressed: true
+ body: '{"name":"Acceptance Test - OIDC Logout - TestAccClientOIDCLogout","client_id":"eDZA9pb390pJRF9EbsFKoevEjOm88554","client_secret":"[REDACTED]","app_type":"spa","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token"],"custom_login_page_on":true,"token_endpoint_auth_method":"none","refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status: 200 OK
+ code: 200
+ duration: 538.028916ms
+ - id: 9
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 0
+ transfer_encoding: []
+ trailer: {}
+ host: terraform-provider-auth0-dev.eu.auth0.com
+ remote_addr: ""
+ request_uri: ""
+ body: ""
+ form: {}
+ headers:
+ Content-Type:
+ - application/json
+ User-Agent:
+ - Go-Auth0/1.11.1
+ url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/eDZA9pb390pJRF9EbsFKoevEjOm88554
+ method: GET
+ response:
+ proto: HTTP/2.0
+ proto_major: 2
+ proto_minor: 0
+ transfer_encoding: []
+ trailer: {}
+ content_length: -1
+ uncompressed: true
+ body: '{"name":"Acceptance Test - OIDC Logout - TestAccClientOIDCLogout","client_id":"eDZA9pb390pJRF9EbsFKoevEjOm88554","client_secret":"[REDACTED]","app_type":"spa","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token"],"custom_login_page_on":true,"token_endpoint_auth_method":"none","refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status: 200 OK
+ code: 200
+ duration: 470.716208ms
+ - id: 10
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 0
+ transfer_encoding: []
+ trailer: {}
+ host: terraform-provider-auth0-dev.eu.auth0.com
+ remote_addr: ""
+ request_uri: ""
+ body: ""
+ form: {}
+ headers:
+ Content-Type:
+ - application/json
+ User-Agent:
+ - Go-Auth0/1.11.1
+ url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/eDZA9pb390pJRF9EbsFKoevEjOm88554
+ method: GET
+ response:
+ proto: HTTP/2.0
+ proto_major: 2
+ proto_minor: 0
+ transfer_encoding: []
+ trailer: {}
+ content_length: -1
+ uncompressed: true
+ body: '{"name":"Acceptance Test - OIDC Logout - TestAccClientOIDCLogout","client_id":"eDZA9pb390pJRF9EbsFKoevEjOm88554","client_secret":"[REDACTED]","app_type":"spa","is_first_party":true,"is_token_endpoint_ip_header_trusted":false,"oidc_conformant":false,"jwt_configuration":{"secret_encoded":false,"lifetime_in_seconds":36000},"signing_keys":[{"cert":"[REDACTED]"}],"sso_disabled":false,"grant_types":["authorization_code","implicit","refresh_token"],"custom_login_page_on":true,"token_endpoint_auth_method":"none","refresh_token":{"rotation_type":"non-rotating","expiration_type":"non-expiring","leeway":0,"token_lifetime":2592000,"infinite_token_lifetime":true,"infinite_idle_token_lifetime":true,"idle_token_lifetime":1296000}}'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status: 200 OK
+ code: 200
+ duration: 446.979458ms
+ - id: 11
+ request:
+ proto: HTTP/1.1
+ proto_major: 1
+ proto_minor: 1
+ content_length: 0
+ transfer_encoding: []
+ trailer: {}
+ host: terraform-provider-auth0-dev.eu.auth0.com
+ remote_addr: ""
+ request_uri: ""
+ body: ""
+ form: {}
+ headers:
+ Content-Type:
+ - application/json
+ User-Agent:
+ - Go-Auth0/1.11.1
+ url: https://terraform-provider-auth0-dev.eu.auth0.com/api/v2/clients/eDZA9pb390pJRF9EbsFKoevEjOm88554
+ method: DELETE
+ response:
+ proto: HTTP/2.0
+ proto_major: 2
+ proto_minor: 0
+ transfer_encoding: []
+ trailer: {}
+ content_length: 0
+ uncompressed: false
+ body: ""
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status: 204 No Content
+ code: 204
+ duration: 536.709667ms