@pulumi/keycloak 5.3.0 → 5.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attributeImporterIdentityProviderMapper.d.ts +46 -63
- package/attributeImporterIdentityProviderMapper.js +25 -33
- package/attributeImporterIdentityProviderMapper.js.map +1 -1
- package/attributeToRoleIdentityMapper.d.ts +10 -2
- package/attributeToRoleIdentityMapper.js +10 -2
- package/attributeToRoleIdentityMapper.js.map +1 -1
- package/authentication/bindings.d.ts +2 -0
- package/authentication/bindings.js +2 -0
- package/authentication/bindings.js.map +1 -1
- package/authentication/execution.d.ts +8 -2
- package/authentication/execution.js +8 -2
- package/authentication/execution.js.map +1 -1
- package/authentication/executionConfig.d.ts +12 -2
- package/authentication/executionConfig.js +12 -2
- package/authentication/executionConfig.js.map +1 -1
- package/authentication/flow.d.ts +16 -2
- package/authentication/flow.js +16 -2
- package/authentication/flow.js.map +1 -1
- package/authentication/subflow.d.ts +18 -2
- package/authentication/subflow.js +18 -2
- package/authentication/subflow.js.map +1 -1
- package/customIdentityProviderMapping.d.ts +13 -5
- package/customIdentityProviderMapping.js +10 -2
- package/customIdentityProviderMapping.js.map +1 -1
- package/customUserFederation.d.ts +51 -50
- package/customUserFederation.js +27 -14
- package/customUserFederation.js.map +1 -1
- package/defaultGroups.d.ts +19 -27
- package/defaultGroups.js +19 -9
- package/defaultGroups.js.map +1 -1
- package/defaultRoles.d.ts +13 -2
- package/defaultRoles.js +13 -2
- package/defaultRoles.js.map +1 -1
- package/genericClientProtocolMapper.d.ts +40 -37
- package/genericClientProtocolMapper.js +25 -13
- package/genericClientProtocolMapper.js.map +1 -1
- package/genericClientRoleMapper.d.ts +22 -2
- package/genericClientRoleMapper.js +22 -2
- package/genericClientRoleMapper.js.map +1 -1
- package/genericProtocolMapper.d.ts +8 -2
- package/genericProtocolMapper.js +8 -2
- package/genericProtocolMapper.js.map +1 -1
- package/genericRoleMapper.d.ts +22 -2
- package/genericRoleMapper.js +22 -2
- package/genericRoleMapper.js.map +1 -1
- package/getAuthenticationExecution.d.ts +4 -0
- package/getAuthenticationExecution.js +4 -0
- package/getAuthenticationExecution.js.map +1 -1
- package/getAuthenticationFlow.d.ts +4 -0
- package/getAuthenticationFlow.js +4 -0
- package/getAuthenticationFlow.js.map +1 -1
- package/getClientDescriptionConverter.d.ts +4 -0
- package/getClientDescriptionConverter.js +4 -0
- package/getClientDescriptionConverter.js.map +1 -1
- package/getGroup.d.ts +4 -62
- package/getGroup.js +4 -50
- package/getGroup.js.map +1 -1
- package/getRealm.d.ts +32 -10
- package/getRealm.js +32 -4
- package/getRealm.js.map +1 -1
- package/getRealmKeys.d.ts +8 -28
- package/getRealmKeys.js +8 -4
- package/getRealmKeys.js.map +1 -1
- package/getRole.d.ts +4 -65
- package/getRole.js +4 -44
- package/getRole.js.map +1 -1
- package/getUser.d.ts +4 -0
- package/getUser.js +4 -0
- package/getUser.js.map +1 -1
- package/getUserRealmRoles.d.ts +4 -0
- package/getUserRealmRoles.js +4 -0
- package/getUserRealmRoles.js.map +1 -1
- package/group.d.ts +35 -58
- package/group.js +35 -16
- package/group.js.map +1 -1
- package/groupMemberships.d.ts +27 -43
- package/groupMemberships.js +27 -16
- package/groupMemberships.js.map +1 -1
- package/groupPermissions.d.ts +13 -0
- package/groupPermissions.js +13 -0
- package/groupPermissions.js.map +1 -1
- package/groupRoles.d.ts +32 -91
- package/groupRoles.js +32 -55
- package/groupRoles.js.map +1 -1
- package/hardcodedAttributeIdentityProviderMapper.d.ts +2 -0
- package/hardcodedAttributeIdentityProviderMapper.js +2 -0
- package/hardcodedAttributeIdentityProviderMapper.js.map +1 -1
- package/hardcodedRoleIdentityMapper.d.ts +2 -0
- package/hardcodedRoleIdentityMapper.js +2 -0
- package/hardcodedRoleIdentityMapper.js.map +1 -1
- package/identityProviderTokenExchangeScopePermission.d.ts +10 -2
- package/identityProviderTokenExchangeScopePermission.js +10 -2
- package/identityProviderTokenExchangeScopePermission.js.map +1 -1
- package/ldap/customMapper.d.ts +10 -2
- package/ldap/customMapper.js +10 -2
- package/ldap/customMapper.js.map +1 -1
- package/ldap/fullNameMapper.d.ts +41 -54
- package/ldap/fullNameMapper.js +32 -18
- package/ldap/fullNameMapper.js.map +1 -1
- package/ldap/groupMapper.d.ts +55 -164
- package/ldap/groupMapper.js +46 -20
- package/ldap/groupMapper.js.map +1 -1
- package/ldap/hardcodedAttributeMapper.d.ts +10 -2
- package/ldap/hardcodedAttributeMapper.js +10 -2
- package/ldap/hardcodedAttributeMapper.js.map +1 -1
- package/ldap/hardcodedGroupMapper.d.ts +10 -2
- package/ldap/hardcodedGroupMapper.js +10 -2
- package/ldap/hardcodedGroupMapper.js.map +1 -1
- package/ldap/hardcodedRoleMapper.d.ts +29 -64
- package/ldap/hardcodedRoleMapper.js +17 -52
- package/ldap/hardcodedRoleMapper.js.map +1 -1
- package/ldap/msadLdsUserAccountControlMapper.d.ts +10 -2
- package/ldap/msadLdsUserAccountControlMapper.js +10 -2
- package/ldap/msadLdsUserAccountControlMapper.js.map +1 -1
- package/ldap/msadUserAccountControlMapper.d.ts +34 -32
- package/ldap/msadUserAccountControlMapper.js +25 -14
- package/ldap/msadUserAccountControlMapper.js.map +1 -1
- package/ldap/roleMapper.d.ts +10 -2
- package/ldap/roleMapper.js +10 -2
- package/ldap/roleMapper.js.map +1 -1
- package/ldap/userAttributeMapper.d.ts +60 -45
- package/ldap/userAttributeMapper.js +30 -15
- package/ldap/userAttributeMapper.js.map +1 -1
- package/ldap/userFederation.d.ts +125 -95
- package/ldap/userFederation.js +53 -20
- package/ldap/userFederation.js.map +1 -1
- package/oidc/googleIdentityProvider.d.ts +8 -2
- package/oidc/googleIdentityProvider.js +8 -2
- package/oidc/googleIdentityProvider.js.map +1 -1
- package/oidc/identityProvider.d.ts +8 -2
- package/oidc/identityProvider.js +8 -2
- package/oidc/identityProvider.js.map +1 -1
- package/openid/audienceProtocolMapper.d.ts +62 -45
- package/openid/audienceProtocolMapper.js +38 -21
- package/openid/audienceProtocolMapper.js.map +1 -1
- package/openid/audienceResolveProtocolMapper.d.ts +17 -3
- package/openid/audienceResolveProtocolMapper.js +17 -3
- package/openid/audienceResolveProtocolMapper.js.map +1 -1
- package/openid/audienceResolveProtocolMappter.d.ts +17 -3
- package/openid/audienceResolveProtocolMappter.js +17 -3
- package/openid/audienceResolveProtocolMappter.js.map +1 -1
- package/openid/client.d.ts +48 -431
- package/openid/client.js +48 -14
- package/openid/client.js.map +1 -1
- package/openid/clientAuthorizationPermission.d.ts +6 -2
- package/openid/clientAuthorizationPermission.js +6 -2
- package/openid/clientAuthorizationPermission.js.map +1 -1
- package/openid/clientDefaultScopes.d.ts +17 -33
- package/openid/clientDefaultScopes.js +17 -6
- package/openid/clientDefaultScopes.js.map +1 -1
- package/openid/clientOptionalScopes.d.ts +17 -34
- package/openid/clientOptionalScopes.js +17 -7
- package/openid/clientOptionalScopes.js.map +1 -1
- package/openid/clientPolicy.d.ts +2 -0
- package/openid/clientPolicy.js +2 -0
- package/openid/clientPolicy.js.map +1 -1
- package/openid/clientScope.d.ts +27 -67
- package/openid/clientScope.js +27 -13
- package/openid/clientScope.js.map +1 -1
- package/openid/clientServiceAccountRealmRole.d.ts +8 -2
- package/openid/clientServiceAccountRealmRole.js +8 -2
- package/openid/clientServiceAccountRealmRole.js.map +1 -1
- package/openid/clientServiceAccountRole.d.ts +8 -2
- package/openid/clientServiceAccountRole.js +8 -2
- package/openid/clientServiceAccountRole.js.map +1 -1
- package/openid/fullNameProtocolMapper.d.ts +49 -61
- package/openid/fullNameProtocolMapper.js +37 -22
- package/openid/fullNameProtocolMapper.js.map +1 -1
- package/openid/getClient.d.ts +32 -14
- package/openid/getClient.js +32 -2
- package/openid/getClient.js.map +1 -1
- package/openid/getClientAuthorizationPolicy.d.ts +4 -0
- package/openid/getClientAuthorizationPolicy.js +4 -0
- package/openid/getClientAuthorizationPolicy.js.map +1 -1
- package/openid/getClientScope.d.ts +4 -0
- package/openid/getClientScope.js +4 -0
- package/openid/getClientScope.js.map +1 -1
- package/openid/getClientServiceAccountUser.d.ts +4 -0
- package/openid/getClientServiceAccountUser.js +4 -0
- package/openid/getClientServiceAccountUser.js.map +1 -1
- package/openid/groupMembershipProtocolMapper.d.ts +53 -81
- package/openid/groupMembershipProtocolMapper.js +41 -24
- package/openid/groupMembershipProtocolMapper.js.map +1 -1
- package/openid/hardcodedClaimProtocolMapper.d.ts +66 -66
- package/openid/hardcodedClaimProtocolMapper.js +42 -24
- package/openid/hardcodedClaimProtocolMapper.js.map +1 -1
- package/openid/hardcodedRoleProtocolMapper.d.ts +48 -43
- package/openid/hardcodedRoleProtocolMapper.js +36 -22
- package/openid/hardcodedRoleProtocolMapper.js.map +1 -1
- package/openid/scriptProtocolMapper.d.ts +17 -3
- package/openid/scriptProtocolMapper.js +17 -3
- package/openid/scriptProtocolMapper.js.map +1 -1
- package/openid/userAttributeProtocolMapper.d.ts +73 -72
- package/openid/userAttributeProtocolMapper.js +43 -24
- package/openid/userAttributeProtocolMapper.js.map +1 -1
- package/openid/userClientRoleProtocolMapper.d.ts +17 -3
- package/openid/userClientRoleProtocolMapper.js +17 -3
- package/openid/userClientRoleProtocolMapper.js.map +1 -1
- package/openid/userPropertyProtocolMapper.d.ts +66 -67
- package/openid/userPropertyProtocolMapper.js +42 -25
- package/openid/userPropertyProtocolMapper.js.map +1 -1
- package/openid/userRealmRoleProtocolMapper.d.ts +73 -63
- package/openid/userRealmRoleProtocolMapper.js +43 -24
- package/openid/userRealmRoleProtocolMapper.js.map +1 -1
- package/openid/userSessionNoteProtocolMapper.d.ts +17 -3
- package/openid/userSessionNoteProtocolMapper.js +17 -3
- package/openid/userSessionNoteProtocolMapper.js.map +1 -1
- package/package.json +1 -1
- package/realm.d.ts +30 -509
- package/realm.js +0 -83
- package/realm.js.map +1 -1
- package/realmEvents.d.ts +20 -74
- package/realmEvents.js +20 -11
- package/realmEvents.js.map +1 -1
- package/realmKeystoreAesGenerated.d.ts +8 -2
- package/realmKeystoreAesGenerated.js +8 -2
- package/realmKeystoreAesGenerated.js.map +1 -1
- package/realmKeystoreEcdsaGenerated.d.ts +8 -2
- package/realmKeystoreEcdsaGenerated.js +8 -2
- package/realmKeystoreEcdsaGenerated.js.map +1 -1
- package/realmKeystoreHmacGenerated.d.ts +8 -2
- package/realmKeystoreHmacGenerated.js +8 -2
- package/realmKeystoreHmacGenerated.js.map +1 -1
- package/realmKeystoreJavaGenerated.d.ts +8 -2
- package/realmKeystoreJavaGenerated.js +8 -2
- package/realmKeystoreJavaGenerated.js.map +1 -1
- package/realmKeystoreRsa.d.ts +6 -2
- package/realmKeystoreRsa.js +6 -2
- package/realmKeystoreRsa.js.map +1 -1
- package/realmKeystoreRsaGenerated.d.ts +8 -2
- package/realmKeystoreRsaGenerated.js +8 -2
- package/realmKeystoreRsaGenerated.js.map +1 -1
- package/realmUserProfile.d.ts +2 -0
- package/realmUserProfile.js +2 -0
- package/realmUserProfile.js.map +1 -1
- package/requiredAction.d.ts +8 -2
- package/requiredAction.js +8 -2
- package/requiredAction.js.map +1 -1
- package/role.d.ts +58 -125
- package/role.js +58 -71
- package/role.js.map +1 -1
- package/saml/client.d.ts +46 -327
- package/saml/client.js +46 -12
- package/saml/client.js.map +1 -1
- package/saml/clientDefaultScope.d.ts +5 -1
- package/saml/clientDefaultScope.js +5 -1
- package/saml/clientDefaultScope.js.map +1 -1
- package/saml/clientScope.d.ts +10 -2
- package/saml/clientScope.js +10 -2
- package/saml/clientScope.js.map +1 -1
- package/saml/getClient.d.ts +4 -0
- package/saml/getClient.js +4 -0
- package/saml/getClient.js.map +1 -1
- package/saml/getClientInstallationProvider.d.ts +4 -0
- package/saml/getClientInstallationProvider.js +4 -0
- package/saml/getClientInstallationProvider.js.map +1 -1
- package/saml/identityProvider.d.ts +163 -117
- package/saml/identityProvider.js +52 -21
- package/saml/identityProvider.js.map +1 -1
- package/saml/scriptProtocolMapper.d.ts +13 -3
- package/saml/scriptProtocolMapper.js +13 -3
- package/saml/scriptProtocolMapper.js.map +1 -1
- package/saml/userAttributeProtocolMapper.d.ts +32 -91
- package/saml/userAttributeProtocolMapper.js +32 -19
- package/saml/userAttributeProtocolMapper.js.map +1 -1
- package/saml/userPropertyProtocolMapper.d.ts +32 -91
- package/saml/userPropertyProtocolMapper.js +32 -19
- package/saml/userPropertyProtocolMapper.js.map +1 -1
- package/types/input.d.ts +74 -183
- package/types/output.d.ts +44 -207
- package/user.d.ts +36 -112
- package/user.js +36 -22
- package/user.js.map +1 -1
- package/userGroups.d.ts +9 -1
- package/userGroups.js +9 -1
- package/userGroups.js.map +1 -1
- package/userRoles.d.ts +11 -2
- package/userRoles.js +11 -2
- package/userRoles.js.map +1 -1
- package/userTemplateImporterIdentityProviderMapper.d.ts +10 -2
- package/userTemplateImporterIdentityProviderMapper.js +10 -2
- package/userTemplateImporterIdentityProviderMapper.js.map +1 -1
- package/usersPermissions.d.ts +10 -25
- package/usersPermissions.js +10 -25
- package/usersPermissions.js.map +1 -1
package/saml/client.d.ts
CHANGED
|
@@ -2,40 +2,74 @@ import * as pulumi from "@pulumi/pulumi";
|
|
|
2
2
|
import * as inputs from "../types/input";
|
|
3
3
|
import * as outputs from "../types/output";
|
|
4
4
|
/**
|
|
5
|
+
* ## # keycloak.saml.Client
|
|
6
|
+
*
|
|
5
7
|
* Allows for creating and managing Keycloak clients that use the SAML protocol.
|
|
6
8
|
*
|
|
7
|
-
* Clients are entities that can use Keycloak for user authentication. Typically,
|
|
8
|
-
*
|
|
9
|
+
* Clients are entities that can use Keycloak for user authentication. Typically,
|
|
10
|
+
* clients are applications that redirect users to Keycloak for authentication
|
|
11
|
+
* in order to take advantage of Keycloak's user sessions for SSO.
|
|
9
12
|
*
|
|
10
|
-
*
|
|
13
|
+
* ### Example Usage
|
|
11
14
|
*
|
|
15
|
+
* <!--Start PulumiCodeChooser -->
|
|
12
16
|
* ```typescript
|
|
13
17
|
* import * as pulumi from "@pulumi/pulumi";
|
|
14
18
|
* import * as fs from "fs";
|
|
15
19
|
* import * as keycloak from "@pulumi/keycloak";
|
|
16
20
|
*
|
|
17
21
|
* const realm = new keycloak.Realm("realm", {
|
|
18
|
-
* realm: "my-realm",
|
|
19
22
|
* enabled: true,
|
|
23
|
+
* realm: "my-realm",
|
|
20
24
|
* });
|
|
21
25
|
* const samlClient = new keycloak.saml.Client("samlClient", {
|
|
26
|
+
* clientId: "test-saml-client",
|
|
27
|
+
* includeAuthnStatement: true,
|
|
22
28
|
* realmId: realm.id,
|
|
23
|
-
* clientId: "saml-client",
|
|
24
|
-
* signDocuments: false,
|
|
25
29
|
* signAssertions: true,
|
|
26
|
-
*
|
|
30
|
+
* signDocuments: false,
|
|
27
31
|
* signingCertificate: fs.readFileSync("saml-cert.pem", "utf8"),
|
|
28
32
|
* signingPrivateKey: fs.readFileSync("saml-key.pem", "utf8"),
|
|
29
33
|
* });
|
|
30
34
|
* ```
|
|
35
|
+
* <!--End PulumiCodeChooser -->
|
|
31
36
|
*
|
|
32
|
-
*
|
|
37
|
+
* ### Argument Reference
|
|
33
38
|
*
|
|
34
|
-
*
|
|
39
|
+
* The following arguments are supported:
|
|
35
40
|
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
41
|
+
* - `realmId` - (Required) The realm this client is attached to.
|
|
42
|
+
* - `clientId` - (Required) The unique ID of this client, referenced in the URI during authentication and in issued tokens.
|
|
43
|
+
* - `name` - (Optional) The display name of this client in the GUI.
|
|
44
|
+
* - `enabled` - (Optional) When false, this client will not be able to initiate a login or obtain access tokens. Defaults to `true`.
|
|
45
|
+
* - `description` - (Optional) The description of this client in the GUI.
|
|
46
|
+
* - `includeAuthnStatement` - (Optional) When `true`, an `AuthnStatement` will be included in the SAML response.
|
|
47
|
+
* - `signDocuments` - (Optional) When `true`, the SAML document will be signed by Keycloak using the realm's private key.
|
|
48
|
+
* - `signAssertions` - (Optional) When `true`, the SAML assertions will be signed by Keycloak using the realm's private key, and embedded within the SAML XML Auth response.
|
|
49
|
+
* - `clientSignatureRequired` - (Optional) When `true`, Keycloak will expect that documents originating from a client will be signed using the certificate and/or key configured via `signingCertificate` and `signingPrivateKey`.
|
|
50
|
+
* - `forcePostBinding` - (Optional) When `true`, Keycloak will always respond to an authentication request via the SAML POST Binding.
|
|
51
|
+
* - `frontChannelLogout` - (Optional) When `true`, this client will require a browser redirect in order to perform a logout.
|
|
52
|
+
* - `nameIdFormat` - (Optional) Sets the Name ID format for the subject.
|
|
53
|
+
* - `rootUrl` - (Optional) When specified, this value is prepended to all relative URLs.
|
|
54
|
+
* - `validRedirectUris` - (Optional) When specified, Keycloak will use this list to validate given Assertion Consumer URLs specified in the authentication request.
|
|
55
|
+
* - `baseUrl` - (Optional) When specified, this URL will be used whenever Keycloak needs to link to this client.
|
|
56
|
+
* - `masterSamlProcessingUrl` - (Optional) When specified, this URL will be used for all SAML requests.
|
|
57
|
+
* - `signingCertificate` - (Optional) If documents or assertions from the client are signed, this certificate will be used to verify the signature.
|
|
58
|
+
* - `signingPrivateKey` - (Optional) If documents or assertions from the client are signed, this private key will be used to verify the signature.
|
|
59
|
+
* - `idpInitiatedSsoUrlName` - (Optional) URL fragment name to reference client when you want to do IDP Initiated SSO.
|
|
60
|
+
* - `idpInitiatedSsoRelayState` - (Optional) Relay state you want to send with SAML request when you want to do IDP Initiated SSO.
|
|
61
|
+
* - `assertionConsumerPostUrl` - (Optional) SAML POST Binding URL for the client's assertion consumer service (login responses).
|
|
62
|
+
* - `assertionConsumerRedirectUrl` - (Optional) SAML Redirect Binding URL for the client's assertion consumer service (login responses).
|
|
63
|
+
* - `logoutServicePostBindingUrl` - (Optional) SAML POST Binding URL for the client's single logout service.
|
|
64
|
+
* - `logoutServiceRedirectBindingUrl` - (Optional) SAML Redirect Binding URL for the client's single logout service.
|
|
65
|
+
* - `fullScopeAllowed` - (Optional) - Allow to include all roles mappings in the access token
|
|
66
|
+
*
|
|
67
|
+
* ### Import
|
|
68
|
+
*
|
|
69
|
+
* Clients can be imported using the format `{{realm_id}}/{{client_keycloak_id}}`, where `clientKeycloakId` is the unique ID that Keycloak
|
|
70
|
+
* assigns to the client upon creation. This value can be found in the URI when editing this client in the GUI, and is typically a GUID.
|
|
71
|
+
*
|
|
72
|
+
* Example:
|
|
39
73
|
*/
|
|
40
74
|
export declare class Client extends pulumi.CustomResource {
|
|
41
75
|
/**
|
|
@@ -53,152 +87,44 @@ export declare class Client extends pulumi.CustomResource {
|
|
|
53
87
|
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
54
88
|
*/
|
|
55
89
|
static isInstance(obj: any): obj is Client;
|
|
56
|
-
/**
|
|
57
|
-
* SAML POST Binding URL for the client's assertion consumer service (login responses).
|
|
58
|
-
*/
|
|
59
90
|
readonly assertionConsumerPostUrl: pulumi.Output<string | undefined>;
|
|
60
|
-
/**
|
|
61
|
-
* SAML Redirect Binding URL for the client's assertion consumer service (login responses).
|
|
62
|
-
*/
|
|
63
91
|
readonly assertionConsumerRedirectUrl: pulumi.Output<string | undefined>;
|
|
64
|
-
/**
|
|
65
|
-
* Override realm authentication flow bindings
|
|
66
|
-
*/
|
|
67
92
|
readonly authenticationFlowBindingOverrides: pulumi.Output<outputs.saml.ClientAuthenticationFlowBindingOverrides | undefined>;
|
|
68
|
-
/**
|
|
69
|
-
* When specified, this URL will be used whenever Keycloak needs to link to this client.
|
|
70
|
-
*/
|
|
71
93
|
readonly baseUrl: pulumi.Output<string | undefined>;
|
|
72
|
-
/**
|
|
73
|
-
* The Canonicalization Method for XML signatures. Should be one of "EXCLUSIVE", "EXCLUSIVE_WITH_COMMENTS", "INCLUSIVE", or "INCLUSIVE_WITH_COMMENTS". Defaults to "EXCLUSIVE".
|
|
74
|
-
*/
|
|
75
94
|
readonly canonicalizationMethod: pulumi.Output<string | undefined>;
|
|
76
|
-
/**
|
|
77
|
-
* The unique ID of this client, referenced in the URI during authentication and in issued tokens.
|
|
78
|
-
*/
|
|
79
95
|
readonly clientId: pulumi.Output<string>;
|
|
80
|
-
/**
|
|
81
|
-
* When `true`, Keycloak will expect that documents originating from a client will be signed using the certificate and/or key configured via `signingCertificate` and `signingPrivateKey`. Defaults to `true`.
|
|
82
|
-
*/
|
|
83
96
|
readonly clientSignatureRequired: pulumi.Output<boolean | undefined>;
|
|
84
|
-
/**
|
|
85
|
-
* The description of this client in the GUI.
|
|
86
|
-
*/
|
|
87
97
|
readonly description: pulumi.Output<string | undefined>;
|
|
88
|
-
/**
|
|
89
|
-
* When false, this client will not be able to initiate a login or obtain access tokens. Defaults to `true`.
|
|
90
|
-
*/
|
|
91
98
|
readonly enabled: pulumi.Output<boolean | undefined>;
|
|
92
|
-
/**
|
|
93
|
-
* When `true`, the SAML assertions will be encrypted by Keycloak using the client's public key. Defaults to `false`.
|
|
94
|
-
*/
|
|
95
99
|
readonly encryptAssertions: pulumi.Output<boolean | undefined>;
|
|
96
|
-
/**
|
|
97
|
-
* If assertions for the client are encrypted, this certificate will be used for encryption.
|
|
98
|
-
*/
|
|
99
100
|
readonly encryptionCertificate: pulumi.Output<string>;
|
|
100
|
-
/**
|
|
101
|
-
* (Computed) The sha1sum fingerprint of the encryption certificate. If the encryption certificate is not in correct base64 format, this will be left empty.
|
|
102
|
-
*/
|
|
103
101
|
readonly encryptionCertificateSha1: pulumi.Output<string>;
|
|
104
102
|
readonly extraConfig: pulumi.Output<{
|
|
105
103
|
[key: string]: any;
|
|
106
104
|
} | undefined>;
|
|
107
|
-
/**
|
|
108
|
-
* Ignore requested NameID subject format and use the one defined in `nameIdFormat` instead. Defaults to `false`.
|
|
109
|
-
*/
|
|
110
105
|
readonly forceNameIdFormat: pulumi.Output<boolean | undefined>;
|
|
111
|
-
/**
|
|
112
|
-
* When `true`, Keycloak will always respond to an authentication request via the SAML POST Binding. Defaults to `true`.
|
|
113
|
-
*/
|
|
114
106
|
readonly forcePostBinding: pulumi.Output<boolean | undefined>;
|
|
115
|
-
/**
|
|
116
|
-
* When `true`, this client will require a browser redirect in order to perform a logout. Defaults to `true`.
|
|
117
|
-
*/
|
|
118
107
|
readonly frontChannelLogout: pulumi.Output<boolean | undefined>;
|
|
119
|
-
/**
|
|
120
|
-
* Allow to include all roles mappings in the access token
|
|
121
|
-
*/
|
|
122
108
|
readonly fullScopeAllowed: pulumi.Output<boolean | undefined>;
|
|
123
|
-
/**
|
|
124
|
-
* Relay state you want to send with SAML request when you want to do IDP Initiated SSO.
|
|
125
|
-
*/
|
|
126
109
|
readonly idpInitiatedSsoRelayState: pulumi.Output<string | undefined>;
|
|
127
|
-
/**
|
|
128
|
-
* URL fragment name to reference client when you want to do IDP Initiated SSO.
|
|
129
|
-
*/
|
|
130
110
|
readonly idpInitiatedSsoUrlName: pulumi.Output<string | undefined>;
|
|
131
|
-
/**
|
|
132
|
-
* When `true`, an `AuthnStatement` will be included in the SAML response. Defaults to `true`.
|
|
133
|
-
*/
|
|
134
111
|
readonly includeAuthnStatement: pulumi.Output<boolean | undefined>;
|
|
135
|
-
/**
|
|
136
|
-
* The login theme of this client.
|
|
137
|
-
*/
|
|
138
112
|
readonly loginTheme: pulumi.Output<string | undefined>;
|
|
139
|
-
/**
|
|
140
|
-
* SAML POST Binding URL for the client's single logout service.
|
|
141
|
-
*/
|
|
142
113
|
readonly logoutServicePostBindingUrl: pulumi.Output<string | undefined>;
|
|
143
|
-
/**
|
|
144
|
-
* SAML Redirect Binding URL for the client's single logout service.
|
|
145
|
-
*/
|
|
146
114
|
readonly logoutServiceRedirectBindingUrl: pulumi.Output<string | undefined>;
|
|
147
|
-
/**
|
|
148
|
-
* When specified, this URL will be used for all SAML requests.
|
|
149
|
-
*/
|
|
150
115
|
readonly masterSamlProcessingUrl: pulumi.Output<string | undefined>;
|
|
151
|
-
/**
|
|
152
|
-
* The display name of this client in the GUI.
|
|
153
|
-
*/
|
|
154
116
|
readonly name: pulumi.Output<string>;
|
|
155
|
-
/**
|
|
156
|
-
* Sets the Name ID format for the subject.
|
|
157
|
-
*/
|
|
158
117
|
readonly nameIdFormat: pulumi.Output<string>;
|
|
159
|
-
/**
|
|
160
|
-
* The realm this client is attached to.
|
|
161
|
-
*/
|
|
162
118
|
readonly realmId: pulumi.Output<string>;
|
|
163
|
-
/**
|
|
164
|
-
* When specified, this value is prepended to all relative URLs.
|
|
165
|
-
*/
|
|
166
119
|
readonly rootUrl: pulumi.Output<string | undefined>;
|
|
167
|
-
/**
|
|
168
|
-
* When `true`, the SAML assertions will be signed by Keycloak using the realm's private key, and embedded within the SAML XML Auth response. Defaults to `false`.
|
|
169
|
-
*/
|
|
170
120
|
readonly signAssertions: pulumi.Output<boolean | undefined>;
|
|
171
|
-
/**
|
|
172
|
-
* When `true`, the SAML document will be signed by Keycloak using the realm's private key. Defaults to `true`.
|
|
173
|
-
*/
|
|
174
121
|
readonly signDocuments: pulumi.Output<boolean | undefined>;
|
|
175
|
-
/**
|
|
176
|
-
* The signature algorithm used to sign documents. Should be one of "RSA_SHA1", "RSA_SHA256", "RSA_SHA256_MGF1, "RSA_SHA512", "RSA_SHA512_MGF1" or "DSA_SHA1".
|
|
177
|
-
*/
|
|
178
122
|
readonly signatureAlgorithm: pulumi.Output<string | undefined>;
|
|
179
|
-
/**
|
|
180
|
-
* The value of the `KeyName` element within the signed SAML document. Should be one of "NONE", "KEY_ID", or "CERT_SUBJECT". Defaults to "KEY_ID".
|
|
181
|
-
*/
|
|
182
123
|
readonly signatureKeyName: pulumi.Output<string | undefined>;
|
|
183
|
-
/**
|
|
184
|
-
* If documents or assertions from the client are signed, this certificate will be used to verify the signature.
|
|
185
|
-
*/
|
|
186
124
|
readonly signingCertificate: pulumi.Output<string>;
|
|
187
|
-
/**
|
|
188
|
-
* (Computed) The sha1sum fingerprint of the signing certificate. If the signing certificate is not in correct base64 format, this will be left empty.
|
|
189
|
-
*/
|
|
190
125
|
readonly signingCertificateSha1: pulumi.Output<string>;
|
|
191
|
-
/**
|
|
192
|
-
* If documents or assertions from the client are signed, this private key will be used to verify the signature.
|
|
193
|
-
*/
|
|
194
126
|
readonly signingPrivateKey: pulumi.Output<string>;
|
|
195
|
-
/**
|
|
196
|
-
* (Computed) The sha1sum fingerprint of the signing private key. If the signing private key is not in correct base64 format, this will be left empty.
|
|
197
|
-
*/
|
|
198
127
|
readonly signingPrivateKeySha1: pulumi.Output<string>;
|
|
199
|
-
/**
|
|
200
|
-
* When specified, Keycloak will use this list to validate given Assertion Consumer URLs specified in the authentication request.
|
|
201
|
-
*/
|
|
202
128
|
readonly validRedirectUris: pulumi.Output<string[] | undefined>;
|
|
203
129
|
/**
|
|
204
130
|
* Create a Client resource with the given unique name, arguments, and options.
|
|
@@ -213,291 +139,84 @@ export declare class Client extends pulumi.CustomResource {
|
|
|
213
139
|
* Input properties used for looking up and filtering Client resources.
|
|
214
140
|
*/
|
|
215
141
|
export interface ClientState {
|
|
216
|
-
/**
|
|
217
|
-
* SAML POST Binding URL for the client's assertion consumer service (login responses).
|
|
218
|
-
*/
|
|
219
142
|
assertionConsumerPostUrl?: pulumi.Input<string>;
|
|
220
|
-
/**
|
|
221
|
-
* SAML Redirect Binding URL for the client's assertion consumer service (login responses).
|
|
222
|
-
*/
|
|
223
143
|
assertionConsumerRedirectUrl?: pulumi.Input<string>;
|
|
224
|
-
/**
|
|
225
|
-
* Override realm authentication flow bindings
|
|
226
|
-
*/
|
|
227
144
|
authenticationFlowBindingOverrides?: pulumi.Input<inputs.saml.ClientAuthenticationFlowBindingOverrides>;
|
|
228
|
-
/**
|
|
229
|
-
* When specified, this URL will be used whenever Keycloak needs to link to this client.
|
|
230
|
-
*/
|
|
231
145
|
baseUrl?: pulumi.Input<string>;
|
|
232
|
-
/**
|
|
233
|
-
* The Canonicalization Method for XML signatures. Should be one of "EXCLUSIVE", "EXCLUSIVE_WITH_COMMENTS", "INCLUSIVE", or "INCLUSIVE_WITH_COMMENTS". Defaults to "EXCLUSIVE".
|
|
234
|
-
*/
|
|
235
146
|
canonicalizationMethod?: pulumi.Input<string>;
|
|
236
|
-
/**
|
|
237
|
-
* The unique ID of this client, referenced in the URI during authentication and in issued tokens.
|
|
238
|
-
*/
|
|
239
147
|
clientId?: pulumi.Input<string>;
|
|
240
|
-
/**
|
|
241
|
-
* When `true`, Keycloak will expect that documents originating from a client will be signed using the certificate and/or key configured via `signingCertificate` and `signingPrivateKey`. Defaults to `true`.
|
|
242
|
-
*/
|
|
243
148
|
clientSignatureRequired?: pulumi.Input<boolean>;
|
|
244
|
-
/**
|
|
245
|
-
* The description of this client in the GUI.
|
|
246
|
-
*/
|
|
247
149
|
description?: pulumi.Input<string>;
|
|
248
|
-
/**
|
|
249
|
-
* When false, this client will not be able to initiate a login or obtain access tokens. Defaults to `true`.
|
|
250
|
-
*/
|
|
251
150
|
enabled?: pulumi.Input<boolean>;
|
|
252
|
-
/**
|
|
253
|
-
* When `true`, the SAML assertions will be encrypted by Keycloak using the client's public key. Defaults to `false`.
|
|
254
|
-
*/
|
|
255
151
|
encryptAssertions?: pulumi.Input<boolean>;
|
|
256
|
-
/**
|
|
257
|
-
* If assertions for the client are encrypted, this certificate will be used for encryption.
|
|
258
|
-
*/
|
|
259
152
|
encryptionCertificate?: pulumi.Input<string>;
|
|
260
|
-
/**
|
|
261
|
-
* (Computed) The sha1sum fingerprint of the encryption certificate. If the encryption certificate is not in correct base64 format, this will be left empty.
|
|
262
|
-
*/
|
|
263
153
|
encryptionCertificateSha1?: pulumi.Input<string>;
|
|
264
154
|
extraConfig?: pulumi.Input<{
|
|
265
155
|
[key: string]: any;
|
|
266
156
|
}>;
|
|
267
|
-
/**
|
|
268
|
-
* Ignore requested NameID subject format and use the one defined in `nameIdFormat` instead. Defaults to `false`.
|
|
269
|
-
*/
|
|
270
157
|
forceNameIdFormat?: pulumi.Input<boolean>;
|
|
271
|
-
/**
|
|
272
|
-
* When `true`, Keycloak will always respond to an authentication request via the SAML POST Binding. Defaults to `true`.
|
|
273
|
-
*/
|
|
274
158
|
forcePostBinding?: pulumi.Input<boolean>;
|
|
275
|
-
/**
|
|
276
|
-
* When `true`, this client will require a browser redirect in order to perform a logout. Defaults to `true`.
|
|
277
|
-
*/
|
|
278
159
|
frontChannelLogout?: pulumi.Input<boolean>;
|
|
279
|
-
/**
|
|
280
|
-
* Allow to include all roles mappings in the access token
|
|
281
|
-
*/
|
|
282
160
|
fullScopeAllowed?: pulumi.Input<boolean>;
|
|
283
|
-
/**
|
|
284
|
-
* Relay state you want to send with SAML request when you want to do IDP Initiated SSO.
|
|
285
|
-
*/
|
|
286
161
|
idpInitiatedSsoRelayState?: pulumi.Input<string>;
|
|
287
|
-
/**
|
|
288
|
-
* URL fragment name to reference client when you want to do IDP Initiated SSO.
|
|
289
|
-
*/
|
|
290
162
|
idpInitiatedSsoUrlName?: pulumi.Input<string>;
|
|
291
|
-
/**
|
|
292
|
-
* When `true`, an `AuthnStatement` will be included in the SAML response. Defaults to `true`.
|
|
293
|
-
*/
|
|
294
163
|
includeAuthnStatement?: pulumi.Input<boolean>;
|
|
295
|
-
/**
|
|
296
|
-
* The login theme of this client.
|
|
297
|
-
*/
|
|
298
164
|
loginTheme?: pulumi.Input<string>;
|
|
299
|
-
/**
|
|
300
|
-
* SAML POST Binding URL for the client's single logout service.
|
|
301
|
-
*/
|
|
302
165
|
logoutServicePostBindingUrl?: pulumi.Input<string>;
|
|
303
|
-
/**
|
|
304
|
-
* SAML Redirect Binding URL for the client's single logout service.
|
|
305
|
-
*/
|
|
306
166
|
logoutServiceRedirectBindingUrl?: pulumi.Input<string>;
|
|
307
|
-
/**
|
|
308
|
-
* When specified, this URL will be used for all SAML requests.
|
|
309
|
-
*/
|
|
310
167
|
masterSamlProcessingUrl?: pulumi.Input<string>;
|
|
311
|
-
/**
|
|
312
|
-
* The display name of this client in the GUI.
|
|
313
|
-
*/
|
|
314
168
|
name?: pulumi.Input<string>;
|
|
315
|
-
/**
|
|
316
|
-
* Sets the Name ID format for the subject.
|
|
317
|
-
*/
|
|
318
169
|
nameIdFormat?: pulumi.Input<string>;
|
|
319
|
-
/**
|
|
320
|
-
* The realm this client is attached to.
|
|
321
|
-
*/
|
|
322
170
|
realmId?: pulumi.Input<string>;
|
|
323
|
-
/**
|
|
324
|
-
* When specified, this value is prepended to all relative URLs.
|
|
325
|
-
*/
|
|
326
171
|
rootUrl?: pulumi.Input<string>;
|
|
327
|
-
/**
|
|
328
|
-
* When `true`, the SAML assertions will be signed by Keycloak using the realm's private key, and embedded within the SAML XML Auth response. Defaults to `false`.
|
|
329
|
-
*/
|
|
330
172
|
signAssertions?: pulumi.Input<boolean>;
|
|
331
|
-
/**
|
|
332
|
-
* When `true`, the SAML document will be signed by Keycloak using the realm's private key. Defaults to `true`.
|
|
333
|
-
*/
|
|
334
173
|
signDocuments?: pulumi.Input<boolean>;
|
|
335
|
-
/**
|
|
336
|
-
* The signature algorithm used to sign documents. Should be one of "RSA_SHA1", "RSA_SHA256", "RSA_SHA256_MGF1, "RSA_SHA512", "RSA_SHA512_MGF1" or "DSA_SHA1".
|
|
337
|
-
*/
|
|
338
174
|
signatureAlgorithm?: pulumi.Input<string>;
|
|
339
|
-
/**
|
|
340
|
-
* The value of the `KeyName` element within the signed SAML document. Should be one of "NONE", "KEY_ID", or "CERT_SUBJECT". Defaults to "KEY_ID".
|
|
341
|
-
*/
|
|
342
175
|
signatureKeyName?: pulumi.Input<string>;
|
|
343
|
-
/**
|
|
344
|
-
* If documents or assertions from the client are signed, this certificate will be used to verify the signature.
|
|
345
|
-
*/
|
|
346
176
|
signingCertificate?: pulumi.Input<string>;
|
|
347
|
-
/**
|
|
348
|
-
* (Computed) The sha1sum fingerprint of the signing certificate. If the signing certificate is not in correct base64 format, this will be left empty.
|
|
349
|
-
*/
|
|
350
177
|
signingCertificateSha1?: pulumi.Input<string>;
|
|
351
|
-
/**
|
|
352
|
-
* If documents or assertions from the client are signed, this private key will be used to verify the signature.
|
|
353
|
-
*/
|
|
354
178
|
signingPrivateKey?: pulumi.Input<string>;
|
|
355
|
-
/**
|
|
356
|
-
* (Computed) The sha1sum fingerprint of the signing private key. If the signing private key is not in correct base64 format, this will be left empty.
|
|
357
|
-
*/
|
|
358
179
|
signingPrivateKeySha1?: pulumi.Input<string>;
|
|
359
|
-
/**
|
|
360
|
-
* When specified, Keycloak will use this list to validate given Assertion Consumer URLs specified in the authentication request.
|
|
361
|
-
*/
|
|
362
180
|
validRedirectUris?: pulumi.Input<pulumi.Input<string>[]>;
|
|
363
181
|
}
|
|
364
182
|
/**
|
|
365
183
|
* The set of arguments for constructing a Client resource.
|
|
366
184
|
*/
|
|
367
185
|
export interface ClientArgs {
|
|
368
|
-
/**
|
|
369
|
-
* SAML POST Binding URL for the client's assertion consumer service (login responses).
|
|
370
|
-
*/
|
|
371
186
|
assertionConsumerPostUrl?: pulumi.Input<string>;
|
|
372
|
-
/**
|
|
373
|
-
* SAML Redirect Binding URL for the client's assertion consumer service (login responses).
|
|
374
|
-
*/
|
|
375
187
|
assertionConsumerRedirectUrl?: pulumi.Input<string>;
|
|
376
|
-
/**
|
|
377
|
-
* Override realm authentication flow bindings
|
|
378
|
-
*/
|
|
379
188
|
authenticationFlowBindingOverrides?: pulumi.Input<inputs.saml.ClientAuthenticationFlowBindingOverrides>;
|
|
380
|
-
/**
|
|
381
|
-
* When specified, this URL will be used whenever Keycloak needs to link to this client.
|
|
382
|
-
*/
|
|
383
189
|
baseUrl?: pulumi.Input<string>;
|
|
384
|
-
/**
|
|
385
|
-
* The Canonicalization Method for XML signatures. Should be one of "EXCLUSIVE", "EXCLUSIVE_WITH_COMMENTS", "INCLUSIVE", or "INCLUSIVE_WITH_COMMENTS". Defaults to "EXCLUSIVE".
|
|
386
|
-
*/
|
|
387
190
|
canonicalizationMethod?: pulumi.Input<string>;
|
|
388
|
-
/**
|
|
389
|
-
* The unique ID of this client, referenced in the URI during authentication and in issued tokens.
|
|
390
|
-
*/
|
|
391
191
|
clientId: pulumi.Input<string>;
|
|
392
|
-
/**
|
|
393
|
-
* When `true`, Keycloak will expect that documents originating from a client will be signed using the certificate and/or key configured via `signingCertificate` and `signingPrivateKey`. Defaults to `true`.
|
|
394
|
-
*/
|
|
395
192
|
clientSignatureRequired?: pulumi.Input<boolean>;
|
|
396
|
-
/**
|
|
397
|
-
* The description of this client in the GUI.
|
|
398
|
-
*/
|
|
399
193
|
description?: pulumi.Input<string>;
|
|
400
|
-
/**
|
|
401
|
-
* When false, this client will not be able to initiate a login or obtain access tokens. Defaults to `true`.
|
|
402
|
-
*/
|
|
403
194
|
enabled?: pulumi.Input<boolean>;
|
|
404
|
-
/**
|
|
405
|
-
* When `true`, the SAML assertions will be encrypted by Keycloak using the client's public key. Defaults to `false`.
|
|
406
|
-
*/
|
|
407
195
|
encryptAssertions?: pulumi.Input<boolean>;
|
|
408
|
-
/**
|
|
409
|
-
* If assertions for the client are encrypted, this certificate will be used for encryption.
|
|
410
|
-
*/
|
|
411
196
|
encryptionCertificate?: pulumi.Input<string>;
|
|
412
197
|
extraConfig?: pulumi.Input<{
|
|
413
198
|
[key: string]: any;
|
|
414
199
|
}>;
|
|
415
|
-
/**
|
|
416
|
-
* Ignore requested NameID subject format and use the one defined in `nameIdFormat` instead. Defaults to `false`.
|
|
417
|
-
*/
|
|
418
200
|
forceNameIdFormat?: pulumi.Input<boolean>;
|
|
419
|
-
/**
|
|
420
|
-
* When `true`, Keycloak will always respond to an authentication request via the SAML POST Binding. Defaults to `true`.
|
|
421
|
-
*/
|
|
422
201
|
forcePostBinding?: pulumi.Input<boolean>;
|
|
423
|
-
/**
|
|
424
|
-
* When `true`, this client will require a browser redirect in order to perform a logout. Defaults to `true`.
|
|
425
|
-
*/
|
|
426
202
|
frontChannelLogout?: pulumi.Input<boolean>;
|
|
427
|
-
/**
|
|
428
|
-
* Allow to include all roles mappings in the access token
|
|
429
|
-
*/
|
|
430
203
|
fullScopeAllowed?: pulumi.Input<boolean>;
|
|
431
|
-
/**
|
|
432
|
-
* Relay state you want to send with SAML request when you want to do IDP Initiated SSO.
|
|
433
|
-
*/
|
|
434
204
|
idpInitiatedSsoRelayState?: pulumi.Input<string>;
|
|
435
|
-
/**
|
|
436
|
-
* URL fragment name to reference client when you want to do IDP Initiated SSO.
|
|
437
|
-
*/
|
|
438
205
|
idpInitiatedSsoUrlName?: pulumi.Input<string>;
|
|
439
|
-
/**
|
|
440
|
-
* When `true`, an `AuthnStatement` will be included in the SAML response. Defaults to `true`.
|
|
441
|
-
*/
|
|
442
206
|
includeAuthnStatement?: pulumi.Input<boolean>;
|
|
443
|
-
/**
|
|
444
|
-
* The login theme of this client.
|
|
445
|
-
*/
|
|
446
207
|
loginTheme?: pulumi.Input<string>;
|
|
447
|
-
/**
|
|
448
|
-
* SAML POST Binding URL for the client's single logout service.
|
|
449
|
-
*/
|
|
450
208
|
logoutServicePostBindingUrl?: pulumi.Input<string>;
|
|
451
|
-
/**
|
|
452
|
-
* SAML Redirect Binding URL for the client's single logout service.
|
|
453
|
-
*/
|
|
454
209
|
logoutServiceRedirectBindingUrl?: pulumi.Input<string>;
|
|
455
|
-
/**
|
|
456
|
-
* When specified, this URL will be used for all SAML requests.
|
|
457
|
-
*/
|
|
458
210
|
masterSamlProcessingUrl?: pulumi.Input<string>;
|
|
459
|
-
/**
|
|
460
|
-
* The display name of this client in the GUI.
|
|
461
|
-
*/
|
|
462
211
|
name?: pulumi.Input<string>;
|
|
463
|
-
/**
|
|
464
|
-
* Sets the Name ID format for the subject.
|
|
465
|
-
*/
|
|
466
212
|
nameIdFormat?: pulumi.Input<string>;
|
|
467
|
-
/**
|
|
468
|
-
* The realm this client is attached to.
|
|
469
|
-
*/
|
|
470
213
|
realmId: pulumi.Input<string>;
|
|
471
|
-
/**
|
|
472
|
-
* When specified, this value is prepended to all relative URLs.
|
|
473
|
-
*/
|
|
474
214
|
rootUrl?: pulumi.Input<string>;
|
|
475
|
-
/**
|
|
476
|
-
* When `true`, the SAML assertions will be signed by Keycloak using the realm's private key, and embedded within the SAML XML Auth response. Defaults to `false`.
|
|
477
|
-
*/
|
|
478
215
|
signAssertions?: pulumi.Input<boolean>;
|
|
479
|
-
/**
|
|
480
|
-
* When `true`, the SAML document will be signed by Keycloak using the realm's private key. Defaults to `true`.
|
|
481
|
-
*/
|
|
482
216
|
signDocuments?: pulumi.Input<boolean>;
|
|
483
|
-
/**
|
|
484
|
-
* The signature algorithm used to sign documents. Should be one of "RSA_SHA1", "RSA_SHA256", "RSA_SHA256_MGF1, "RSA_SHA512", "RSA_SHA512_MGF1" or "DSA_SHA1".
|
|
485
|
-
*/
|
|
486
217
|
signatureAlgorithm?: pulumi.Input<string>;
|
|
487
|
-
/**
|
|
488
|
-
* The value of the `KeyName` element within the signed SAML document. Should be one of "NONE", "KEY_ID", or "CERT_SUBJECT". Defaults to "KEY_ID".
|
|
489
|
-
*/
|
|
490
218
|
signatureKeyName?: pulumi.Input<string>;
|
|
491
|
-
/**
|
|
492
|
-
* If documents or assertions from the client are signed, this certificate will be used to verify the signature.
|
|
493
|
-
*/
|
|
494
219
|
signingCertificate?: pulumi.Input<string>;
|
|
495
|
-
/**
|
|
496
|
-
* If documents or assertions from the client are signed, this private key will be used to verify the signature.
|
|
497
|
-
*/
|
|
498
220
|
signingPrivateKey?: pulumi.Input<string>;
|
|
499
|
-
/**
|
|
500
|
-
* When specified, Keycloak will use this list to validate given Assertion Consumer URLs specified in the authentication request.
|
|
501
|
-
*/
|
|
502
221
|
validRedirectUris?: pulumi.Input<pulumi.Input<string>[]>;
|
|
503
222
|
}
|
package/saml/client.js
CHANGED
|
@@ -6,40 +6,74 @@ exports.Client = void 0;
|
|
|
6
6
|
const pulumi = require("@pulumi/pulumi");
|
|
7
7
|
const utilities = require("../utilities");
|
|
8
8
|
/**
|
|
9
|
+
* ## # keycloak.saml.Client
|
|
10
|
+
*
|
|
9
11
|
* Allows for creating and managing Keycloak clients that use the SAML protocol.
|
|
10
12
|
*
|
|
11
|
-
* Clients are entities that can use Keycloak for user authentication. Typically,
|
|
12
|
-
*
|
|
13
|
+
* Clients are entities that can use Keycloak for user authentication. Typically,
|
|
14
|
+
* clients are applications that redirect users to Keycloak for authentication
|
|
15
|
+
* in order to take advantage of Keycloak's user sessions for SSO.
|
|
13
16
|
*
|
|
14
|
-
*
|
|
17
|
+
* ### Example Usage
|
|
15
18
|
*
|
|
19
|
+
* <!--Start PulumiCodeChooser -->
|
|
16
20
|
* ```typescript
|
|
17
21
|
* import * as pulumi from "@pulumi/pulumi";
|
|
18
22
|
* import * as fs from "fs";
|
|
19
23
|
* import * as keycloak from "@pulumi/keycloak";
|
|
20
24
|
*
|
|
21
25
|
* const realm = new keycloak.Realm("realm", {
|
|
22
|
-
* realm: "my-realm",
|
|
23
26
|
* enabled: true,
|
|
27
|
+
* realm: "my-realm",
|
|
24
28
|
* });
|
|
25
29
|
* const samlClient = new keycloak.saml.Client("samlClient", {
|
|
30
|
+
* clientId: "test-saml-client",
|
|
31
|
+
* includeAuthnStatement: true,
|
|
26
32
|
* realmId: realm.id,
|
|
27
|
-
* clientId: "saml-client",
|
|
28
|
-
* signDocuments: false,
|
|
29
33
|
* signAssertions: true,
|
|
30
|
-
*
|
|
34
|
+
* signDocuments: false,
|
|
31
35
|
* signingCertificate: fs.readFileSync("saml-cert.pem", "utf8"),
|
|
32
36
|
* signingPrivateKey: fs.readFileSync("saml-key.pem", "utf8"),
|
|
33
37
|
* });
|
|
34
38
|
* ```
|
|
39
|
+
* <!--End PulumiCodeChooser -->
|
|
35
40
|
*
|
|
36
|
-
*
|
|
41
|
+
* ### Argument Reference
|
|
37
42
|
*
|
|
38
|
-
*
|
|
43
|
+
* The following arguments are supported:
|
|
39
44
|
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
45
|
+
* - `realmId` - (Required) The realm this client is attached to.
|
|
46
|
+
* - `clientId` - (Required) The unique ID of this client, referenced in the URI during authentication and in issued tokens.
|
|
47
|
+
* - `name` - (Optional) The display name of this client in the GUI.
|
|
48
|
+
* - `enabled` - (Optional) When false, this client will not be able to initiate a login or obtain access tokens. Defaults to `true`.
|
|
49
|
+
* - `description` - (Optional) The description of this client in the GUI.
|
|
50
|
+
* - `includeAuthnStatement` - (Optional) When `true`, an `AuthnStatement` will be included in the SAML response.
|
|
51
|
+
* - `signDocuments` - (Optional) When `true`, the SAML document will be signed by Keycloak using the realm's private key.
|
|
52
|
+
* - `signAssertions` - (Optional) When `true`, the SAML assertions will be signed by Keycloak using the realm's private key, and embedded within the SAML XML Auth response.
|
|
53
|
+
* - `clientSignatureRequired` - (Optional) When `true`, Keycloak will expect that documents originating from a client will be signed using the certificate and/or key configured via `signingCertificate` and `signingPrivateKey`.
|
|
54
|
+
* - `forcePostBinding` - (Optional) When `true`, Keycloak will always respond to an authentication request via the SAML POST Binding.
|
|
55
|
+
* - `frontChannelLogout` - (Optional) When `true`, this client will require a browser redirect in order to perform a logout.
|
|
56
|
+
* - `nameIdFormat` - (Optional) Sets the Name ID format for the subject.
|
|
57
|
+
* - `rootUrl` - (Optional) When specified, this value is prepended to all relative URLs.
|
|
58
|
+
* - `validRedirectUris` - (Optional) When specified, Keycloak will use this list to validate given Assertion Consumer URLs specified in the authentication request.
|
|
59
|
+
* - `baseUrl` - (Optional) When specified, this URL will be used whenever Keycloak needs to link to this client.
|
|
60
|
+
* - `masterSamlProcessingUrl` - (Optional) When specified, this URL will be used for all SAML requests.
|
|
61
|
+
* - `signingCertificate` - (Optional) If documents or assertions from the client are signed, this certificate will be used to verify the signature.
|
|
62
|
+
* - `signingPrivateKey` - (Optional) If documents or assertions from the client are signed, this private key will be used to verify the signature.
|
|
63
|
+
* - `idpInitiatedSsoUrlName` - (Optional) URL fragment name to reference client when you want to do IDP Initiated SSO.
|
|
64
|
+
* - `idpInitiatedSsoRelayState` - (Optional) Relay state you want to send with SAML request when you want to do IDP Initiated SSO.
|
|
65
|
+
* - `assertionConsumerPostUrl` - (Optional) SAML POST Binding URL for the client's assertion consumer service (login responses).
|
|
66
|
+
* - `assertionConsumerRedirectUrl` - (Optional) SAML Redirect Binding URL for the client's assertion consumer service (login responses).
|
|
67
|
+
* - `logoutServicePostBindingUrl` - (Optional) SAML POST Binding URL for the client's single logout service.
|
|
68
|
+
* - `logoutServiceRedirectBindingUrl` - (Optional) SAML Redirect Binding URL for the client's single logout service.
|
|
69
|
+
* - `fullScopeAllowed` - (Optional) - Allow to include all roles mappings in the access token
|
|
70
|
+
*
|
|
71
|
+
* ### Import
|
|
72
|
+
*
|
|
73
|
+
* Clients can be imported using the format `{{realm_id}}/{{client_keycloak_id}}`, where `clientKeycloakId` is the unique ID that Keycloak
|
|
74
|
+
* assigns to the client upon creation. This value can be found in the URI when editing this client in the GUI, and is typically a GUID.
|
|
75
|
+
*
|
|
76
|
+
* Example:
|
|
43
77
|
*/
|
|
44
78
|
class Client extends pulumi.CustomResource {
|
|
45
79
|
/**
|
package/saml/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../saml/client.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AAGzC,0CAA0C;AAE1C
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../saml/client.ts"],"names":[],"mappings":"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"}
|