Hello, new here, I just installed the ziti-controller (v1.8.0) on Kubernetes with the Helm chart. I also currently have a Let's Encrypt certificate for the webBindingPki.
I’m trying to setup my IDP (Authentik) to work with Ziti, and to provision users with just-in-time (JIT) through OIDC/JWT, as I saw it’s now possible with the 1.8.0 release.
My IDP seem correctly setup with Ziti, I can select Authentik in my desktop-edge-win client and authenticate with it (the redirection/callback URL all work). The only problem is that if my user isn’t created BEFORE the authentication, then I got the following error:
{"authMethod":"ext-jwt","authenticatorId":"","externalId":"astro@mydomain.com","file":"github.com/openziti/ziti/controller/model/authenticator_mod_cert.go:536","func":"github.com/openziti/ziti/controller/model.getAuthPolicyByExternalId","level":"error","msg":"identity not found by externalId","time":"2025-12-16T18:48:43.618Z"}
{"authMethod":"ext-jwt","file":"github.com/openziti/ziti/controller/model/authenticator_mod_ext_jwt.go:229","func":"github.com/openziti/ziti/controller/model.(*AuthModuleExtJwt).process","level":"error","msg":"encountered 1 candidate and all failed to validate for primary authentication, see the following log messages","time":"2025-12-16T18:48:43.618Z"}
{"authMethod":"ext-jwt","error":"error during authentication policy and identity lookup by claims type [external id] and claim id [astro@mydomain.com]: INVALID_AUTH: The authentication request failed","expectedAudience":"openziti","file":"github.com/openziti/ziti/controller/model/authenticator_mod_ext_jwt.go:84","func":"github.com/openziti/ziti/controller/model.(*AuthTokenVerificationResult).LogResult","issuer":"https://auth.mydomain.com/application/o/openziti/","level":"error","msg":"failed to validate candidate JWT at index 0","time":"2025-12-16T18:48:43.620Z","tokenAudiences":["openziti"],"tokenIssuerId":"6K1GTY5jkXySS8Kgd2LMsw","tokenIssuerType":"externalJwtSigner"}
Which is strange because I taught that it was now possible with the v1.8.0… Here is my config for my JWT Signers:
{
"_links": {
"self": {
"href": "./external-jwt-signers/6K1GTY5jkXySS8Kgd2LMsw"
}
},
"createdAt": "2025-12-16T18:48:08.046Z",
"id": "6K1GTY5jkXySS8Kgd2LMsw",
"tags": {},
"updatedAt": "2025-12-16T18:48:08.046Z",
"audience": "openziti",
"certPem": null,
"claimsProperty": "email",
"clientId": "openziti",
"commonName": "",
"enabled": true,
"enrollAttributeClaimsSelector": "email",
"enrollAuthPolicyId": "6WXHkQkdxh0yGi9MzTqdMX",
"enrollNameClaimsSelector": "email",
"enrollToTokenEnabled": true,
"externalAuthUrl": "https://auth.mydomain.com/application/o/openziti/",
"fingerprint": null,
"issuer": "https://auth.mydomain.com/application/o/openziti/",
"jwksEndpoint": "https://auth.mydomain.com/application/o/openziti/jwks/",
"kid": null,
"name": "authentik",
"notAfter": "0001-01-01T00:00:00.000Z",
"notBefore": "0001-01-01T00:00:00.000Z",
"scopes": [
"email",
"openid"
],
"targetToken": "ACCESS",
"useExternalId": true
}
As you can see I’ve enabled “enrollToTokenEnabled“ which should provision and enroll my users, but it doesn’t seem to work…
Thank you all !