Code Monkey home page Code Monkey logo

openunison / openunison-k8s-activedirectory Goto Github PK

View Code? Open in Web Editor NEW
16.0 4.0 6.0 2.01 MB

Self service portal for Kubernetes. Automate provisioning and access of namespaces, authenticate users using Active Directory or LDAP.

Home Page: https://www.tremolosecurity.com/kubernetes/

License: Apache License 2.0

Shell 0.26% Java 10.33% JavaScript 16.55% Python 0.18% CSS 4.47% HTML 0.34% Less 34.21% SCSS 33.64%
kubernetes kubernetes-dashboard sso ldap authentication namespaces

openunison-k8s-activedirectory's Introduction

⚠️

Please go to https://openunison.github.io/ to integrate your cluster with OpenUnison. This repo is no longer supported and will no longer get updated builds

⚠️

Orchestra For Kubernetes - Active Directory and LDAP

Orchestra is an automation portal for Kubernetes built on OpenUnison. Orchestra integrates a user's identity into Kubernetes enabling:

  1. SSO between the API server and your LDAP infrastructure
  2. SSO with the Kubernetes Dashboard
  3. Self service access to existing Namespaces
  4. Self service creation of new Namespaces
  5. Workflows for automating access approvals without getting system administrators involved
  6. Built in self service reporting

Orchestra Portal Screen Shot

When a user accesses Kubernetes using Orchestra, they'll access both the self service portal and the dashboard through OpenUnison's reverse proxy (instead of directly via an ingress). OpenUnison will inject the user's identity into each request, allowing the dashboard to act on their behalf.

Orchestra stores all Kubernetes access information as a groups inside of a relational database, as opposed to a group in an external directory. OpenUnison will create the appropriate Roles and RoleBindings to allow for the access.

Kubernetes Identity Manager Architecture

Roles Supported

Cluster

  1. Administration - Full cluster management access

Namespace

  1. Administrators - All operations inside of a namespace
  2. Viewers - Can view contents of a namespace (except Secrets), but can not make changes

Non-Kubernetes

  1. System Approver - Able to approve access to roles specific to OpenUnison
  2. Auditor - Able to view audit reports, but not request projects or approve access

Deployment

What You Need To Start

