27 Commits

Author SHA1 Message Date
Andrew Martinez 948735d86c fixes openziti/ziti#4094 accept first-party certs issued by a separat… (#4140)
* fixes openziti/ziti#4094 accept first-party certs issued by a separate edge signing CA

- adds FirstPartyX509CertValidation and ThirdPartyX509CertValidation usages and an
  intermediates field to the router data model public keys, deprecating
  ClientX509CertValidation
- publishes config CA bundle roots as first-party anchors with their intermediates and
  Ca store entries as third-party anchors; controller certs carry JWT validation only,
  since a controller identity is never a CA and anchors no client cert chains
- builds router first-party and client cert trust pools from the published usages,
  falling back to the deprecated usage against older controllers
- propagates the full signing cert chain between controllers via a new mesh
  SigningCertChainHeader and persists whole chains in controller records
- removes the orphaned InstantStrategy.AddPublicKey, dead since public key sync moved
  to controller list data
- gives each command dispatcher its own decoder registry so multiple in-process
  controllers no longer decode into the last-started controller's managers
- adds a three-controller in-process HA test harness with a split signing PKI,
  cluster formation and first-party cert integration tests
- trusts the edge signing CA when verifying router control channel certs
- adds a variadic additionalRoots parameter to VerifyLeafCertChain, applied to a
  clone of the caller's pool so an identity's live tls.Configs are unaffected
- passes the edge enrollment signing CA bundle as additional roots when admitting
  a router control channel connection, so a deployment whose signing CA sits
  outside the controller's own trust bundle no longer has every router refused
- leaves the fingerprint check bound to the verified leaf, so the wider anchor set
  changes which chains verify, not which routers are admitted
- covers the split-root case and the caller-pool guarantee in common/cert tests
2026-08-26 14:07:31 -04:00
Paul Lorenz 95a9ed00f8 Fix oidc-listener-bind-failure test config to use new test PKI
- repoints the controller identity and enrollment signingCert to the ziti
  pki generated testdata/pki tree, replacing the removed
  testdata/ca/intermediate key/cert paths
- sets trustDomain to ziti.test to match the regenerated PKI
2026-06-29 22:12:31 -04:00
Andrew Martinez 1b180d14e8 fix #3933 add controller to enrollment response (#3947)
* fix #3933 add controller to enrollment response

- adds the cluster's controllers to ott, ottca, updb, and token enrollment
  responses with client and OIDC API addresses only
- synthesizes the running controller with its API addresses in non-HA mode
  so the list is never empty
- adds --not-before to ziti pki create for backdated test CAs
- replaces the test PKI with a SPIFFE-capable, ziti pki generated and managed
  one and rewires the config sets
- tests the controller list across ott/ottca/updb/token, non-HA, and raft

* fix missing wildcard cert from new PKI

* go mod tidy
2026-06-29 11:44:23 -04:00
Andrew Martinez cdc3241144 fixes #3992 stop controller panic when a web server listener fails (#4006)
- updates openziti/xweb/v3 for actual fix
  - adds Test_OidcListener_BindFailure_DoesNotPanic and the
    oidc-listener-bind-failure config set, asserting the controller keeps
    the other web servers running when an edge-oidc listener cannot bind
2026-06-29 11:18:03 -04:00
dovholuknf 4af10297d3 rework wildcard oidc per PR comments 2026-06-03 13:15:49 -04:00
dovholuknf 92fa63adaa fix openziti/ziti#3891: oidc auth fails with wildcard server-cert SANs. add wildcard-cert discovery test + keep wildcard SANs as issuers 2026-06-01 11:07:05 -04:00
Andrew Martinez 82e9870cd6 fixes #3806 expose OpenZiti endpoints in OIDC discovery document (#3808)
* fixes #3806 expose OpenZiti endpoints in OIDC discovery document

- adds vendor-specific "openziti_endpoints" field to the
  /.well-known/openid-configuration response
- overrides Discovery() on the OIDC server to wrap the standard config
  with OpenZiti login and MFA endpoint URLs
- advertises password, cert, ext-jwt, totp, totp enrollment, and
  auth query endpoints as absolute URLs derived from the issuer
- adds integration test verifying all openziti_endpoints fields
- adds dual-server integration test confirming endpoint URLs reflect
  the correct issuer when edge-oidc is hosted on multiple bind points

