Repository navigation
feat: guide human-gated clearing on Okta and other customer IdPs - #61
Conversation
Gateways now bind human-gated clears on the claim that identifies the same person in both tokens, detected from the issuer host: Entra ID and Okta are recognised, and SESSION_SUBJECT_PROVIDER in `gateway.advanced` covers an Okta custom domain or a sovereign-cloud Entra ID issuer. The gateway-config skill now tells users how to set up the clearing app on Okta (Native app, Okta-generated client ID, in the authorization server's access policy), which redirect URI to register, that intent clears need intent capture, and when to set the provider. The vendored schema reference picks up the matching `session_control.client_id` guidance; the digest is regenerated and its pinned hash bumped. Only that rationale string changed, so no safe-default seed moved. Bumps the plugin to 1.3.5.
|
Ready for review, but shouldn't merge yet. This needs to wait until after the production deploy that includes the updated gateway version, since the guidance describes behaviour that ships in that release. |
The schema reference was re-copied for the session_control.client_id guidance; the validator bundle is built from the same schema, so it is re-vendored from the same source revision and its pinned hash bumped. Only that rationale string differs.
The identity-claim note and the vendored client_id guidance now lead with the default: Entra ID and Okta are detected and every other issuer, Auth0 included, is standard OIDC. The setting is only for an Okta custom domain or a sovereign-cloud Entra ID issuer. Schema and validator bundle are re-vendored from the same source revision and their pins bumped.
oschaaf
left a comment
There was a problem hiding this comment.
Approving, but please don't merge until the gateway release that carries this behaviour is in production. The body says to keep this as a draft, but it isn't marked as one, and skill content reaches users as soon as it merges.
Checked:
- All three
plugin.jsonmanifests are at 1.3.5, with no 1.3.4 left anywhere.marketplace.jsonis untouched. - The vendored
schema-reference.jsonis byte-identical to the product's regenerated copy. The pinned hashes inschemaArtifact.tsandvalidatorBundle.tsmatch their files. The bundle diff comes only from the embeddedclient_idrationale and an adjacent comment, so there is no behaviour change. generate-schema-digest --checkandbuild-openai-plugin --checkpass, and CI is green.
Should-fix
SKILL.md~415, the Okta bullet: besides including the app in the authorization server's access policy, the policy rule must allow the Authorization Code grant and theopenidandemailscopes. Otherwise authorize fails. The redirect URI bullet is correct as written.
Nits
SKILL.md~418-419, "anything else fails the deploy": that's only true once the gateway doing the validation runs a build that knows the setting. Older builds ignore it. Suggest "is rejected by a gateway build that supports the setting".- If the product schema text changes before merge,
schema-reference.json, the digest hash, both pinned constants and the bundle need re-vendoring together.
… timing - The Okta authorization server's access-policy rule must allow the Authorization Code grant and the openid and email scopes. - A bad SESSION_SUBJECT_PROVIDER fails the deploy only once the gateway runs a version that knows the setting; an empty value means auto. Point at the startup log line that shows the mapping in effect. - Re-vendor the config validator bundle and bump its pinned sha256.
|
Round 2 at bfdba85: approval stands. Leaving As before, please hold the merge until the gateway release is in production. If the product schema text changes again, re-vendor all of it together. |
…undle Brings in the stricter jwt_issuer rule (no surrounding spaces, quotes, comment or control characters) alongside the session-clearing text, and bumps both pinned sha256s and the schema digest.
What
The
dtwo-gateway-configskill gets guidance for arming human-gated clearing on a gateway that authenticates against the customer's own IdP:<gateway origin>/session-control/clear/callback, or thesession_control.redirect_urivalue, and when that override is required.gateway.intent.enabled: true; without itset_intentstores nothing.SESSION_SUBJECT_PROVIDERingateway.advanced.The vendored
schema-reference.jsonis re-copied from the product's schema generator, picking up the updatedsession_control.client_idguidance. The digest is regenerated and the pinned artifact hash bumped. Only that one rationale string changed, so no safe-default seed moved.The plugin version goes to 1.3.5 in all three manifests.
Merge timing
This describes gateway behaviour in the next gateway release. Keep it as a draft until that release is out.
Checks
node scripts/generate-schema-digest.mjs --checkpasses.skill-harness:pnpm test(183 pass),biome:checkandtypecheckare clean.node scripts/build-openai-plugin.mjs --checkpasses.