Prior to deploying OpenUnison you will need:

  1. Kubernetes 1.10 or higher
  2. The Nginx Ingress Controler deployed (https://kubernetes.github.io/ingress-nginx/deploy/)
  3. A MySQL or MariaDB Database
  4. The certificate authority certificate for your Active Directory forest
  5. An SMTP server for sending notifications
  6. Deploy the dashboard to your cluster
  7. helm 3.0+

The deployment is a four step process:

  1. Add Tremolo Security's Helm repo to your own
  2. Deploy the OpenUnison Operator
  3. Create a secret for your Active Directory password
  4. Deploy OpenUnison

Add Tremolo Security's Helm Repo

helm repo add tremolo https://nexus.tremolo.io/repository/helm/
helm repo update

Deploy The OpenUnison Operator

Create your namespace

kubectl create ns openunison

Deploy the operator

helm install openunison tremolo/openunison-operator --namespace openunison

Wait for the operator pod to be available

watch kubectl get pods -n openunison

Create A Secret For Your Active Directory Password

Create a secret in the openunison namespace:

apiVersion: v1
type: Opaque
metadata:
  name: orchestra-secrets-source
  namespace: openunison
data:
  AD_BIND_PASSWORD: aW0gYSBzZWNyZXQ=
  K8S_DB_SECRET: aW0gYSBzZWNyZXQ=
  SMTP_PASSWORD: aW0gYSBzZWNyZXQ=
  OU_JDBC_PASSWORD: aW0gYSBzZWNyZXQ=
  unisonKeystorePassword: aW0gYSBzZWNyZXQ=
kind: Secret
Property Description
AD_BIND_PASSWORD The password for the ldap service account used to communicate with Active Directory/LDAP
unisonKeystorePassword The password for OpenUnison's keystore, should NOT contain an ampersand (&)
K8S_DB_SECRET A random string of characters used to secure the SSO process with the dashboard. This should be long and random, with no ampersands (&)
OU_JDBC_PASSWORD The password for accessing the database
SMTP_PASSWORD Password for accessing the SMTP server (may be blank)

Deploy OpenUnison

Copy values.yaml (https://raw.githubusercontent.com/OpenUnison/helm-charts/master/openunison-k8s-activedirectory/values.yaml) and update as appropriate:

Property Description
network.openunison_host The host name for OpenUnison. This is what user's will put into their browser to login to Kubernetes
network.dashboard_host The host name for the dashboard. This is what users will put into the browser to access to the dashboard. NOTE: network.openunison_host and network.dashboard_host Both network.openunison_host and network.dashboard_host MUST point to OpenUnison
network.api_server_host The host name to use for the api server reverse proxy. This is what kubectl will interact with to access your cluster. NOTE: network.openunison_host and network.dashboard_host
network.k8s_url The URL for the Kubernetes API server
network.session_inactivity_timeout_seconds The number of seconds of inactivity before the session is terminated, also the length of the refresh token's session
active_directory.base The search base for Active Directory
active_directory.host The host name for a domain controller or VIP. If using SRV records to determine hosts, this should be the fully qualified domain name of the domain
active_directory.port The port to communicate with Active Directory
active_directory.bind_dn The full distinguished name (DN) of a read-only service account for working with Active Directory
active_directory.con_type ldaps for secure, ldap for plain text
active_directory.srv_dns If true, OpenUnison will lookup domain controllers by the domain's SRV DNS record
cert_template.ou The OU attribute for the forward facing certificate
cert_template.o The O attribute for the forward facing certificate
cert_template.l The L attribute for the forward facing certificate
cert_template.st The ST attribute for the forward facing certificate
cert_template.c The C attribute for the forward facing certificate
certs.use_k8s_cm Tells the deployment system if you should use k8s' built in certificate manager. If your distribution doesn't support this (such as Canonical and Rancher), set this to false
myvd_config_path The path to the MyVD configuration file, unless being customized, use WEB-INF/myvd.conf
dashboard.namespace The namespace for the dashboard. For the 1.x dashboard this is kube-system, for the 2.x dashboard this is kubernetes-dashboard
dashboard.cert_name The name of the secret in the dashboard's namespace that stores the certificate for the dashboard
dashboard.label The label of the dashboard pod, this is used to delete the pod once new certificates are generated
dashboard.service_name The name of the service object for the dashboard
k8s_cluster_name The name of the cluster to use in the ./kube-config. Defaults to kubernetes
image The name of the image to use
enable_impersonation If true, OpenUnison will run in impersonation mode. Instead of OpenUnison being integrated with Kubernetes via OIDC, OpenUnison will be a reverse proxy and impersonate users. This is useful with cloud deployments where oidc is not an option
monitoring.prometheus_service_account The prometheus service account to authorize access to the /monitoring endpoint
database.hibernate_dialect Hibernate dialect for accessing the database. Unless customizing for a different database do not change
database.quartz_dialect Dialect used by the Quartz Scheduler. Unless customizing for a different database do not change
database.driver JDBC driver for accessing the database. Unless customizing for a different database do not change
database.url The URL for accessing the database
database.user The user for accessing the database
database.validation A query for validating database connections/ Unless customizing for a different database do not change
smtp.host Host for an email server to send notifications
smtp.port Port for an email server to send notifications
smtp.user Username for accessing the SMTP server (may be blank)
smtp.from The email address that messages from OpenUnison are addressed from
smtp.tls true or false, depending if SMTP should use start tls

Additionally, add a base 64 encoded PEM certificate to your values under trusted_certs for pem_b64. This will allow OpenUnison to talk to Active Directory using TLS.

Finally, run the helm chart:

helm install orchestra tremolo/openunison-k8s-activedirectory --namespace openunison -f /path/to/values.yaml

Complete SSO Integration with Kubernetes

If using impersonation, you can skip this section. Run kubectl describe configmap api-server-config -n openunison to get the SSO integration artifacts. The output will give you both the API server flags that need to be configured on your API servers. The certificate that needs to be trusted is in the ou-tls-certificate secret in the openunison namespace.

First Login to Orchestra

At this point you should be able to login to OpenUnison using the host specified in the OU_HOST of your properties. Once you are logged in, logout. Users are created in the database "just-in-time", meaning that once you login the data representing your user is created inside of the database deployed for Orchestra.

Create First Administrator

The user you logged in as is currently unprivileged. In order for other users to login and begin requesting access to projects this first user must be enabled as an approver. Login to the MySQL database deployed for Orchestra and execute the following SQL:

insert into userGroups (userId,groupId) values (2,1);

This will add the administrator group to your user. Logout of Orchestra and log back in.

Self Request & Approve Cluster Administrator

Once SSO is enabled in the next step, you'll need a cluster administrator to be able to perform cluster level operations:

  1. Login to Orchestra
  2. Click on "Request Access" in the title bar
  3. Click on "Kubernetes Administration"
  4. Click "Add To Cart" next to "Cluster Administrator"
  5. Next to "Check Out" in the title bar you'll see a red 1, click on "Check Out"
  6. For "Supply Reason", give a reason like "Initial user" and click "Submit Request"
  7. Since you are the only approver refresh OpenUnison, you will see a red 1 next to "Open Approvals". Click on "Open Approvals"
  8. Click "Review" next to your email address
  9. Specify "Initial user" for the "Justification" and click "Approve"
  10. Click on "Confirm Approval"

At this point you will be provisioned to the k8s-cluster-administrators group in the database that has a RoleBinding to the cluster-admin Role. Logout of Orchestra and log back in. If you click on your email address in the upper left, you'll see that you have the Role k8s-cluster-administrators.

Adding Applications and Clusters for Authentication

OpenUnison can support more applications for SSO then just Kubernetes and the dashboard. You can add other clusters and applications that support OpenID Connect by adding some custom resources to your openunison namespace.

Add a Trust

The Trust tells your OpenID Connect enabled application it can trust authentication requests from your OpenUnison. To start you'll need:

  1. Callback URL - This URL is where OpenUnison redirects the user after authenticating.
  2. Client Secret - Web applications, like GitLab, will need a secret that is shared between the two systems. Applications with CLI components, like ArgoCD, don't need a client secret.
  3. Client ID - This is how you identify your application to OpenUnison.

OpenUnison will provide the following claims for your application to consume:

Claim Description
sub Unique identifier as supplied from authentication
name Combination of first name and last name
preferred_username A username supplied from authentication
email The user's email address
groups The list of groups provided by the authentication source

Once you have everything you need to get started, create the Trust object.

Create a Secret

If you're application is using a client secret, a Secret needs to be created to hold it. This can either be a new Secret or it can be a new one. Which ever Secret you add it to, keep a note of the name of the Secret and the key in the data section used to store it.

If your application doesn't have a client secret, skip this step.

Create the Trust

Create a Trust object in the openunison namespace. Here's one for GitLab you can use as an example:

apiVersion: openunison.tremolo.io/v1
kind: Trust
metadata:
  name: gitlab
  namespace: openunison
spec:
  accessTokenSkewMillis: 120000
  accessTokenTimeToLive: 60000
  authChainName: LoginService
  clientId: gitlab
  clientSecret:
    keyName: gitlab
    secretName: orchestra-secrets-source
  codeLastMileKeyName: lastmile-oidc
  codeTokenSkewMilis: 60000
  publicEndpoint: false
  redirectURI:
  - https://gitlab.local.tremolo.dev/users/auth/openid_connect/callback
  signedUserInfo: false
  verifyRedirect: true

Here are the details for each option:

Option Desription
accessTokenSkewMillis Milliseconds milliseconds added to account for clock skew
accessTokenTimeToLive Time an access token should live in milliseconds
authChainName The authentication chain to use for login, do not change
clientId The client id shared by your application
clientSecret.scretName If using a client secret, the name of the Secret storing the client secret
clientSecret.keyName The key in the data section of the Secret storing the client secret
codeLastMileKeyName The name of the key used to encrypt the code token, do not change
codeTokenSkewMilis Milliseconds to add to code token lifetime to account for clock skew
publicEndpoint If true, a client secret is required. If false, no client secret is needed
redirectURI List of URLs that are authorized for callback. If a URL is provided by your application that isn't in this list SSO will fail
signedUserInfo if true, the userinfo endpoint will return a signed JSON Web Token. If false it will return plain JSON
verifyRedirect If true, the redirect URL provided by the client MUST be listed in the redirectURI section. Should ALLWAYS be true if not in a development environment

Once the Trust is added to the namespace, OpenUnison will pick it up automatically. You can test by trying to login to your application.

Add a "Badge" to Your Portal

When you login to the Orchestra portal, there are badges for your tokens and for the dashboard. You can dynamically add a badge for your application too. Here's an example PortalUrl object for ArgoCD:

apiVersion: openunison.tremolo.io/v1
kind: PortalUrl
metadata:
  name: argocs
  namespace: openunison
spec:
  label: ArgoCD
  org: B158BD40-0C1B-11E3-8FFD-0800200C9A66
  url: https://ArgoCD.apps.192-168-2-140.nip.io
  icon: iVBORw0KGgoAAAANSUhEUgAAANIAAADwCAYAAAB1/Tp/AAAfQ3pUWHRSYXcgcHJvZ...
  azRules:
  - constraint: o=Tremolo
    scope: dn
Option Descriptoin
label The label shown on badge in the portal
org If using orgnaizations to organize badges, the uuid of the org. If not using organizations, leave as is
url The URL the badge should send the user to
icon A base64 encoded icon with a width of 210 pixels and a height of 240 pixels
azRules Who is authorized to see this badge? See https://portal.apps.tremolo.io/docs/tremolosecurity-docs/1.0.19/openunison/openunison-manual.html#_applications_applications for an explination of the authorization rules

Once created, the badge will appear in the Orchestra portal! No need to restart the containers.

Organizing Badges

If you're adding multiple badges or clusters, you may find that the number of badges on your front page become difficult to manage. In that case you can enable orgnaizations in OpenUnison and organize your badges using an orgnaization tree.

Enable Organizations on your Portal Page

Edit the orchestra object in the openunison namespace (kubectl edit openunison orchestra -n openunison). Look for the non_secret_data section and add the following:

- name: SHOW_PORTAL_ORGS
  value: "true"

Once you save, OpenUnison will restart and when you login there will now be a tree that describes your organizations.

Orchestra with Organizations

Creating Organizations

Add an Org object to the openunison namespace. Here's an example Org:

apiVersion: openunison.tremolo.io/v1
kind: Org
metadata:
  name: cluster2
  namespace: openunison
spec:
  description: "My second cluster"
  uuid: 04901973-5f4c-46d9-9e22-55e88e168776
  parent: B158BD40-0C1B-11E3-8FFD-0800200C9A66
  showInPortal: true
  showInRequestAccess: false
  showInReports: false
  azRules:
  - scope: dn
    constraint: o=Tremolo
Option Description
description What appears in the blue box describing the organization
uuid A unique ID, recommend using Type 4 UUIDs
parent The unique id of the parent. B158BD40-0C1B-11E3-8FFD-0800200C9A66 is the root organization
showInPortal Should be true
showInRequestAccess N/A
showInReports N/A
azRules Who is authorized to see this badge? See https://portal.apps.tremolo.io/docs/tremolosecurity-docs/1.0.19/openunison/openunison-manual.html#_applications_applications for an explination of the authorization rules

Once added, the new organizations will be loaded dynamiclly by OpenUnison. Change the org in your PortalUrl object to match the uuid of the Org you want it to appear in.

Using Your Own Certificates

If you want to integrate your own certificates see our wiki entry - https://github.com/TremoloSecurity/OpenUnison/wiki/troubleshooting#how-do-i-change-openunisons-certificates

Monitoring OpenUnison

This deployment comes with a /metrics endpoint for monitoring. For details on how to integrate it into a Prometheus stack - https://github.com/TremoloSecurity/OpenUnison/wiki/troubleshooting#how-do-i-monitor-openunison-with-prometheus.

Trouble Shooting Help

Please take a look at https://github.com/TremoloSecurity/OpenUnison/wiki/troubleshooting if you're running into issues. If there isn't an entry there that takes care of your issue, please open an issue on this repo.

Customizing Orchestra

Orchestra is an application built on OpenUnison with several "opinions" on how you should manage authentication in your cluster. These opinions my be close to what you need, but not exact. In order to customize Orchestra you'll need:

  1. git
  2. OpenJDK 8
  3. Apache Maven
  4. Docker registry

First, fork this GitHub project. Then make your edits. To deploy to a local Docker daemon that you want to then use to push to a registry:

mvn clean package
mvn compile jib:dockerBuild
docker tag image:version registry/image:version
docker push registry/image:version

If you have credentials to access a registry remotely and are not running docker locally, you can push the image directly to your registry:

mvn clean package
export OU_CONTAINER_DEST=registry/image:version
export OU_REG_USER=registry_user
export OU_REG_PASSWORD=registry_password
mvn compile jib:build

Whats next?

Users can now login to create namespaces, request access to cluster admin or request access to other clusters.

Now you can begin mapping OpenUnison's capabilities to your business and compliance needs. For instance you can add multi-factor authentication with TOTP or U2F, Create privileged workflows for onboarding, scheduled workflows that will deprovision users, etc.

Customizing Directory Connections

If you're running multiple directories, or need to connect to a generic LDAP directory isntead of Active Directory you can provide a custom MyVirtualDirectory configuration file without a re-build of your containers. Start with the myvd.conf file at https://github.com/OpenUnison/openunison-k8s-login-activedirectory/blob/master/src/main/webapp/WEB-INF/myvd.conf. ONLY edit the section that begins with server.activedirectory. As an example, the below configuration works against a generic LDAPv3 directory with the VirtualMemberOf insert configured to create a memeberOf attribute on users so we can supply groups to Kubernetes:

#Global AuthMechConfig
server.globalChain=accesslog

server.globalChain.accesslog.className=com.tremolosecurity.proxy.myvd.log.AccessLog

server.nameSpaces=rootdse,myvdroot,shadowUsers,activedirectory
server.rootdse.chain=dse
server.rootdse.nameSpace=
server.rootdse.weight=0
server.rootdse.dse.className=net.sourceforge.myvd.inserts.RootDSE
server.rootdse.dse.config.namingContexts=o=Tremolo
server.myvdroot.chain=root
server.myvdroot.nameSpace=o=Tremolo
server.myvdroot.weight=0
server.myvdroot.root.className=net.sourceforge.myvd.inserts.RootObject

server.shadowUsers.chain=debug,mapping,api
server.shadowUsers.nameSpace=ou=shadow,o=Tremolo
server.shadowUsers.weight=0
server.shadowUsers.enabled=true
server.shadowUsers.debug.className=net.sourceforge.myvd.inserts.DumpTransaction
server.shadowUsers.debug.config.logLevel=info
server.shadowUsers.debug.config.label=k8s
server.shadowUsers.mapping.className=net.sourceforge.myvd.inserts.mapping.AttributeMapper
server.shadowUsers.mapping.config.mapping=mail=email,givenName=first_name,sn=last_name
server.shadowUsers.api.className=com.tremolosecurity.myvd.K8sCrdInsert
server.shadowUsers.api.config.nameSpace=openunison
server.shadowUsers.api.config.k8sTargetName=k8s

server.activedirectory.chain=objectguid2text,dnmapper,memberof,objmap,membertrans,ldap
server.activedirectory.nameSpace=ou=activedirectory,o=Data
server.activedirectory.weight=0
server.activedirectory.enabled=true
server.activedirectory.objectguid2text.className=com.tremolosecurity.proxy.myvd.inserts.util.UUIDtoText
server.activedirectory.objectguid2text.config.attributeName=objectGUID
server.activedirectory.dnmapper.className=net.sourceforge.myvd.inserts.mapping.DNAttributeMapper
server.activedirectory.dnmapper.config.dnAttribs=member,owner,member,distinguishedName,manager
server.activedirectory.dnmapper.config.localBase=ou=activedirectory,o=Data
server.activedirectory.dnmapper.config.urlAttribs=
server.activedirectory.dnmapper.config.remoteBase=#[AD_BASE_DN]
server.activedirectory.memberof.className=net.sourceforge.myvd.inserts.mapping.VirtualMemberOf
server.activedirectory.memberof.config.searchBase=ou=activedirectory,o=Data
server.activedirectory.memberof.config.applyToObjectClass=inetOrgPerson
server.activedirectory.memberof.config.attributeName=memberOf
server.activedirectory.memberof.config.searchObjectClass=groupOfNames
server.activedirectory.memberof.config.searchAttribute=member
server.activedirectory.memberof.config.replace=false
server.activedirectory.objmap.className=net.sourceforge.myvd.inserts.mapping.AttributeValueMapper
server.activedirectory.objmap.config.mapping=objectClass.inetOrgPerson=inetOrgPerson,objectClass.groupofnames=groupOfNames
server.activedirectory.membertrans.className=net.sourceforge.myvd.inserts.mapping.AttributeMapper
server.activedirectory.membertrans.config.mapping=member=member,uid=uid
server.activedirectory.ldap.className=com.tremolosecurity.proxy.myvd.inserts.ad.ADLdapInsert
server.activedirectory.ldap.config.host=#[AD_HOST]
server.activedirectory.ldap.config.port=#[AD_PORT]
server.activedirectory.ldap.config.remoteBase=#[AD_BASE_DN]
server.activedirectory.ldap.config.proxyDN=#[AD_BIND_DN]
server.activedirectory.ldap.config.proxyPass=#[AD_BIND_PASSWORD]
server.activedirectory.ldap.config.useSrvDNS=#[SRV_DNS]
server.activedirectory.ldap.config.ignoreRefs=true
server.activedirectory.ldap.config.passBindOnly=true
server.activedirectory.ldap.config.maxIdle=90000
server.activedirectory.ldap.config.maxMillis=90000
server.activedirectory.ldap.config.maxStaleTimeMillis=90000
server.activedirectory.ldap.config.minimumConnections=10
server.activedirectory.ldap.config.maximumConnections=10
server.activedirectory.ldap.config.usePaging=false
server.activedirectory.ldap.config.pageSize=0
server.activedirectory.ldap.config.heartbeatIntervalMillis=60000
server.activedirectory.ldap.config.type=#[AD_CON_TYPE]
server.activedirectory.ldap.config.sslSocketFactory=com.tremolosecurity.proxy.ssl.TremoloSSLSocketFactory

Once Orchestra is deployed, create a directory with your myvd.conf file in it and deploy it as a ConfigMap:

kubectl create configmap myvd --from-file . -n openunison

Next edit the openunison deployment to mount the ConfigMap to /etc/myvd and change the environment variable MYVD_CONFIG_PATH to /etc/myvd/myvd.conf. Once the OpenUnison pods have been recreated, you can login with your LDAP uid (as opposed to an Active Directory samAccountName).

Additional Resources

Deployment in AWS - https://www.tremolosecurity.com/post/multi-tenant-amazon-eks-the-easy-way-part-ii-provisioning-namespaces

openunison-k8s-activedirectory's People

Contributors

mlbiam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

openunison-k8s-activedirectory's Issues

PKIX path building failed:

When I try to use the Dashboard I get this error:

Error
An error occurred while processing this request. Please see the system administrator for assistance.

Log for Error:

ERROR ConfigSys - Could not process request
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) ~[?:1.8.0_222]
	at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1946) ~[?:1.8.0_222]
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:316) ~[?:1.8.0_222]
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:310) ~[?:1.8.0_222]
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1639) ~[?:1.8.0_222]
	at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:223) ~[?:1.8.0_222]
	at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1037) ~[?:1.8.0_222]
	at sun.security.ssl.Handshaker.process_record(Handshaker.java:965) ~[?:1.8.0_222]
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1064) ~[?:1.8.0_222]
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367) ~[?:1.8.0_222]
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395) ~[?:1.8.0_222]
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379) ~[?:1.8.0_222]
	at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:436) ~[httpclient-4.5.9.jar:4.5.9]
	at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:384) ~[httpclient-4.5.9.jar:4.5.9]
	at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) ~[httpclient-4.5.9.jar:4.5.9]
	at org.apache.http.impl.conn.BasicHttpClientConnectionManager.connect(BasicHttpClientConnectionManager.java:313) ~[httpclient-4.5.9.jar:4.5.9]
	at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393) ~[httpclient-4.5.9.jar:4.5.9]
	at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) ~[httpclient-4.5.9.jar:4.5.9]
	at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) ~[httpclient-4.5.9.jar:4.5.9]
	at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) ~[httpclient-4.5.9.jar:4.5.9]
	at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[httpclient-4.5.9.jar:4.5.9]
	at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) ~[httpclient-4.5.9.jar:4.5.9]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) ~[httpclient-4.5.9.jar:4.5.9]
	at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108) ~[httpclient-4.5.9.jar:4.5.9]
	at com.tremolosecurity.unison.proxy.auth.openidconnect.OpenIDConnectAuthMech.doGet(OpenIDConnectAuthMech.java:206) ~[unison-auth-openidconnect-1.0.17.jar:?]
	at com.tremolosecurity.proxy.auth.AuthMgrSys.doAuthMgr(AuthMgrSys.java:191) ~[unison-server-core-1.0.17.jar:?]
	at com.tremolosecurity.embedd.NextEmbSys.nextSys(NextEmbSys.java:126) ~[unison-server-core-1.0.17.jar:?]
	at com.tremolosecurity.proxy.auth.AzSys.doAz(AzSys.java:89) ~[unison-sdk-1.0.17.jar:?]
	at com.tremolosecurity.embedd.NextEmbSys.nextSys(NextEmbSys.java:111) ~[unison-server-core-1.0.17.jar:?]
	at com.tremolosecurity.proxy.auth.AuthSys.doAuth(AuthSys.java:118) ~[unison-server-core-1.0.17.jar:?]
	at com.tremolosecurity.embedd.NextEmbSys.nextSys(NextEmbSys.java:105) ~[unison-server-core-1.0.17.jar:?]
	at com.tremolosecurity.proxy.ConfigSys.doConfig(ConfigSys.java:293) [unison-server-core-1.0.17.jar:?]
	at com.tremolosecurity.embedd.NextEmbSys.nextSys(NextEmbSys.java:93) [unison-server-core-1.0.17.jar:?]
	at com.tremolosecurity.filter.UnisonServletFilter.doFilter(UnisonServletFilter.java:290) [unison-server-core-1.0.17.jar:?]
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) [undertow-core-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) [undertow-core-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) [undertow-core-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104) [undertow-servlet-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:376) [undertow-core-2.0.22.Final.jar:2.0.22.Final]
	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830) [undertow-core-2.0.22.Final.jar:2.0.22.Final]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_222]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_222]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:397) ~[?:1.8.0_222]
	at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302) ~[?:1.8.0_222]
	at sun.security.validator.Validator.validate(Validator.java:262) ~[?:1.8.0_222]
	at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:330) ~[?:1.8.0_222]
	at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:237) ~[?:1.8.0_222]
	at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132) ~[?:1.8.0_222]
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1621) ~[?:1.8.0_222]
	... 59 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) ~[?:1.8.0_222]
	at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) ~[?:1.8.0_222]
	at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) ~[?:1.8.0_222]
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:392) ~[?:1.8.0_222]
	at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302) ~[?:1.8.0_222]
	at sun.security.validator.Validator.validate(Validator.java:262) ~[?:1.8.0_222]
	at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:330) ~[?:1.8.0_222]
	at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:237) ~[?:1.8.0_222]
	at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132) ~[?:1.8.0_222]
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1621) ~[?:1.8.0_222]
	... 59 more