* changelog
2026-04-22 10:54:53 -04:00
Andrew Martinez a9dd2fc8f8 fix.openziti.ziti.3597.OIDC.by.default (#3605)
* fixes #3597, enable OIDC by default

- adds ability to have different sets of environment configs for tests
- adds ConfigSet struct as a configuration device for integration tests
  - allows entire environments to be defined as needed
  - original ats config set at "default-ats"
  - tests that do not specify a config set, use "default-ats" as before
- standardizes configuration location, naming, etc.
- adds README.md for the above
- updates testContext to now be config set aware
- add config value to disable, update tests, changelog
- add defense against cached version data for tests
2026-03-04 10:03:14 -05:00
Paul Lorenz 701fe9ffd9 Move fabric router/service/terminators rest api code common location 2025-12-05 10:35:25 -05:00
Paul Lorenz cc7eefaf24 Add support for tracking network interfaces on routers and identities. Fixes #3082. Add network discover to router. Fixes #3083 2025-06-17 09:32:51 -04:00
Andrew Martinez 6ecca65c85 fixes #2165 adds network id configuration/spiffe id look up
- adds support for trust domain lookup on x509 chain
- adds support for non-ha trustDomain configuration
- adds default generated trust domain for non-ha controllers
- non-HA controllers will generate a trust domain from the root CA if
  possible
- additionalTrustDomains has been added for transitioning between trust
  domains

update changelog.md
2024-07-03 10:23:50 -04:00
Kenneth Bingham 57f95d6745 de-hyphenate old mentions of ziti-router as 'ziti router' 2024-04-22 17:30:30 -04:00
Paul Lorenz 08e51b8166 Merge remote-tracking branch 'fabric/main' into merge-fabric 2023-09-28 23:33:13 -04:00
Cam Otts 1a6fb53271 Router controller updates (#537)
* progress on controller communication

* added yaml encoding/decoding

* move dispatch callbacks to be more consistent

* update unit tests

* small cleaups

* Add new datadir to unit tests

* fix linter

* Was able to use FSM hooks to get configuration updates to show raft state

* Send index to prevent older versions from being applied and added leader override

* pr comments and added/removed ctrl connections

* added error logging

* pr comments

* spelling and bad log newlines

* added delete from the toconnect map and added end case to the background connect

* reordered removal from map

* added mtx around access. Forgot that was changed to be unsopported.
2023-01-18 09:19:13 -06:00
Paul Lorenz 630378121a Remove management channel 2022-06-29 16:07:10 -04:00
Paul Lorenz 2b7db10913 Allow routers more control over link management (#318)
* Allow routers more control over link management
2022-03-07 12:22:17 -05:00
Paul Lorenz 5b6a2eb988 Fix fabric auth and add tests 2021-12-01 17:03:41 -05:00
Paul Lorenz a21b147b0b Add fabric auth tests 2021-12-01 16:12:29 -05:00
Paul Lorenz db86c995c9 Add test for link dials 2021-11-15 14:56:48 -05:00
Paul Lorenz f3e9961524 Add initial AT infrastructure, largely copied from edge. Add mgmt channel test 2021-11-12 16:30:56 -05:00
Andrew Martinez 9c89cb08c2 fix enrollment issues if no previous enrollment exists 2021-10-19 11:25:56 -04:00
Paul Lorenz 14eb819b30 Model performance test, work in progress 2020-07-28 10:01:34 -04:00
Andrew Martinez 214c25a628 adds transit router enrollment and CRUD, resolves #27
- allows fabric routers to  be created in an unenrolled state
- allows fabric routers to be CRUD
- converts both edge and transit routers to use the same enrollment
facilities as identities (1st step to merge)
- migrations for enrollment changes
- adds ability to extend a base store
- add external cleanup logic to tx router to handle isbase=true
- use router handler for is connected status
2020-04-01 10:10:34 -04:00
Paul Lorenz f0257f6ccf Support for multiple endpoints 2020-03-19 13:31:31 -04:00
Andrew Martinez 73a553fd96 GH-18 gitignores to lf 2019-12-18 13:41:07 -05:00
Andrew Martinez c3483676ec GH-18 pem testdata to lf 2019-12-18 13:40:22 -05:00
Andrew Martinez c8e2729f05 GH-18 removes ziti-edge/edge folder and moves all contents up 1 row
- Updates .gitignore files
- Fixes imports
2019-12-18 10:02:25 -05:00