OpenUnison Kubernetes CRD Documentation
Trust
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | trust |
Plural | trusts |
Version: v1
Represents a dynamic trust for an identity provider
Name | Type | Description |
---|---|---|
label | string | A descriptive label for the trust |
clientId | string | A unique id for the trust shared with the trusted client |
clientSecret | object | A reference to the Secret used to store the secret shared between the identity provider and the client Details |
publicEndpoint | boolean | If true, clientSecret is ignored |
redirectURI | array | List of allowed URLs that should be trusted to redirect to after successful authentication |
codeLastMileKeyName | string | The name of the key in the OpenUnison keystore that is used to encryp the code portion of a transaction |
authChainName | string | The name of an AuthenticationChain that is used to authenticate this trust |
codeTokenSkewMilis | integer | The time, in milliseconds, to allow for clock skew when checking if a token has expired |
accessTokenTimeToLive | integer | The time, in miliseconds, that a trust's token should be valid |
accessTokenSkewMillis | integer | The time, in milliseconds, to allow for clock skew when checking if a token has expired |
signedUserInfo | boolean | If true, the user_info endpoint's response is a JWT, not simple JSON |
verifyRedirect | boolean | If true, verifies if the redirect is accurate. Should only be false in development environments. |
clientSecret
A reference to the Secret
used to store the secret shared between the identity provider and the client
Name | Type | Description |
---|---|---|
secretName | string | The name of the Secret |
keyName | string | The key storing the data in the Secret |
PortalUrl
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | portalurl |
Plural | portalurls |
Version: v1
A PortalURL represents a "badge" in the OpenUnison portal
Name | Type | Description |
---|---|---|
label | string | A descriptive label for the badge |
url | string | The URL for the application a user will be sent to when clicking on the badge |
org | string | The Orginaization.uuid the url is a part of |
icon | string | A base64 encoded PNG that is 240px high x 210px wide |
azRules | array | List of rules used to authorize access. Authorization succeeds if ANY of these rules pass Details |
azRules
List of rules used to authorize access. Authorization succeeds if ANY of these rules pass
Name | Type | Description |
---|---|---|
scope | string | One of: - group - The DN of a group the suer must be a member of in OpenUnison's virtual directory- dynamicGroup - The DN of an LDAP dynamic group the suer must be a member of in OpenUnison's virtual directory- dn - The DN of an area of the virtual directory where all users under that DN are authorized- custom - The name of a CustomAuthorization . Can be followed by a ! with parameters. For instance SomeCustomAZ!param1!param2 will call the custom authorization SomeCustomAZ with the parameters param1 and param2 - filter - An LDAP filter that will be applied to a logged in user |
constraint | string | How to enforce this rule based on the scope |
Org
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | org |
Plural | orgs |
Version: v1
{}
Name | Type | Description |
---|---|---|
label | string | What people will see in the OpenUnison portal |
description | string | Descriptive text |
uuid | string | A unique identifier used to associate resources with this Organization |
parent | string | The parent Organization 's uuid in the tree |
showInPortal | boolean | If true, shows this orgnaization on the portal screen in OpenUnison |
showInRequestAccess | boolean | If true, shows the Orgianization in the Request Access screen of OpenUnison |
showInReports | boolean | If true, show in the Reports section in OpenUnison. |
azRules | array | List of rules used to authorize access. Authorization succeeds if ANY of these rules pass Details |
azRules
List of rules used to authorize access. Authorization succeeds if ANY of these rules pass
Name | Type | Description |
---|---|---|
scope | string | One of: - group - The DN of a group the suer must be a member of in OpenUnison's virtual directory- dynamicGroup - The DN of an LDAP dynamic group the suer must be a member of in OpenUnison's virtual directory- dn - The DN of an area of the virtual directory where all users under that DN are authorized- custom - The name of a CustomAuthorization . Can be followed by a ! with parameters. For instance SomeCustomAZ!param1!param2 will call the custom authorization SomeCustomAZ with the parameters param1 and param2 - filter - An LDAP filter that will be applied to a logged in user |
constraint | string | How to enforce this rule based on the scope |
Target
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | target |
Plural | targets |
Version: v1
{}
Name | Type | Description |
---|---|---|
className | string | Implementation of com.tremolosecurity.provisioning.core.UserStoreProvider |
params | array | Set of configuration parameters Details |
secretParams | array | Details |
targetAttributes | array | Attributes that are managed by this target Details |
params
Set of configuration parameters
Name | Type | Description |
---|---|---|
name | string | Configuration parameter name, may be listed multiple times |
value | string | Value |
secretParams
Name | Type | Description |
---|---|---|
name | string | The name of the configuration parameter |
secretName | string | The name of the Kubernetes Secret |
secretKey | string | The name of the key in the Secret to pull the data from |
targetAttributes
Attributes that are managed by this target
Name | Type | Description |
---|---|---|
name | string | The name of the attribute in the target |
source | string | Depends on sourceType :- static - The specific value of the attribute- user - The name of the attribute from the user to use- custom - Implementation of com.tremolosecurity.provisioning.mapping.CustomMapping , parameters can be supplied after a | that's comma delimited. For instance, com.tremolosecurity.mapping.JavaScriptMapping|k8s,openunison,argocd-groups Uses the JavaScriptMapping , passing the parameters k8s , openunison , and argocd-groups as parameters |
sourceType | string | Where the attribute data will come from |
targetType | string | The data type for the target attribute |
Workflow
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | workflow |
Plural | workflows |
Version: v2
Holder for a workflow object
Name | Type | Description |
---|---|---|
label | string | Descriptive name |
description | string | Descriptive text |
inList | boolean | If true, includes this workflow as requestable on the Request Access screen |
orgId | string | The value of an Organization.uuid that contains this workflow |
dynamicConfiguration | object | Used to apply a workflow to several potential objects. Will instanciate one instance of this workflow for each object. For instance creating one instance of a workflow for each namespace in a cluster. Details |
tasks | string | See https://openunison.github.io/UPDATEME |
dynamicConfiguration
Used to apply a workflow to several potential objects. Will instanciate one instance of this workflow for each object. For instance creating one instance of a workflow for each namespace in a cluster.
Name | Type | Description |
---|---|---|
dynamic | boolean | Determines if the workflow should be loaded based on a dynamic configuration |
className | string | Implementation of com.tremolosecurity.provisioning.util.DynamicWorkflow |
params | array | List of parameters to pass to the DynamicWorkflow implementation. Details |
filterAnnotations | array | List of parameters to pass to the DynamicWorkflow implementation. Details |
params
List of parameters to pass to the DynamicWorkflow
implementation.
Name | Type | Description |
---|---|---|
name | string | Can be repeated |
value | string |
filterAnnotations
List of parameters to pass to the DynamicWorkflow
implementation.
Name | Type | Description |
---|---|---|
name | string | name of the annotation filter |
requestObjectName | string | name of the request object to get the annotation value from |
Report
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | report |
Plural | reports |
Version: v1
{}
Name | Type | Description |
---|---|---|
name | string | The name of the report |
description | string | Descriptive text for the report |
groupBy | string | Report field that data should be grouped by |
groupings | boolean | If true, the report is broken into sections based on the field identified by groupBy |
orgId | string | The Orgnanization.id that this report belongs in |
parameters | object | Determines which parameters should be included Details |
sql | string | The SQL used to generate the report. |
headerFields | array | Data to be displayed as a header |
dataFields | array | List of fields to show in the report |
parameters
Determines which parameters should be included
Name | Type | Description |
---|---|---|
beginDate | boolean | |
endDate | boolean | |
userKey | boolean | |
currentUser | boolean |
OUJob
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | oujob |
Plural | oujobs |
Version: v1
{}
Name | Type | Description |
---|---|---|
cronSchedule | object | The cron configuration, using standard cron rules. Details |
className | string | Implementaiton of com.tremolosecurity.provisioning.scheduler.UnisonJob |
group | string | A key to group jobs by, arbitrary |
params | array | List of configuration options. individual options may be listed multiple times Details |
secretParams | array | Secret data that should be loaded directly from Kubernetes Secrets Details |
cronSchedule
The cron configuration, using standard cron rules.
Name | Type | Description |
---|---|---|
seconds | string | |
minutes | string | |
hours | string | |
dayOfMonth | string | |
month | string | |
dayOfWeek | string | |
year | string |
params
List of configuration options. individual options may be listed multiple times
Name | Type | Description |
---|---|---|
name | string | |
value | string |
secretParams
Secret data that should be loaded directly from Kubernetes Secrets
Name | Type | Description |
---|---|---|
name | string | The name of the configuration option for the job |
secretName | string | The name of the Secret to get the value from |
secretKey | string | The key in the data section of the Secret to get the data from |
MessageListener
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | messagelistener |
Plural | messagelisteners |
Version: v1
Reveives inbound messages for asynchronous processing
Name | Type | Description |
---|---|---|
className | string | Implementation of com.tremolosecurity.provisioning.core.UnisonMessageListener |
params | array | List of configuration options, each option can be listed multiple times Details |
secretParams | array | Secret data to be loaded directly from Kubernetes Secret objects Details |
params
List of configuration options, each option can be listed multiple times
Name | Type | Description |
---|---|---|
name | string | |
value | string |
secretParams
Secret data to be loaded directly from Kubernetes Secret
objects
Name | Type | Description |
---|---|---|
name | string | The configuration option to set |
secretName | string | The Secret to pull data from |
secretKey | string | The key in the data section of the Secret to pull the value from |
ResultGroup
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | resultgroup |
Plural | resultgroups |
Version: v1
A group of actions to take as a result of an authentication or authorization event
The spec is an array with each item below being a property of each array item
Name | Type | Description |
---|---|---|
resultType | string | A result of an authenticaiton or authorization event: - header - A request header injected into an HTTP request, result of an authoriztion event- cookie - A Cookie being added to the response, result of an authentication event- redirect - A 302 sent back to the client, can be the result of either |
source | string | The source of the value of a result |
value | string | Depends on source :- static - The value to set- user - The name of the attribute from the logged in user to user- custom - Implementation of com.tremolosecurity.proxy.results.CustomResult |
CustomAuthorization
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | customaz |
Plural | customazs |
Version: v1
A custom authorization is an implementation of com.tremolosecurity.proxy.az.CustomAuthorization
Name | Type | Description |
---|---|---|
className | string | Implementation of com.tremolosecurity.proxy.az.CustomAuthorization |
params | object | List of configuration options. Properties can have the value of a string or array of string |
AuthenticationMechanism
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | authmech |
Plural | authmechs |
Version: v1
Defines a way to authenticate users
Name | Type | Description |
---|---|---|
uri | string | The path of a URL that triggers this method, MUST start with /auth/ |
className | string | Implementation of com.tremolosecurity.proxy.auth.AuthMechanism |
init | object | Initialization parameters for when this mechanism is created. These parameters are global for all chains. Each parameter can have a value of a single string or an array of string |
secretParams | array | Pull secret data directly from a Kubernetes Secret Details |
secretParams
Pull secret data directly from a Kubernetes Secret
Name | Type | Description |
---|---|---|
name | string | The name of the configuration option |
secretName | string | The name of the Kubernetes Secret |
secretKey | string | The name of the key in the data section of the Kubernetes Secret to pull the value from |
AuthenticationChain
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | authchain |
Plural | authchains |
Version: v1
An authentication chain links together multiple mechanisms to authenticate a user
Name | Type | Description |
---|---|---|
level | integer | The strength of the chain. If a user is already authenticated using a chain of equal or higher strength then authenticaiton is not re-run. |
finishOnRequiredSucess | boolean | If true , fill short-circuit a chain that has mechanisms which aren't required once the required ones finish. Generally left to false |
root | string | Where in the OpenUnison virtual directory to pull users from. Usually o=Tremolo |
compliance | object | Configures protection against brute-force attacks. See https://openunison.github.io/UPDATE for detailed configuration instructions Details |
authMechs | array | List of mechanisms in this chain Details |
compliance
Configures protection against brute-force attacks. See https://openunison.github.io/UPDATE for detailed configuration instructions
Name | Type | Description |
---|---|---|
enabled | boolean | |
maxFailedAttempts | integer | |
maxLockoutTime | integer | |
numFailedAttribute | string | |
lastFailedAttribute | string | |
lastSucceedAttribute | string | |
updateAttributesWorkflow | string | |
uidAttributeName | string |
authMechs
List of mechanisms in this chain
Name | Type | Description |
---|---|---|
name | string | The name of an AuthenticationMechanism |
required | string | Determines if a mechanism satisfies a chain. Mostly should be required |
params | object | Configuration parameters. Values can be a string or array of string |
secretParams | array | Configuraiton options that come directly from Kubernetes Secret objects Details |
secretParams
Configuraiton options that come directly from Kubernetes Secret
objects
Name | Type | Description |
---|---|---|
name | string | The name of the configuration option |
secretName | string | The Kubernetes Secret to pull the value from |
secretKey | string | The name of the key in the data section of the source Secret |
Application
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | application |
Plural | applications |
Version: v2
Contains the configuration for a web application, identity provider, or API
Name | Type | Description |
---|---|---|
azTimeoutMillis | integer | Number of milliseconds authorization decisions should be cached for |
isApp | boolean | If true, the application is assumed to be a reverse proxy or local API. If false, the application is an identity provider |
urls | array | List of URLs that make up an application Details |
cookieConfig | object | Determines how an Application manages its session via cookies Details |
urls
List of URLs that make up an application
Name | Type | Description |
---|---|---|
hosts | array | List of host names that this URL is valid for. May be * for all hosts |
filterChain | array | List of filters that can manipulate request and response headers Details |
proxyTo | string | Optional If isApp is true, determines the URL to forward the request to. typically uses the form https://host:port${fullURI} where ${fullURI} is replaced with the path section of the requested URL |
proxyConfiguration | object | Provides timeout configurations for proxying to the proxyTo URL. If omited, there are no timeouts Details |
uri | string | The path of the URL, the portian after the host that this URL will match on |
regex | boolean | if true, the uri is interpreted as a regular expression |
authChain | string | The name of an AuthenticationChain that will be used to authenticate access to this URL |
overrideHost | boolean | If true, the the proxied request will include the original request's HOST header |
overrideReferer | boolean | If true, and referals' hosts are overriden with the orginal request's HOST header |
results | object | Actions that will triger as the result to an authentication or authorization event Details |
azRules | array | List of rules used to authorize access. Authorization succeeds if ANY of these rules pass Details |
idp | object | Configuration for an Application that acts as an identity provider Details |
filterChain
List of filters that can manipulate request and response headers
Name | Type | Description |
---|---|---|
className | string | Implementation of com.tremolosecurity.proxy.filter.HttpFilter |
params | object | List of configuration parameters. Parameters may be a string or an array of string |
secretParams | array | Load parameters directly from Kubernetes Secret objects Details |
secretParams
Load parameters directly from Kubernetes Secret
objects
Name | Type | Description |
---|---|---|
name | string | The name of the filter parameter |
secretName | string | The name of the Kubernetes Secret |
secretKey | string | The name of the key in the data section of the Secret |
proxyConfiguration
Provides timeout configurations for proxying to the proxyTo
URL. If omited, there are no timeouts
Name | Type | Description |
---|---|---|
connectionTimeoutMillis | integer | The number of milliseconds an attempted connection will wait until timing out. Defaults to 0 , which is no timeout |
requestTimeoutMillis | integer | The number of milliseconds in an individual request will wait until timing out. Defaults to 0 , which is no timeout |
socketTimeoutMillis | integer | The number of milliseconds a socket can remain open without receiving any data. Defaults to 0 , which is no timeout |
results
Actions that will triger as the result to an authentication or authorization event
Name | Type | Description |
---|---|---|
auSuccess | string | The name of a ResultGroup that will be executed when a user successfully authenticates to this URL |
auFail | string | The name of a ResultGroup that will be executed when a user fails to authenticate to this URL |
azSuccess | string | The name of a ResultGroup that will be executed when a user is successfully authorized for this URL |
azFail | string | The name of a ResultGroup that will be executed when a user is failed to be authorized for this URL |
azRules
List of rules used to authorize access. Authorization succeeds if ANY of these rules pass
Name | Type | Description |
---|---|---|
scope | string | One of: - group - The DN of a group the suer must be a member of in OpenUnison's virtual directory- dynamicGroup - The DN of an LDAP dynamic group the suer must be a member of in OpenUnison's virtual directory- dn - The DN of an area of the virtual directory where all users under that DN are authorized- custom - The name of a CustomAuthorization . Can be followed by a ! with parameters. For instance SomeCustomAZ!param1!param2 will call the custom authorization SomeCustomAZ with the parameters param1 and param2 - filter - An LDAP filter that will be applied to a logged in user |
constraint | string | How to enforce this rule based on the scope |
idp
Configuration for an Application
that acts as an identity provider
Name | Type | Description |
---|---|---|
className | string | Implementation of com.tremolosecurity.idp.server.IdentityProvider |
params | object | properties to be passed to the identity provider. Values can be either a string or an array of string |
secretParams | array | Load parameters directly from Kubernetes Secret objects Details |
mappings | object | Provides mappings from a user's attributes into an identity provider's assertions Details |
trusts | array | List of trusted clients Details |
secretParams
Load parameters directly from Kubernetes Secret
objects
Name | Type | Description |
---|---|---|
name | string | The name of the identity provider parameter |
secretName | string | The name of the Kubernetes Secret |
secretKey | string | The name of the key in the data section of the Secret |
mappings
Provides mappings from a user's attributes into an identity provider's assertions
Name | Type | Description |
---|---|---|
strict | boolean | If true, only mapped attributes will be included in the assertion. If false, all attributes and mapped attributes are included. |
map | array | list of mappings Details |
map
list of mappings
Name | Type | Description |
---|---|---|
targetAttributeName | string | The name of the attribute as it will appear in the assertion |
targetAttributeSource | string | Depends on sourceType :- static - The specific value of the attribute- user - The name of the attribute from the user to use- composite - Assemble an attribute from the first values of other attributes and static content. For instance ${givenName} ${sn} where givenName is First and sn is Last will create the value First Last - custom - Implementation of com.tremolosecurity.provisioning.mapping.CustomMapping , parameters can be supplied after a | that's comma delimited. For instance, com.tremolosecurity.mapping.JavaScriptMapping|k8s,openunison,argocd-groups Uses the JavaScriptMapping , passing the parameters k8s , openunison , and argocd-groups as parameters |
sourceType | string |
trusts
List of trusted clients
Name | Type | Description |
---|---|---|
name | string | The name of the trust |
params | object | The parameters to pass the to trust configuration. Values may be a string or an array of string |
secretParams | array | Load parameters directly from Kubernetes Secret objects Details |
secretParams
Load parameters directly from Kubernetes Secret
objects
Name | Type | Description |
---|---|---|
name | string | The name of the trust parameter |
secretName | string | The name of the Kubernetes Secret |
secretKey | string | The name of the key in the data section of the Secret |
cookieConfig
Determines how an Application
manages its session via cookies
Name | Type | Description |
---|---|---|
sessionCookieName | string | Name of the cookie |
domain | string | The domain the cookie applies to. Can be * to apply to any domain the URLs of the application accept |
scope | integer | ignore |
logoutURI | string | The URI, or path in the URL, that triggers the ending of the session |
keyAlias | string | The name of the key in OpenUnison's keystore used to encrypt the session cookie |
timeout | integer | The time, in seconds, that an idle session should be discarded |
secure | boolean | If true, cookies require an HTTPS connection |
httpOnly | boolean | If true, cookies are not accessible from javascript |
sameSite | string | Used to set the SameSite option in a cookie. One of None , Lax , Strict , Ignore |
cookiesEnabled | boolean | If true, sessions are enabled. If false (such as for an API), no session is generated or tracked |
GroupMetaData
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | groupmetadata |
Plural | groupmetadatas |
Version: v1
Stores mapping from an external group to an internal group. Can also be used to create a group in the database without executing SQL
Name | Type | Description |
---|---|---|
groupName | string | The name of the group to create |
externalName | string | Optional - the name of the external group to map to |
JavaScriptMapping
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | javascriptmapping |
Plural | javascriptmappings |
Version: v1
Stores the javascript for a custom mapping
Name | Type | Description |
---|---|---|
javascript | string | JavaScript function for the mapping. Must contain at least one funciton named doMapping with two arguments: user and attributeName |
WaitForState
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | waitforstate |
Plural | waitforstates |
Version: v1
Stores the state of a workflow waiting for an object to reach a certain status
Name | Type | Description |
---|---|---|
state | string | The encrypted state of the workflow waiting for the expected status before continuing |
Notifier
Attribute | Value |
---|---|
Group | openunison.tremolo.io |
Scope | Namespaced |
Singular | notifier |
Plural | notifiers |
Version: v1
Configures a custom notification mechanism for OpenUnison
Name | Type | Description |
---|---|---|
className | string | Implementation of com.tremolosecurity.openunison.notifications.NotificationSystem |
params | array | Set of configuration parameters Details |
secretParams | array | Details |
params
Set of configuration parameters
Name | Type | Description |
---|---|---|
name | string | Configuration parameter name, may be listed multiple times |
value | string | Value |
secretParams
Name | Type | Description |
---|---|---|
name | string | The name of the configuration parameter |
secretName | string | The name of the Kubernetes Secret |
secretKey | string | The name of the key in the Secret to pull the data from |