Openunison Not writing to DATABASE on first sign in

I am trying to get openunison up in minikube for an example.

minikube version: v1.13.1
commit: 1fd1f67f338cbab4b3e5a6e4c71c551f522ca138-dirty

kubernetes version: 1.20.1

I am deploying the operator and orchestra according to the instructions listed and I cannot access the dashboard. I receive this
image

The kubernetes tokens also do not work that are presented

I tried to Create an administrative user using the command under the Create First Administrator and got this:

ERROR 1146 (42S02): Table 'unison.userGroups' doesn't exist

The operator does create these databases and successfully connects to mysql:

+--------------------------+
| Tables_in_unison         |
+--------------------------+
| ACTIVEMQ_ACKS            |
| ACTIVEMQ_LOCK            |
| ACTIVEMQ_MSGS            |
| QRTZ_BLOB_TRIGGERS       |
| QRTZ_CALENDARS           |
| QRTZ_CRON_TRIGGERS       |
| QRTZ_FIRED_TRIGGERS      |
| QRTZ_JOB_DETAILS         |
| QRTZ_LOCKS               |
| QRTZ_PAUSED_TRIGGER_GRPS |
| QRTZ_SCHEDULER_STATE     |
| QRTZ_SIMPLE_TRIGGERS     |
| QRTZ_SIMPROP_TRIGGERS    |
| QRTZ_TRIGGERS            |
+--------------------------+

