Viewing docs for Keycloak v6.10.0
published on Saturday, Feb 21, 2026 by Pulumi
published on Saturday, Feb 21, 2026 by Pulumi
Viewing docs for Keycloak v6.10.0
published on Saturday, Feb 21, 2026 by Pulumi
published on Saturday, Feb 21, 2026 by Pulumi
This data source uses the ClientDescriptionConverter API to convert a generic client description into a Keycloak client. This data can then be used to manage the client within Keycloak.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as keycloak from "@pulumi/keycloak";
const realm = new keycloak.Realm("realm", {
realm: "my-realm",
enabled: true,
});
const samlClient = keycloak.getClientDescriptionConverterOutput({
realmId: realm.id,
body: `\\t<md:EntityDescriptor xmlns:md=\\"urn:oasis:names:tc:SAML:2.0:metadata\\" validUntil=\\"2021-04-17T12:41:46Z\\" cacheDuration=\\"PT604800S\\" entityID=\\"FakeEntityId\\">
<md:SPSSODescriptor AuthnRequestsSigned=\\"false\\" WantAssertionsSigned=\\"false\\" protocolSupportEnumeration=\\"urn:oasis:names:tc:SAML:2.0:protocol\\">
<md:KeyDescriptor use=\\"signing\\">
\\t\\t\\t<ds:KeyInfo xmlns:ds=\\"http://www.w3.org/2000/09/xmldsig#\\">
\\t\\t\\t\\t<ds:X509Data>
\\t\\t\\t\\t\\t<ds:X509Certificate>MIICyDCCAjGgAwIBAgIBADANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UEBhMCdXMx
\\t\\t\\t\\t\\tCzAJBgNVBAgMAklBMSQwIgYDVQQKDBt0ZXJyYWZvcm0tcHJvdmlkZXIta2V5Y2xv
\\t\\t\\t\\t\\tYWsxHDAaBgNVBAMME21ycGFya2Vycy5naXRodWIuaW8xIDAeBgkqhkiG9w0BCQEW
\\t\\t\\t\\t\\tEW1pY2hhZWxAcGFya2VyLmdnMB4XDTE5MDEwODE0NDYzNloXDTI5MDEwNTE0NDYz
\\t\\t\\t\\t\\tNlowgYAxCzAJBgNVBAYTAnVzMQswCQYDVQQIDAJJQTEkMCIGA1UECgwbdGVycmFm
\\t\\t\\t\\t\\tb3JtLXByb3ZpZGVyLWtleWNsb2FrMRwwGgYDVQQDDBNtcnBhcmtlcnMuZ2l0aHVi
\\t\\t\\t\\t\\tLmlvMSAwHgYJKoZIhvcNAQkBFhFtaWNoYWVsQHBhcmtlci5nZzCBnzANBgkqhkiG
\\t\\t\\t\\t\\t9w0BAQEFAAOBjQAwgYkCgYEAxuZny7uyYxGVPtpie14gNQC4tT9sAvO2sVNDhuoe
\\t\\t\\t\\t\\tqIKLRpNwkHnwQmwe5OxSh9K0BPHp/DNuuVWUqvo4tniEYn3jBr7FwLYLTKojQIxj
\\t\\t\\t\\t\\t53S1UTT9EXq3eP5HsHMD0QnTuca2nlNYUDBm6ud2fQj0Jt5qLx86EbEC28N56IRv
\\t\\t\\t\\t\\tGX8CAwEAAaNQME4wHQYDVR0OBBYEFMLnbQh77j7vhGTpAhKpDhCrBsPZMB8GA1Ud
\\t\\t\\t\\t\\tIwQYMBaAFMLnbQh77j7vhGTpAhKpDhCrBsPZMAwGA1UdEwQFMAMBAf8wDQYJKoZI
\\t\\t\\t\\t\\thvcNAQENBQADgYEAB8wGrAQY0pAfwbnYSyBt4STbebeRTu1/q1ucfrtc3qsegcd5
\\t\\t\\t\\t\\tn01xTR+T2uZJwqHFPpFjr4IPORiHx3+4BWCweslPD53qBjKUPXcbMO1Revjef6Tj
\\t\\t\\t\\t\\tK3K0AuJ94fxgXVoT61Nzu/a6Lj6RhzU/Dao9mlSbJY+YSbm+ZBpsuRUQ84s=</ds:X509Certificate>
\\t\\t\\t\\t</ds:X509Data>
\\t\\t\\t</ds:KeyInfo>
\\t\\t</md:KeyDescriptor>
\\t\\t<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
<md:AssertionConsumerService Binding=\\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\\" Location=\\"https://localhost/acs/saml/\\" index=\\"1\\"/>
</md:SPSSODescriptor>
</md:EntityDescriptor>
`,
});
const samlClientClient = new keycloak.saml.Client("saml_client", {
realmId: realm.id,
clientId: samlClient.apply(samlClient => samlClient.clientId),
});
import pulumi
import pulumi_keycloak as keycloak
realm = keycloak.Realm("realm",
realm="my-realm",
enabled=True)
saml_client = keycloak.get_client_description_converter_output(realm_id=realm.id,
body="""\t<md:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" validUntil=\"2021-04-17T12:41:46Z\" cacheDuration=\"PT604800S\" entityID=\"FakeEntityId\">
<md:SPSSODescriptor AuthnRequestsSigned=\"false\" WantAssertionsSigned=\"false\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\">
<md:KeyDescriptor use=\"signing\">
\t\t\t<ds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\">
\t\t\t\t<ds:X509Data>
\t\t\t\t\t<ds:X509Certificate>MIICyDCCAjGgAwIBAgIBADANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UEBhMCdXMx
\t\t\t\t\tCzAJBgNVBAgMAklBMSQwIgYDVQQKDBt0ZXJyYWZvcm0tcHJvdmlkZXIta2V5Y2xv
\t\t\t\t\tYWsxHDAaBgNVBAMME21ycGFya2Vycy5naXRodWIuaW8xIDAeBgkqhkiG9w0BCQEW
\t\t\t\t\tEW1pY2hhZWxAcGFya2VyLmdnMB4XDTE5MDEwODE0NDYzNloXDTI5MDEwNTE0NDYz
\t\t\t\t\tNlowgYAxCzAJBgNVBAYTAnVzMQswCQYDVQQIDAJJQTEkMCIGA1UECgwbdGVycmFm
\t\t\t\t\tb3JtLXByb3ZpZGVyLWtleWNsb2FrMRwwGgYDVQQDDBNtcnBhcmtlcnMuZ2l0aHVi
\t\t\t\t\tLmlvMSAwHgYJKoZIhvcNAQkBFhFtaWNoYWVsQHBhcmtlci5nZzCBnzANBgkqhkiG
\t\t\t\t\t9w0BAQEFAAOBjQAwgYkCgYEAxuZny7uyYxGVPtpie14gNQC4tT9sAvO2sVNDhuoe
\t\t\t\t\tqIKLRpNwkHnwQmwe5OxSh9K0BPHp/DNuuVWUqvo4tniEYn3jBr7FwLYLTKojQIxj
\t\t\t\t\t53S1UTT9EXq3eP5HsHMD0QnTuca2nlNYUDBm6ud2fQj0Jt5qLx86EbEC28N56IRv
\t\t\t\t\tGX8CAwEAAaNQME4wHQYDVR0OBBYEFMLnbQh77j7vhGTpAhKpDhCrBsPZMB8GA1Ud
\t\t\t\t\tIwQYMBaAFMLnbQh77j7vhGTpAhKpDhCrBsPZMAwGA1UdEwQFMAMBAf8wDQYJKoZI
\t\t\t\t\thvcNAQENBQADgYEAB8wGrAQY0pAfwbnYSyBt4STbebeRTu1/q1ucfrtc3qsegcd5
\t\t\t\t\tn01xTR+T2uZJwqHFPpFjr4IPORiHx3+4BWCweslPD53qBjKUPXcbMO1Revjef6Tj
\t\t\t\t\tK3K0AuJ94fxgXVoT61Nzu/a6Lj6RhzU/Dao9mlSbJY+YSbm+ZBpsuRUQ84s=</ds:X509Certificate>
\t\t\t\t</ds:X509Data>
\t\t\t</ds:KeyInfo>
\t\t</md:KeyDescriptor>
\t\t<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
<md:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"https://localhost/acs/saml/\" index=\"1\"/>
</md:SPSSODescriptor>
</md:EntityDescriptor>
""")
saml_client_client = keycloak.saml.Client("saml_client",
realm_id=realm.id,
client_id=saml_client.client_id)
package main
import (
"github.com/pulumi/pulumi-keycloak/sdk/v6/go/keycloak"
"github.com/pulumi/pulumi-keycloak/sdk/v6/go/keycloak/saml"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
realm, err := keycloak.NewRealm(ctx, "realm", &keycloak.RealmArgs{
Realm: pulumi.String("my-realm"),
Enabled: pulumi.Bool(true),
})
if err != nil {
return err
}
samlClient := keycloak.GetClientDescriptionConverterOutput(ctx, keycloak.GetClientDescriptionConverterOutputArgs{
RealmId: realm.ID(),
Body: pulumi.String(`\t<md:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" validUntil=\"2021-04-17T12:41:46Z\" cacheDuration=\"PT604800S\" entityID=\"FakeEntityId\">
<md:SPSSODescriptor AuthnRequestsSigned=\"false\" WantAssertionsSigned=\"false\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\">
<md:KeyDescriptor use=\"signing\">
\t\t\t<ds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\">
\t\t\t\t<ds:X509Data>
\t\t\t\t\t<ds:X509Certificate>MIICyDCCAjGgAwIBAgIBADANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UEBhMCdXMx
\t\t\t\t\tCzAJBgNVBAgMAklBMSQwIgYDVQQKDBt0ZXJyYWZvcm0tcHJvdmlkZXIta2V5Y2xv
\t\t\t\t\tYWsxHDAaBgNVBAMME21ycGFya2Vycy5naXRodWIuaW8xIDAeBgkqhkiG9w0BCQEW
\t\t\t\t\tEW1pY2hhZWxAcGFya2VyLmdnMB4XDTE5MDEwODE0NDYzNloXDTI5MDEwNTE0NDYz
\t\t\t\t\tNlowgYAxCzAJBgNVBAYTAnVzMQswCQYDVQQIDAJJQTEkMCIGA1UECgwbdGVycmFm
\t\t\t\t\tb3JtLXByb3ZpZGVyLWtleWNsb2FrMRwwGgYDVQQDDBNtcnBhcmtlcnMuZ2l0aHVi
\t\t\t\t\tLmlvMSAwHgYJKoZIhvcNAQkBFhFtaWNoYWVsQHBhcmtlci5nZzCBnzANBgkqhkiG
\t\t\t\t\t9w0BAQEFAAOBjQAwgYkCgYEAxuZny7uyYxGVPtpie14gNQC4tT9sAvO2sVNDhuoe
\t\t\t\t\tqIKLRpNwkHnwQmwe5OxSh9K0BPHp/DNuuVWUqvo4tniEYn3jBr7FwLYLTKojQIxj
\t\t\t\t\t53S1UTT9EXq3eP5HsHMD0QnTuca2nlNYUDBm6ud2fQj0Jt5qLx86EbEC28N56IRv
\t\t\t\t\tGX8CAwEAAaNQME4wHQYDVR0OBBYEFMLnbQh77j7vhGTpAhKpDhCrBsPZMB8GA1Ud
\t\t\t\t\tIwQYMBaAFMLnbQh77j7vhGTpAhKpDhCrBsPZMAwGA1UdEwQFMAMBAf8wDQYJKoZI
\t\t\t\t\thvcNAQENBQADgYEAB8wGrAQY0pAfwbnYSyBt4STbebeRTu1/q1ucfrtc3qsegcd5
\t\t\t\t\tn01xTR+T2uZJwqHFPpFjr4IPORiHx3+4BWCweslPD53qBjKUPXcbMO1Revjef6Tj
\t\t\t\t\tK3K0AuJ94fxgXVoT61Nzu/a6Lj6RhzU/Dao9mlSbJY+YSbm+ZBpsuRUQ84s=</ds:X509Certificate>
\t\t\t\t</ds:X509Data>
\t\t\t</ds:KeyInfo>
\t\t</md:KeyDescriptor>
\t\t<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
<md:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"https://localhost/acs/saml/\" index=\"1\"/>
</md:SPSSODescriptor>
</md:EntityDescriptor>
`),
}, nil)
_, err = saml.NewClient(ctx, "saml_client", &saml.ClientArgs{
RealmId: realm.ID(),
ClientId: pulumi.String(samlClient.ApplyT(func(samlClient keycloak.GetClientDescriptionConverterResult) (*string, error) {
return &samlClient.ClientId, nil
}).(pulumi.StringPtrOutput)),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Keycloak = Pulumi.Keycloak;
return await Deployment.RunAsync(() =>
{
var realm = new Keycloak.Realm("realm", new()
{
RealmName = "my-realm",
Enabled = true,
});
var samlClient = Keycloak.GetClientDescriptionConverter.Invoke(new()
{
RealmId = realm.Id,
Body = @"\t<md:EntityDescriptor xmlns:md=\""urn:oasis:names:tc:SAML:2.0:metadata\"" validUntil=\""2021-04-17T12:41:46Z\"" cacheDuration=\""PT604800S\"" entityID=\""FakeEntityId\"">
<md:SPSSODescriptor AuthnRequestsSigned=\""false\"" WantAssertionsSigned=\""false\"" protocolSupportEnumeration=\""urn:oasis:names:tc:SAML:2.0:protocol\"">
<md:KeyDescriptor use=\""signing\"">
\t\t\t<ds:KeyInfo xmlns:ds=\""http://www.w3.org/2000/09/xmldsig#\"">
\t\t\t\t<ds:X509Data>
\t\t\t\t\t<ds:X509Certificate>MIICyDCCAjGgAwIBAgIBADANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UEBhMCdXMx
\t\t\t\t\tCzAJBgNVBAgMAklBMSQwIgYDVQQKDBt0ZXJyYWZvcm0tcHJvdmlkZXIta2V5Y2xv
\t\t\t\t\tYWsxHDAaBgNVBAMME21ycGFya2Vycy5naXRodWIuaW8xIDAeBgkqhkiG9w0BCQEW
\t\t\t\t\tEW1pY2hhZWxAcGFya2VyLmdnMB4XDTE5MDEwODE0NDYzNloXDTI5MDEwNTE0NDYz
\t\t\t\t\tNlowgYAxCzAJBgNVBAYTAnVzMQswCQYDVQQIDAJJQTEkMCIGA1UECgwbdGVycmFm
\t\t\t\t\tb3JtLXByb3ZpZGVyLWtleWNsb2FrMRwwGgYDVQQDDBNtcnBhcmtlcnMuZ2l0aHVi
\t\t\t\t\tLmlvMSAwHgYJKoZIhvcNAQkBFhFtaWNoYWVsQHBhcmtlci5nZzCBnzANBgkqhkiG
\t\t\t\t\t9w0BAQEFAAOBjQAwgYkCgYEAxuZny7uyYxGVPtpie14gNQC4tT9sAvO2sVNDhuoe
\t\t\t\t\tqIKLRpNwkHnwQmwe5OxSh9K0BPHp/DNuuVWUqvo4tniEYn3jBr7FwLYLTKojQIxj
\t\t\t\t\t53S1UTT9EXq3eP5HsHMD0QnTuca2nlNYUDBm6ud2fQj0Jt5qLx86EbEC28N56IRv
\t\t\t\t\tGX8CAwEAAaNQME4wHQYDVR0OBBYEFMLnbQh77j7vhGTpAhKpDhCrBsPZMB8GA1Ud
\t\t\t\t\tIwQYMBaAFMLnbQh77j7vhGTpAhKpDhCrBsPZMAwGA1UdEwQFMAMBAf8wDQYJKoZI
\t\t\t\t\thvcNAQENBQADgYEAB8wGrAQY0pAfwbnYSyBt4STbebeRTu1/q1ucfrtc3qsegcd5
\t\t\t\t\tn01xTR+T2uZJwqHFPpFjr4IPORiHx3+4BWCweslPD53qBjKUPXcbMO1Revjef6Tj
\t\t\t\t\tK3K0AuJ94fxgXVoT61Nzu/a6Lj6RhzU/Dao9mlSbJY+YSbm+ZBpsuRUQ84s=</ds:X509Certificate>
\t\t\t\t</ds:X509Data>
\t\t\t</ds:KeyInfo>
\t\t</md:KeyDescriptor>
\t\t<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
<md:AssertionConsumerService Binding=\""urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\"" Location=\""https://localhost/acs/saml/\"" index=\""1\""/>
</md:SPSSODescriptor>
</md:EntityDescriptor>
",
});
var samlClientClient = new Keycloak.Saml.Client("saml_client", new()
{
RealmId = realm.Id,
ClientId = samlClient.Apply(getClientDescriptionConverterResult => getClientDescriptionConverterResult.ClientId),
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.keycloak.Realm;
import com.pulumi.keycloak.RealmArgs;
import com.pulumi.keycloak.KeycloakFunctions;
import com.pulumi.keycloak.inputs.GetClientDescriptionConverterArgs;
import com.pulumi.keycloak.saml.Client;
import com.pulumi.keycloak.saml.ClientArgs;
import java.util.List;
import java.util.ArrayList;
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 realm = new Realm("realm", RealmArgs.builder()
.realm("my-realm")
.enabled(true)
.build());
final var samlClient = KeycloakFunctions.getClientDescriptionConverter(GetClientDescriptionConverterArgs.builder()
.realmId(realm.id())
.body("""
\t<md:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" validUntil=\"2021-04-17T12:41:46Z\" cacheDuration=\"PT604800S\" entityID=\"FakeEntityId\">
<md:SPSSODescriptor AuthnRequestsSigned=\"false\" WantAssertionsSigned=\"false\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\">
<md:KeyDescriptor use=\"signing\">
\t\t\t<ds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\">
\t\t\t\t<ds:X509Data>
\t\t\t\t\t<ds:X509Certificate>MIICyDCCAjGgAwIBAgIBADANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UEBhMCdXMx
\t\t\t\t\tCzAJBgNVBAgMAklBMSQwIgYDVQQKDBt0ZXJyYWZvcm0tcHJvdmlkZXIta2V5Y2xv
\t\t\t\t\tYWsxHDAaBgNVBAMME21ycGFya2Vycy5naXRodWIuaW8xIDAeBgkqhkiG9w0BCQEW
\t\t\t\t\tEW1pY2hhZWxAcGFya2VyLmdnMB4XDTE5MDEwODE0NDYzNloXDTI5MDEwNTE0NDYz
\t\t\t\t\tNlowgYAxCzAJBgNVBAYTAnVzMQswCQYDVQQIDAJJQTEkMCIGA1UECgwbdGVycmFm
\t\t\t\t\tb3JtLXByb3ZpZGVyLWtleWNsb2FrMRwwGgYDVQQDDBNtcnBhcmtlcnMuZ2l0aHVi
\t\t\t\t\tLmlvMSAwHgYJKoZIhvcNAQkBFhFtaWNoYWVsQHBhcmtlci5nZzCBnzANBgkqhkiG
\t\t\t\t\t9w0BAQEFAAOBjQAwgYkCgYEAxuZny7uyYxGVPtpie14gNQC4tT9sAvO2sVNDhuoe
\t\t\t\t\tqIKLRpNwkHnwQmwe5OxSh9K0BPHp/DNuuVWUqvo4tniEYn3jBr7FwLYLTKojQIxj
\t\t\t\t\t53S1UTT9EXq3eP5HsHMD0QnTuca2nlNYUDBm6ud2fQj0Jt5qLx86EbEC28N56IRv
\t\t\t\t\tGX8CAwEAAaNQME4wHQYDVR0OBBYEFMLnbQh77j7vhGTpAhKpDhCrBsPZMB8GA1Ud
\t\t\t\t\tIwQYMBaAFMLnbQh77j7vhGTpAhKpDhCrBsPZMAwGA1UdEwQFMAMBAf8wDQYJKoZI
\t\t\t\t\thvcNAQENBQADgYEAB8wGrAQY0pAfwbnYSyBt4STbebeRTu1/q1ucfrtc3qsegcd5
\t\t\t\t\tn01xTR+T2uZJwqHFPpFjr4IPORiHx3+4BWCweslPD53qBjKUPXcbMO1Revjef6Tj
\t\t\t\t\tK3K0AuJ94fxgXVoT61Nzu/a6Lj6RhzU/Dao9mlSbJY+YSbm+ZBpsuRUQ84s=</ds:X509Certificate>
\t\t\t\t</ds:X509Data>
\t\t\t</ds:KeyInfo>
\t\t</md:KeyDescriptor>
\t\t<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
<md:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"https://localhost/acs/saml/\" index=\"1\"/>
</md:SPSSODescriptor>
</md:EntityDescriptor>
""")
.build());
var samlClientClient = new Client("samlClientClient", ClientArgs.builder()
.realmId(realm.id())
.clientId(samlClient.applyValue(_samlClient -> _samlClient.clientId()))
.build());
}
}
resources:
realm:
type: keycloak:Realm
properties:
realm: my-realm
enabled: true
samlClientClient:
type: keycloak:saml:Client
name: saml_client
properties:
realmId: ${realm.id}
clientId: ${samlClient.clientId}
variables:
samlClient:
fn::invoke:
function: keycloak:getClientDescriptionConverter
arguments:
realmId: ${realm.id}
body: |
\t<md:EntityDescriptor xmlns:md=\"urn:oasis:names:tc:SAML:2.0:metadata\" validUntil=\"2021-04-17T12:41:46Z\" cacheDuration=\"PT604800S\" entityID=\"FakeEntityId\">
<md:SPSSODescriptor AuthnRequestsSigned=\"false\" WantAssertionsSigned=\"false\" protocolSupportEnumeration=\"urn:oasis:names:tc:SAML:2.0:protocol\">
<md:KeyDescriptor use=\"signing\">
\t\t\t<ds:KeyInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\">
\t\t\t\t<ds:X509Data>
\t\t\t\t\t<ds:X509Certificate>MIICyDCCAjGgAwIBAgIBADANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UEBhMCdXMx
\t\t\t\t\tCzAJBgNVBAgMAklBMSQwIgYDVQQKDBt0ZXJyYWZvcm0tcHJvdmlkZXIta2V5Y2xv
\t\t\t\t\tYWsxHDAaBgNVBAMME21ycGFya2Vycy5naXRodWIuaW8xIDAeBgkqhkiG9w0BCQEW
\t\t\t\t\tEW1pY2hhZWxAcGFya2VyLmdnMB4XDTE5MDEwODE0NDYzNloXDTI5MDEwNTE0NDYz
\t\t\t\t\tNlowgYAxCzAJBgNVBAYTAnVzMQswCQYDVQQIDAJJQTEkMCIGA1UECgwbdGVycmFm
\t\t\t\t\tb3JtLXByb3ZpZGVyLWtleWNsb2FrMRwwGgYDVQQDDBNtcnBhcmtlcnMuZ2l0aHVi
\t\t\t\t\tLmlvMSAwHgYJKoZIhvcNAQkBFhFtaWNoYWVsQHBhcmtlci5nZzCBnzANBgkqhkiG
\t\t\t\t\t9w0BAQEFAAOBjQAwgYkCgYEAxuZny7uyYxGVPtpie14gNQC4tT9sAvO2sVNDhuoe
\t\t\t\t\tqIKLRpNwkHnwQmwe5OxSh9K0BPHp/DNuuVWUqvo4tniEYn3jBr7FwLYLTKojQIxj
\t\t\t\t\t53S1UTT9EXq3eP5HsHMD0QnTuca2nlNYUDBm6ud2fQj0Jt5qLx86EbEC28N56IRv
\t\t\t\t\tGX8CAwEAAaNQME4wHQYDVR0OBBYEFMLnbQh77j7vhGTpAhKpDhCrBsPZMB8GA1Ud
\t\t\t\t\tIwQYMBaAFMLnbQh77j7vhGTpAhKpDhCrBsPZMAwGA1UdEwQFMAMBAf8wDQYJKoZI
\t\t\t\t\thvcNAQENBQADgYEAB8wGrAQY0pAfwbnYSyBt4STbebeRTu1/q1ucfrtc3qsegcd5
\t\t\t\t\tn01xTR+T2uZJwqHFPpFjr4IPORiHx3+4BWCweslPD53qBjKUPXcbMO1Revjef6Tj
\t\t\t\t\tK3K0AuJ94fxgXVoT61Nzu/a6Lj6RhzU/Dao9mlSbJY+YSbm+ZBpsuRUQ84s=</ds:X509Certificate>
\t\t\t\t</ds:X509Data>
\t\t\t</ds:KeyInfo>
\t\t</md:KeyDescriptor>
\t\t<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
<md:AssertionConsumerService Binding=\"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST\" Location=\"https://localhost/acs/saml/\" index=\"1\"/>
</md:SPSSODescriptor>
</md:EntityDescriptor>
Using getClientDescriptionConverter
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getClientDescriptionConverter(args: GetClientDescriptionConverterArgs, opts?: InvokeOptions): Promise<GetClientDescriptionConverterResult>
function getClientDescriptionConverterOutput(args: GetClientDescriptionConverterOutputArgs, opts?: InvokeOptions): Output<GetClientDescriptionConverterResult>def get_client_description_converter(body: Optional[str] = None,
realm_id: Optional[str] = None,
opts: Optional[InvokeOptions] = None) -> GetClientDescriptionConverterResult
def get_client_description_converter_output(body: Optional[pulumi.Input[str]] = None,
realm_id: Optional[pulumi.Input[str]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetClientDescriptionConverterResult]func GetClientDescriptionConverter(ctx *Context, args *GetClientDescriptionConverterArgs, opts ...InvokeOption) (*GetClientDescriptionConverterResult, error)
func GetClientDescriptionConverterOutput(ctx *Context, args *GetClientDescriptionConverterOutputArgs, opts ...InvokeOption) GetClientDescriptionConverterResultOutput> Note: This function is named GetClientDescriptionConverter in the Go SDK.
public static class GetClientDescriptionConverter
{
public static Task<GetClientDescriptionConverterResult> InvokeAsync(GetClientDescriptionConverterArgs args, InvokeOptions? opts = null)
public static Output<GetClientDescriptionConverterResult> Invoke(GetClientDescriptionConverterInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetClientDescriptionConverterResult> getClientDescriptionConverter(GetClientDescriptionConverterArgs args, InvokeOptions options)
public static Output<GetClientDescriptionConverterResult> getClientDescriptionConverter(GetClientDescriptionConverterArgs args, InvokeOptions options)
fn::invoke:
function: keycloak:index/getClientDescriptionConverter:getClientDescriptionConverter
arguments:
# arguments dictionaryThe following arguments are supported:
getClientDescriptionConverter Result
The following output properties are available:
- Access Dictionary<string, string>
- Admin
Url string - Always
Display boolIn Console - Attributes Dictionary<string, string>
- Authentication
Flow Dictionary<string, string>Binding Overrides - bool
- Dictionary<string, string>
- Base
Url string - Bearer
Only bool - Body string
- Client
Authenticator stringType - Client
Id string - Consent
Required string - Default
Client List<string>Scopes - Default
Roles List<string> - Description string
- Direct
Access boolGrants Enabled - Enabled bool
- Frontchannel
Logout bool - Full
Scope boolAllowed - Id string
- The provider-assigned unique ID for this managed resource.
- Implicit
Flow boolEnabled - Name string
- Not
Before int - Optional
Client List<string>Scopes - Origin string
- Protocol string
- Protocol
Mappers List<GetClient Description Converter Protocol Mapper> - Public
Client bool - Realm
Id string - Redirect
Uris List<string> - Registered
Nodes Dictionary<string, string> - Registration
Access stringToken - Root
Url string - Secret string
- Service
Accounts boolEnabled - Standard
Flow boolEnabled - Surrogate
Auth boolRequired - Web
Origins List<string>
- Access map[string]string
- Admin
Url string - Always
Display boolIn Console - Attributes map[string]string
- Authentication
Flow map[string]stringBinding Overrides - bool
- map[string]string
- Base
Url string - Bearer
Only bool - Body string
- Client
Authenticator stringType - Client
Id string - Consent
Required string - Default
Client []stringScopes - Default
Roles []string - Description string
- Direct
Access boolGrants Enabled - Enabled bool
- Frontchannel
Logout bool - Full
Scope boolAllowed - Id string
- The provider-assigned unique ID for this managed resource.
- Implicit
Flow boolEnabled - Name string
- Not
Before int - Optional
Client []stringScopes - Origin string
- Protocol string
- Protocol
Mappers []GetClient Description Converter Protocol Mapper - Public
Client bool - Realm
Id string - Redirect
Uris []string - Registered
Nodes map[string]string - Registration
Access stringToken - Root
Url string - Secret string
- Service
Accounts boolEnabled - Standard
Flow boolEnabled - Surrogate
Auth boolRequired - Web
Origins []string
- access Map<String,String>
- admin
Url String - always
Display BooleanIn Console - attributes Map<String,String>
- authentication
Flow Map<String,String>Binding Overrides - Boolean
- Map<String,String>
- base
Url String - bearer
Only Boolean - body String
- client
Authenticator StringType - client
Id String - consent
Required String - default
Client List<String>Scopes - default
Roles List<String> - description String
- direct
Access BooleanGrants Enabled - enabled Boolean
- frontchannel
Logout Boolean - full
Scope BooleanAllowed - id String
- The provider-assigned unique ID for this managed resource.
- implicit
Flow BooleanEnabled - name String
- not
Before Integer - optional
Client List<String>Scopes - origin String
- protocol String
- protocol
Mappers List<GetClient Description Converter Protocol Mapper> - public
Client Boolean - realm
Id String - redirect
Uris List<String> - registered
Nodes Map<String,String> - registration
Access StringToken - root
Url String - secret String
- service
Accounts BooleanEnabled - standard
Flow BooleanEnabled - surrogate
Auth BooleanRequired - web
Origins List<String>
- access {[key: string]: string}
- admin
Url string - always
Display booleanIn Console - attributes {[key: string]: string}
- authentication
Flow {[key: string]: string}Binding Overrides - boolean
- {[key: string]: string}
- base
Url string - bearer
Only boolean - body string
- client
Authenticator stringType - client
Id string - consent
Required string - default
Client string[]Scopes - default
Roles string[] - description string
- direct
Access booleanGrants Enabled - enabled boolean
- frontchannel
Logout boolean - full
Scope booleanAllowed - id string
- The provider-assigned unique ID for this managed resource.
- implicit
Flow booleanEnabled - name string
- not
Before number - optional
Client string[]Scopes - origin string
- protocol string
- protocol
Mappers GetClient Description Converter Protocol Mapper[] - public
Client boolean - realm
Id string - redirect
Uris string[] - registered
Nodes {[key: string]: string} - registration
Access stringToken - root
Url string - secret string
- service
Accounts booleanEnabled - standard
Flow booleanEnabled - surrogate
Auth booleanRequired - web
Origins string[]
- access Mapping[str, str]
- admin_
url str - always_
display_ boolin_ console - attributes Mapping[str, str]
- authentication_
flow_ Mapping[str, str]binding_ overrides - bool
- Mapping[str, str]
- base_
url str - bearer_
only bool - body str
- client_
authenticator_ strtype - client_
id str - consent_
required str - default_
client_ Sequence[str]scopes - default_
roles Sequence[str] - description str
- direct_
access_ boolgrants_ enabled - enabled bool
- frontchannel_
logout bool - full_
scope_ boolallowed - id str
- The provider-assigned unique ID for this managed resource.
- implicit_
flow_ boolenabled - name str
- not_
before int - optional_
client_ Sequence[str]scopes - origin str
- protocol str
- protocol_
mappers Sequence[GetClient Description Converter Protocol Mapper] - public_
client bool - realm_
id str - redirect_
uris Sequence[str] - registered_
nodes Mapping[str, str] - registration_
access_ strtoken - root_
url str - secret str
- service_
accounts_ boolenabled - standard_
flow_ boolenabled - surrogate_
auth_ boolrequired - web_
origins Sequence[str]
- access Map<String>
- admin
Url String - always
Display BooleanIn Console - attributes Map<String>
- authentication
Flow Map<String>Binding Overrides - Boolean
- Map<String>
- base
Url String - bearer
Only Boolean - body String
- client
Authenticator StringType - client
Id String - consent
Required String - default
Client List<String>Scopes - default
Roles List<String> - description String
- direct
Access BooleanGrants Enabled - enabled Boolean
- frontchannel
Logout Boolean - full
Scope BooleanAllowed - id String
- The provider-assigned unique ID for this managed resource.
- implicit
Flow BooleanEnabled - name String
- not
Before Number - optional
Client List<String>Scopes - origin String
- protocol String
- protocol
Mappers List<Property Map> - public
Client Boolean - realm
Id String - redirect
Uris List<String> - registered
Nodes Map<String> - registration
Access StringToken - root
Url String - secret String
- service
Accounts BooleanEnabled - standard
Flow BooleanEnabled - surrogate
Auth BooleanRequired - web
Origins List<String>
Supporting Types
GetClientDescriptionConverterProtocolMapper
- Config Dictionary<string, string>
- Id string
- Name string
- Protocol string
- Protocol
Mapper string
- Config map[string]string
- Id string
- Name string
- Protocol string
- Protocol
Mapper string
- config Map<String,String>
- id String
- name String
- protocol String
- protocol
Mapper String
- config {[key: string]: string}
- id string
- name string
- protocol string
- protocol
Mapper string
- config Mapping[str, str]
- id str
- name str
- protocol str
- protocol_
mapper str
- config Map<String>
- id String
- name String
- protocol String
- protocol
Mapper String
Package Details
- Repository
- Keycloak pulumi/pulumi-keycloak
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
keycloakTerraform Provider.
Viewing docs for Keycloak v6.10.0
published on Saturday, Feb 21, 2026 by Pulumi
published on Saturday, Feb 21, 2026 by Pulumi