Operator logs:

\nDROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;\nDROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;\nDROP TABLE IF EXISTS QRTZ_LOCKS;\nDROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;\nDROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS;\nDROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;\nDROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;\nDROP TABLE IF EXISTS QRTZ_TRIGGERS;\nDROP TABLE IF EXISTS QRTZ_JOB_DETAILS;\nDROP TABLE IF EXISTS QRTZ_CALENDARS;\n\nCREATE TABLE QRTZ_JOB_DETAILS(\nSCHED_NAME VARCHAR(120) NOT NULL,\nJOB_NAME VARCHAR(200) NOT NULL,\nJOB_GROUP VARCHAR(200) NOT NULL,\nDESCRIPTION VARCHAR(250) NULL,\nJOB_CLASS_NAME VARCHAR(250) NOT NULL,\nIS_DURABLE BOOLEAN NOT NULL,\nIS_NONCONCURRENT BOOLEAN NOT NULL,\nIS_UPDATE_DATA BOOLEAN NOT NULL,\nREQUESTS_RECOVERY BOOLEAN NOT NULL,\nJOB_DATA BLOB NULL,\nPRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP))\nENGINE=InnoDB;\n\nCREATE TABLE QRTZ_TRIGGERS (\nSCHED_NAME VARCHAR(120) NOT NULL,\nTRIGGER_NAME VARCHAR(200) NOT NULL,\nTRIGGER_GROUP VARCHAR(200) NOT NULL,\nJOB_NAME VARCHAR(200) NOT NULL,\nJOB_GROUP VARCHAR(200) NOT NULL,\nDESCRIPTION VARCHAR(250) NULL,\nNEXT_FIRE_TIME BIGINT(19) NULL,\nPREV_FIRE_TIME BIGINT(19) NULL,\nPRIORITY INTEGER NULL,\nTRIGGER_STATE VARCHAR(16) NOT NULL,\nTRIGGER_TYPE VARCHAR(8) NOT NULL,\nSTART_TIME BIGINT(19) NOT NULL,\nEND_TIME BIGINT(19) NULL,\nCALENDAR_NAME VARCHAR(200) NULL,\nMISFIRE_INSTR SMALLINT(2) NULL,\nJOB_DATA BLOB NULL,\nPRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),\nFOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)\nREFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP))\nENGINE=InnoDB;\n\nCREATE TABLE QRTZ_SIMPLE_TRIGGERS (\nSCHED_NAME VARCHAR(120) NOT NULL,\nTRIGGER_NAME VARCHAR(200) NOT NULL,\nTRIGGER_GROUP VARCHAR(200) NOT NULL,\nREPEAT_COUNT BIGINT(7) NOT NULL,\nREPEAT_INTERVAL BIGINT(12) NOT NULL,\nTIMES_TRIGGERED BIGINT(10) NOT NULL,\nPRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),\nFOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)\nREFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))\nENGINE=InnoDB;\n\nCREATE TABLE QRTZ_CRON_TRIGGERS (\nSCHED_NAME VARCHAR(120) NOT NULL,\nTRIGGER_NAME VARCHAR(200) NOT NULL,\nTRIGGER_GROUP VARCHAR(200) NOT NULL,\nCRON_EXPRESSION VARCHAR(120) NOT NULL,\nTIME_ZONE_ID VARCHAR(80),\nPRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),\nFOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)\nREFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))\nENGINE=InnoDB;\n\nCREATE TABLE QRTZ_SIMPROP_TRIGGERS\n ( \n SCHED_NAME VARCHAR(120) NOT NULL,\n TRIGGER_NAME VARCHAR(200) NOT NULL,\n TRIGGER_GROUP VARCHAR(200) NOT NULL,\n STR_PROP_1 VARCHAR(512) NULL,\n STR_PROP_2 VARCHAR(512) NULL,\n STR_PROP_3 VARCHAR(512) NULL,\n INT_PROP_1 INT NULL,\n INT_PROP_2 INT NULL,\n LONG_PROP_1 BIGINT NULL,\n LONG_PROP_2 BIGINT NULL,\n DEC_PROP_1 NUMERIC(13,4) NULL,\n DEC_PROP_2 NUMERIC(13,4) NULL,\n BOOL_PROP_1 BOOLEAN NULL,\n BOOL_PROP_2 BOOLEAN NULL,\n TIME_ZONE_ID VARCHAR(80) NULL,\n PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),\n FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) \n REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))\nENGINE=InnoDB;\n\nCREATE TABLE QRTZ_BLOB_TRIGGERS (\nSCHED_NAME VARCHAR(120) NOT NULL,\nTRIGGER_NAME VARCHAR(200) NOT NULL,\nTRIGGER_GROUP VARCHAR(200) NOT NULL,\nBLOB_DATA BLOB NULL,\nPRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),\nINDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP),\nFOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)\nREFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))\nENGINE=InnoDB;\n\nCREATE TABLE QRTZ_CALENDARS (\nSCHED_NAME VARCHAR(120) NOT NULL,\nCALENDAR_NAME VARCHAR(200) NOT NULL,\nCALENDAR BLOB NOT NULL,\nPRIMARY KEY (SCHED_NAME,CALENDAR_NAME))\nENGINE=InnoDB;\n\nCREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS (\nSCHED_NAME VARCHAR(120) NOT NULL,\nTRIGGER_GROUP VARCHAR(200) NOT NULL,\nPRIMARY KEY (SCHED_NAME,TRIGGER_GROUP))\nENGINE=InnoDB;\n\nCREATE TABLE QRTZ_FIRED_TRIGGERS (\nSCHED_NAME VARCHAR(120) NOT NULL,\nENTRY_ID VARCHAR(140) NOT NULL,\nTRIGGER_NAME VARCHAR(200) NOT NULL,\nTRIGGER_GROUP VARCHAR(200) NOT NULL,\nINSTANCE_NAME VARCHAR(200) NOT NULL,\nFIRED_TIME BIGINT(19) NOT NULL,\nSCHED_TIME BIGINT(19) NOT NULL,\nPRIORITY INTEGER NOT NULL,\nSTATE VARCHAR(16) NOT NULL,\nJOB_NAME VARCHAR(200) NULL,\nJOB_GROUP VARCHAR(200) NULL,\nIS_NONCONCURRENT BOOLEAN NULL,\nREQUESTS_RECOVERY BOOLEAN NULL,\nPRIMARY KEY (SCHED_NAME,ENTRY_ID))\nENGINE=InnoDB;\n\nCREATE TABLE QRTZ_SCHEDULER_STATE (\nSCHED_NAME VARCHAR(120) NOT NULL,\nINSTANCE_NAME VARCHAR(200) NOT NULL,\nLAST_CHECKIN_TIME BIGINT(19) NOT NULL,\nCHECKIN_INTERVAL BIGINT(19) NOT NULL,\nPRIMARY KEY (SCHED_NAME,INSTANCE_NAME))\nENGINE=InnoDB;\n\nCREATE TABLE QRTZ_LOCKS (\nSCHED_NAME VARCHAR(120) NOT NULL,\nLOCK_NAME VARCHAR(40) NOT NULL,\nPRIMARY KEY (SCHED_NAME,LOCK_NAME))\nENGINE=InnoDB;\n\nCREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY);\nCREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP);\n\nCREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP);\nCREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP);\nCREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME);\nCREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);\nCREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE);\nCREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE);\nCREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE);\nCREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME);\nCREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME);\nCREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME);\nCREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE);\nCREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE);\n\nCREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME);\nCREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY);\nCREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP);\nCREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP);\nCREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP);\nCREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);\n\nDROP TABLE IF EXISTS ACTIVEMQ_ACKS;\nDROP TABLE IF EXISTS ACTIVEMQ_LOCK;\nDROP TABLE IF EXISTS ACTIVEMQ_MSGS;\n\n\nCREATE TABLE ACTIVEMQ_ACKS (\n CONTAINER varchar(250) NOT NULL,\n SUB_DEST varchar(250) DEFAULT NULL,\n CLIENT_ID varchar(250) NOT NULL,\n SUB_NAME varchar(250) NOT NULL,\n SELECTOR varchar(250) DEFAULT NULL,\n LAST_ACKED_ID bigint(20) DEFAULT NULL,\n PRIORITY bigint(20) NOT NULL DEFAULT '5',\n XID varchar(250) DEFAULT NULL,\n PRIMARY KEY (CONTAINER,CLIENT_ID,SUB_NAME,PRIORITY),\n KEY ACTIVEMQ_ACKS_XIDX (XID)\n);\n\nCREATE TABLE ACTIVEMQ_LOCK (\n ID bigint(20) NOT NULL,\n TIME bigint(20) DEFAULT NULL,\n BROKER_NAME varchar(250) DEFAULT NULL,\n PRIMARY KEY (ID)\n);\n\nCREATE TABLE ACTIVEMQ_MSGS (\n ID bigint(20) NOT NULL,\n CONTAINER varchar(250) NOT NULL,\n MSGID_PROD varchar(250) DEFAULT NULL,\n MSGID_SEQ bigint(20) DEFAULT NULL,\n EXPIRATION bigint(20) DEFAULT NULL,\n MSG mediumblob,\n PRIORITY bigint(20) DEFAULT NULL,\n XID varchar(250) DEFAULT NULL,\n PRIMARY KEY (ID),\n KEY ACTIVEMQ_MSGS_MIDX (MSGID_PROD,MSGID_SEQ),\n KEY ACTIVEMQ_MSGS_CIDX (CONTAINER),\n KEY ACTIVEMQ_MSGS_EIDX (EXPIRATION),\n KEY ACTIVEMQ_MSGS_PIDX (PRIORITY),\n KEY ACTIVEMQ_MSGS_XIDX (XID)\n);\ncommit;","secret_data":["AD_BIND_PASSWORD","K8S_DB_SECRET","unisonKeystorePassword","SMTP_PASSWORD","OU_JDBC_PASSWORD"],"source_secret":"orchestra-secrets-source"},"status":{"conditions":{"lastTransitionTime":"2021-08-19 06:23:40GMT","status":"True","type":"Completed"},"digest":"3m4gYOmrrmGBp3qOgT0sRBSfNN4g8/W9WfD7n/soRZk="}}
}
No change, skipping
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200
https://10.96.0.1:443/apis/openunison.tremolo.io/v5/namespaces/openunison/openunisons?watch=true&timeoutSeconds=30&resourceVersion=20200

ERROR JITAuthMech - Could not execute workflow 'jitdb' ... Could not reload user

I have tried to connect to openldap with openunison and when I try to login at the pod logs I see a Java error:

[2020-04-08 15:36:56,053][XNIO-1 task-13] INFO  ProvisioningEngineImpl - target=jitdb entry=true Add user=tester workflow=jitdb approval=0 userName='tester'
[2020-04-08 15:36:56,102][XNIO-1 task-13] INFO  ProvisioningEngineImpl - target=jitdb entry=false Add user=tester workflow=jitdb approval=0 sub='tester'
[2020-04-08 15:36:56,115][XNIO-1 task-13] INFO  ProvisioningEngineImpl - target=jitdb entry=false Add user=tester workflow=jitdb approval=0 firstName='Test'
[2020-04-08 15:36:56,135][XNIO-1 task-13] INFO  ProvisioningEngineImpl - target=jitdb entry=false Add user=tester workflow=jitdb approval=0 lastName='Elek'
[2020-04-08 15:36:56,151][XNIO-1 task-13] INFO  ProvisioningEngineImpl - target=jitdb entry=false Add user=tester workflow=jitdb approval=0 mail='[email protected]'
[2020-04-08 15:36:56,171][XNIO-1 task-13] INFO  ProvisioningEngineImpl - target=jitdb entry=false Add user=tester workflow=jitdb approval=0 group='users'
[2020-04-08 15:36:56,245][XNIO-1 task-13] INFO  AccessLog - SRCH op=6 con=5 base='o=Tremolo' filter='(uid=tester)' scope='2' attribs=''
[2020-04-08 15:36:56,246][XNIO-1 task-13] INFO  DumpTransaction - [k8s] Begin Seach - Filter=(uid=tester);Base=o=Tremolo;Scope=2;Attributes=
[2020-04-08 15:36:56,271][XNIO-1 task-13] INFO  DumpTransaction - [k8s] Seach submitted
[2020-04-08 15:36:56,271][XNIO-1 task-13] INFO  AccessLog - RESULT op=6 con=5 result=0 time=26
[2020-04-08 15:36:56,271][XNIO-1 task-13] INFO  AccessLog - SRCH-RESULT op=6 con=5 entries=0 time=26
[2020-04-08 15:36:56,272][XNIO-1 task-13] INFO  DumpTransaction - [k8s] Begin Post Search Complete - Filter=(uid=tester);Base=o=Tremolo;Scope=2;Attributes=[]
[2020-04-08 15:36:56,272][XNIO-1 task-13] INFO  DumpTransaction - [k8s] Post Search Complete Complete
[2020-04-08 15:36:56,272][XNIO-1 task-13] INFO  AccessLog - SRCH-RESULT op=6 con=5 entries=0 time=27
[2020-04-08 15:36:56,277][XNIO-1 task-13] ERROR JITAuthMech - Could not execute workflow 'jitdb' on 'cn=Test Elek,ou=activedirectory,o=Data'com.tremolosecurity.provisioning.core.ProvisioningException: Could not reload user
	at com.tremolosecurity.provisioning.core.WorkflowImpl.executeWorkflow(WorkflowImpl.java:598)
	at com.tremolosecurity.provisioning.auth.JITAuthMech.doGet(JITAuthMech.java:126)
	at com.tremolosecurity.provisioning.auth.JITAuthMech.doPost(JITAuthMech.java:75)
	at com.tremolosecurity.proxy.auth.sys.AuthManagerImpl.execAuth(AuthManagerImpl.java:412)
	at com.tremolosecurity.proxy.auth.sys.AuthManagerImpl.nextAuth(AuthManagerImpl.java:125)
	at com.tremolosecurity.proxy.auth.sys.AuthManagerImpl.nextAuth(AuthManagerImpl.java:83)
	at com.tremolosecurity.proxy.auth.FormLoginAuthMech.doPost(FormLoginAuthMech.java:217)
	at com.tremolosecurity.proxy.auth.AuthMgrSys.doAuthMgr(AuthMgrSys.java:193)
	at com.tremolosecurity.embedd.NextEmbSys.nextSys(NextEmbSys.java:126)
	at com.tremolosecurity.proxy.auth.AzSys.doAz(AzSys.java:89)
	at com.tremolosecurity.embedd.NextEmbSys.nextSys(NextEmbSys.java:111)
	at com.tremolosecurity.proxy.auth.AuthSys.doAuth(AuthSys.java:118)
	at com.tremolosecurity.embedd.NextEmbSys.nextSys(NextEmbSys.java:105)
	at com.tremolosecurity.proxy.ConfigSys.doConfig(ConfigSys.java:293)
	at com.tremolosecurity.embedd.NextEmbSys.nextSys(NextEmbSys.java:93)
	at com.tremolosecurity.filter.UnisonServletFilter.doFilter(UnisonServletFilter.java:290)
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
	at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)
	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
	at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
	at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
	at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
	at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272)
	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104)
	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:376)
	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: com.tremolosecurity.provisioning.core.ProvisioningException: User cn=Test Elek,ou=activedirectory,o=Data does not exist
	at com.tremolosecurity.provisioning.core.WorkflowImpl.executeWorkflow(WorkflowImpl.java:594)
	... 45 more
com.tremolosecurity.provisioning.core.ProvisioningException: User cn=Test Elek,ou=activedirectory,o=Data does not exist
	at com.tremolosecurity.provisioning.core.WorkflowImpl.executeWorkflow(WorkflowImpl.java:594)
	at com.tremolosecurity.provisioning.auth.JITAuthMech.doGet(JITAuthMech.java:126)
	at com.tremolosecurity.provisioning.auth.JITAuthMech.doPost(JITAuthMech.java:75)
	at com.tremolosecurity.proxy.auth.sys.AuthManagerImpl.execAuth(AuthManagerImpl.java:412)
	at com.tremolosecurity.proxy.auth.sys.AuthManagerImpl.nextAuth(AuthManagerImpl.java:125)
	at com.tremolosecurity.proxy.auth.sys.AuthManagerImpl.nextAuth(AuthManagerImpl.java:83)
	at com.tremolosecurity.proxy.auth.FormLoginAuthMech.doPost(FormLoginAuthMech.java:217)
	at com.tremolosecurity.proxy.auth.AuthMgrSys.doAuthMgr(AuthMgrSys.java:193)
	at com.tremolosecurity.embedd.NextEmbSys.nextSys(NextEmbSys.java:126)
	at com.tremolosecurity.proxy.auth.AzSys.doAz(AzSys.java:89)
	at com.tremolosecurity.embedd.NextEmbSys.nextSys(NextEmbSys.java:111)
	at com.tremolosecurity.proxy.auth.AuthSys.doAuth(AuthSys.java:118)
	at com.tremolosecurity.embedd.NextEmbSys.nextSys(NextEmbSys.java:105)
	at com.tremolosecurity.proxy.ConfigSys.doConfig(ConfigSys.java:293)
	at com.tremolosecurity.embedd.NextEmbSys.nextSys(NextEmbSys.java:93)
	at com.tremolosecurity.filter.UnisonServletFilter.doFilter(UnisonServletFilter.java:290)
	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
	at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)
	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
	at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292)
	at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)
	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138)
	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135)
	at io.undertow.servlet.core.ServletReque

I addid a modified myvd:

#Global AuthMechConfig
server.globalChain=accesslog

server.globalChain.accesslog.className=com.tremolosecurity.proxy.myvd.log.AccessLog

server.nameSpaces=rootdse,myvdroot,shadowUsers,activedirectory
server.rootdse.chain=dse
server.rootdse.nameSpace=
server.rootdse.weight=0
server.rootdse.dse.className=net.sourceforge.myvd.inserts.RootDSE
server.rootdse.dse.config.namingContexts=o=Tremolo
server.myvdroot.chain=root
server.myvdroot.nameSpace=o=Tremolo
server.myvdroot.weight=0
server.myvdroot.root.className=net.sourceforge.myvd.inserts.RootObject

server.shadowUsers.chain=debug,mapping,api
server.shadowUsers.nameSpace=ou=shadow,o=Tremolo
server.shadowUsers.weight=0
server.shadowUsers.enabled=true
server.shadowUsers.debug.className=net.sourceforge.myvd.inserts.DumpTransaction
server.shadowUsers.debug.config.logLevel=info
server.shadowUsers.debug.config.label=k8s
server.shadowUsers.mapping.className=net.sourceforge.myvd.inserts.mapping.AttributeMapper
server.shadowUsers.mapping.config.mapping=mail=email,givenname=first_name,sn=last_name
server.shadowUsers.api.className=com.tremolosecurity.myvd.K8sCrdInsert
server.shadowUsers.api.config.nameSpace=openunison
server.shadowUsers.api.config.k8sTargetName=k8s

server.activedirectory.chain=objectguid2text,dnmapper,memberof,objmap,membertrans,ldap
server.activedirectory.nameSpace=ou=activedirectory,o=Data
server.activedirectory.weight=0
server.activedirectory.enabled=true
server.activedirectory.objectguid2text.className=com.tremolosecurity.proxy.myvd.inserts.util.UUIDtoText
server.activedirectory.objectguid2text.config.attributeName=objectGUID
server.activedirectory.dnmapper.className=net.sourceforge.myvd.inserts.mapping.DNAttributeMapper
server.activedirectory.dnmapper.config.dnAttribs=member,owner,member,distinguishedName,manager
server.activedirectory.dnmapper.config.localBase=ou=activedirectory,o=Data
server.activedirectory.dnmapper.config.urlAttribs=
server.activedirectory.dnmapper.config.remoteBase=#[AD_BASE_DN]
server.activedirectory.memberof.className=net.sourceforge.myvd.inserts.mapping.VirtualMemberOf
server.activedirectory.memberof.config.searchBase=ou=activedirectory,o=Data
server.activedirectory.memberof.config.applyToObjectClass=inetOrgPerson
server.activedirectory.memberof.config.attributeName=memberOf
server.activedirectory.memberof.config.searchObjectClass=groupOfNames
server.activedirectory.memberof.config.searchAttribute=member
server.activedirectory.memberof.config.replace=false
server.activedirectory.objmap.className=net.sourceforge.myvd.inserts.mapping.AttributeValueMapper
server.activedirectory.objmap.config.mapping=objectClass.inetOrgPerson=inetOrgPerson,objectClass.groupofnames=groupOfNames
server.activedirectory.membertrans.className=net.sourceforge.myvd.inserts.mapping.AttributeMapper
server.activedirectory.membertrans.config.mapping=member=member,uid=uid
server.activedirectory.ldap.className=com.tremolosecurity.proxy.myvd.inserts.ad.ADLdapInsert
server.activedirectory.ldap.config.host=#[AD_HOST]
server.activedirectory.ldap.config.port=#[AD_PORT]
server.activedirectory.ldap.config.remoteBase=#[AD_BASE_DN]
server.activedirectory.ldap.config.proxyDN=#[AD_BIND_DN]
server.activedirectory.ldap.config.proxyPass=#[AD_BIND_PASSWORD]
server.activedirectory.ldap.config.useSrvDNS=#[SRV_DNS]
server.activedirectory.ldap.config.ignoreRefs=true
server.activedirectory.ldap.config.passBindOnly=true
server.activedirectory.ldap.config.maxIdle=90000
server.activedirectory.ldap.config.maxMillis=90000
server.activedirectory.ldap.config.maxStaleTimeMillis=90000
server.activedirectory.ldap.config.minimumConnections=10
server.activedirectory.ldap.config.maximumConnections=10
server.activedirectory.ldap.config.usePaging=false
server.activedirectory.ldap.config.pageSize=0
server.activedirectory.ldap.config.heartbeatIntervalMillis=60000
server.activedirectory.ldap.config.type=#[AD_CON_TYPE]
server.activedirectory.ldap.config.sslSocketFactory=com.tremolosecurity.proxy.ssl.TremoloSSLSocketFactory

There is no user CRD in the openunison namespace.

Orchestra Startup issue

Getting the following exception after installing orchestra:

[2020-06-18 18:04:16,616][main] INFO OpenUnisonOnUndertow - OpenUnison XML File : '/usr/local/openunison/work/webapp/WEB-INF/unison.xml'
[2020-06-18 18:04:16,626][main] INFO OpenUnisonConfigLoader - No config from include files, using original
[2020-06-18 18:04:16,979][main] INFO OpenUnisonOnUndertow - Loading keystore : '/etc/openunison/unisonKeyStore.p12'
[2020-06-18 18:04:16,979][main] INFO OpenUnisonOnUndertow - Building Undertow
[2020-06-18 18:04:16,994][main] INFO OpenUnisonOnUndertow - Check if enabling HTTP2 - false
[2020-06-18 18:04:16,994][main] INFO OpenUnisonOnUndertow - Enabling HTTP2
[2020-06-18 18:04:16,996][main] INFO OpenUnisonOnUndertow - Adding open port : '8080'
[2020-06-18 18:04:17,484][main] INFO OpenUnisonOnUndertow - NOT Supporting TLS Protocol : 'SSLv2Hello'
[2020-06-18 18:04:17,485][main] INFO OpenUnisonOnUndertow - NOT Supporting TLS Protocol : 'TLSv1'
[2020-06-18 18:04:17,485][main] INFO OpenUnisonOnUndertow - NOT Supporting TLS Protocol : 'TLSv1.1'
[2020-06-18 18:04:17,485][main] INFO OpenUnisonOnUndertow - Supporting TLS Protocol : 'TLSv1.2'
[2020-06-18 18:04:17,485][main] INFO OpenUnisonOnUndertow - Configured TLS Listener on Port 8443
[2020-06-18 18:04:17,485][main] INFO OpenUnisonOnUndertow - Path to webapp : '/usr/local/openunison/work/webapp'
[2020-06-18 18:04:17,485][main] INFO OpenUnisonOnUndertow - Path directory? : 'true'
[2020-06-18 18:04:17,485][main] INFO OpenUnisonOnUndertow - Path exists : 'true'
[2020-06-18 18:04:18,020][main] INFO OpenUnisonServletFilter - Loading environment file : '/etc/openunison/ou.env'
[2020-06-18 18:04:18,020][main] INFO OpenUnisonServletFilter - Adding property : 'GITHUB_CLIENT_ID'
[2020-06-18 18:04:18,021][main] INFO OpenUnisonServletFilter - Adding property : 'K8S_DASHBOARD_NAMESPACE'
[2020-06-18 18:04:18,021][main] INFO OpenUnisonServletFilter - Adding property : 'K8S_DB_SECRET'
[2020-06-18 18:04:18,022][main] INFO OpenUnisonServletFilter - Adding property : 'K8S_URL'
[2020-06-18 18:04:18,022][main] INFO OpenUnisonServletFilter - Adding property : 'MYVD_CONFIG_PATH'
[2020-06-18 18:04:18,022][main] INFO OpenUnisonServletFilter - Adding property : 'OU_HOST'
[2020-06-18 18:04:18,022][main] INFO OpenUnisonServletFilter - Adding property : 'K8S_CLUSTER_NAME'
[2020-06-18 18:04:18,022][main] INFO OpenUnisonServletFilter - Adding property : 'K8S_API_HOST'
[2020-06-18 18:04:18,022][main] INFO OpenUnisonServletFilter - Adding property : 'K8S_DASHBOARD_HOST'
[2020-06-18 18:04:18,022][main] INFO OpenUnisonServletFilter - Adding property : 'GITHUB_TEAMS'
[2020-06-18 18:04:18,022][main] INFO OpenUnisonServletFilter - Adding property : 'OU_QUARTZ_MASK'
[2020-06-18 18:04:18,022][main] INFO OpenUnisonServletFilter - Adding property : 'PROMETHEUS_SERVICE_ACCOUNT'
[2020-06-18 18:04:18,022][main] INFO OpenUnisonServletFilter - Adding property : 'SESSION_INACTIVITY_TIMEOUT_SECONDS'
[2020-06-18 18:04:18,022][main] INFO OpenUnisonServletFilter - Adding property : 'K8S_SELF_LINK'
[2020-06-18 18:04:18,022][main] INFO OpenUnisonServletFilter - Adding property : 'K8S_IMPERSONATION'
[2020-06-18 18:04:18,022][main] INFO OpenUnisonServletFilter - Adding property : 'unisonKeystorePassword'
[2020-06-18 18:04:18,025][main] WARN OpenUnisonServletFilter - No context paths present, assuming the config path is WEB-INF/unison.xml
[2020-06-18 18:04:18,025][main] INFO OpenUnisonServletFilter - Initializing OpenUnison 1.0.18-2020042301
[2020-06-18 18:04:18,025][main] INFO OpenUnisonServletFilter - Unison Configuration File : 'WEB-INF/unison.xml'
[2020-06-18 18:04:18,030][main] INFO OpenUnisonConfigLoader - No config from include env, using original
[2020-06-18 18:04:18,031][main] INFO OpenUnisonConfigManager - Loading configuration - com.tremolosecurity.openunison.forceToSSL='true'
[2020-06-18 18:04:18,031][main] INFO OpenUnisonConfigManager - Loading configuration - com.tremolosecurity.openunison.openPort='8080'
[2020-06-18 18:04:18,031][main] INFO OpenUnisonConfigManager - Loading configuration - com.tremolosecurity.openunison.securePort='8443'
[2020-06-18 18:04:18,031][main] INFO OpenUnisonConfigManager - Loading configuration - com.tremolosecurity.openunison.externalOpenPort='80'
[2020-06-18 18:04:18,031][main] INFO OpenUnisonConfigManager - Loading configuration - com.tremolosecurity.openunison.externalSecurePort='443'
[2020-06-18 18:04:18,036][main] INFO OpenUnisonConfigManager - Loading configuration - com.tremolosecurity.openunison.activemqdir='/tmp/amq'
[2020-06-18 18:04:18,036][main] INFO OpenUnisonConfigManager - Loading configuration - com.tremolosecurity.openunison.quartzdir='/tmp/quartz'
[2020-06-18 18:04:18,068][main] INFO OpenUnisonConfigLoader - No config from include files, using original
[2020-06-18 18:04:18,085][main] INFO OpenUnisonConfigManager - Removing node : [filter: null] - [param: null]
[2020-06-18 18:04:18,088][main] INFO OpenUnisonConfigManager - Removing node : [results: null] - [azSuccess: null]
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:592)
at java.lang.Integer.parseInt(Integer.java:615)
at net.sourceforge.myvd.inserts.ldap.LDAPInterceptor.configure(LDAPInterceptor.java:107)
at net.sourceforge.myvd.core.InsertChain.configureChain(InsertChain.java:192)
at net.sourceforge.myvd.server.ServerCore.configureChain(ServerCore.java:72)
at net.sourceforge.myvd.server.ServerCore.buildNamespaces(ServerCore.java:134)
at net.sourceforge.myvd.server.ServerCore.startService(ServerCore.java:150)
at com.tremolosecurity.openunison.OpenUnisonConfigManager.loadMyVD(OpenUnisonConfigManager.java:348)
at com.tremolosecurity.config.util.UnisonConfigManagerImpl.initialize(UnisonConfigManagerImpl.java:372)
at com.tremolosecurity.filter.UnisonServletFilter.init(UnisonServletFilter.java:351)
at com.tremolosecurity.openunison.OpenUnisonServletFilter.init(OpenUnisonServletFilter.java:118)
at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:111)
at io.undertow.servlet.core.ManagedFilter.createFilter(ManagedFilter.java:80)
at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:591)
at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:556)
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at io.undertow.servlet.core.DeploymentManagerImpl.start(DeploymentManagerImpl.java:598)
at com.tremolosecurity.openunison.undertow.OpenUnisonOnUndertow.main(OpenUnisonOnUndertow.java:329)
Exception in thread "main" javax.servlet.ServletException: java.lang.NumberFormatException: For input string: ""
at com.tremolosecurity.filter.UnisonServletFilter.init(UnisonServletFilter.java:382)
at com.tremolosecurity.openunison.OpenUnisonServletFilter.init(OpenUnisonServletFilter.java:118)
at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:111)
at io.undertow.servlet.core.ManagedFilter.createFilter(ManagedFilter.java:80)
at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:591)
at io.undertow.servlet.core.DeploymentManagerImpl$2.call(DeploymentManagerImpl.java:556)
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at io.undertow.servlet.core.DeploymentManagerImpl.start(DeploymentManagerImpl.java:598)
at com.tremolosecurity.openunison.undertow.OpenUnisonOnUndertow.main(OpenUnisonOnUndertow.java:329)
Caused by: java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:592)
at java.lang.Integer.parseInt(Integer.java:615)
at net.sourceforge.myvd.inserts.ldap.LDAPInterceptor.configure(LDAPInterceptor.java:107)
at net.sourceforge.myvd.core.InsertChain.configureChain(InsertChain.java:192)
at net.sourceforge.myvd.server.ServerCore.configureChain(ServerCore.java:72)
at net.sourceforge.myvd.server.ServerCore.buildNamespaces(ServerCore.java:134)
at net.sourceforge.myvd.server.ServerCore.startService(ServerCore.java:150)
at com.tremolosecurity.openunison.OpenUnisonConfigManager.loadMyVD(OpenUnisonConfigManager.java:348)
at com.tremolosecurity.config.util.UnisonConfigManagerImpl.initialize(UnisonConfigManagerImpl.java:372)
at com.tremolosecurity.filter.UnisonServletFilter.init(UnisonServletFilter.java:351)
... 9 more

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.