Skip to content

docs: add request object doc#14126

Open
ossdhaval wants to merge 1 commit into
mainfrom
docs-request-object
Open

docs: add request object doc#14126
ossdhaval wants to merge 1 commit into
mainfrom
docs-request-object

Conversation

@ossdhaval
Copy link
Copy Markdown
Contributor

@ossdhaval ossdhaval commented May 21, 2026

Prepare


Description

Target issue

closes #4731

Implementation Details


Test and Document the changes

  • Static code analysis has been run locally and issues have been fixed
  • Relevant unit and integration tests have been added/updated
  • Relevant documentation has been updated if any (i.e. user guides, installation and configuration guides, technical design docs etc)

Please check the below before submitting your PR. The PR will not be merged if there are no commits that start with docs: to indicate documentation changes or if the below checklist is not selected.

  • I confirm that there is no impact on the docs due to the code changes in this PR.

Summary by CodeRabbit

  • Documentation
    • Added "Using Request Objects" section to authorization endpoint documentation, describing JWT parameter passing via request and request_uri.
    • Completed comprehensive OpenID Connect Request Objects documentation including configuration guidance, validation behaviors, encryption/signing requirements, error responses, and claim precedence rules.

Review Change Stack

Signed-off-by: Dhaval D <343411+ossdhaval@users.noreply.github.com>
@ossdhaval ossdhaval requested a review from yuriyz May 21, 2026 12:48
@ossdhaval ossdhaval self-assigned this May 21, 2026
@mo-auto
Copy link
Copy Markdown
Member

mo-auto commented May 21, 2026

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 21, 2026

📝 Walkthrough

Walkthrough

This PR adds comprehensive documentation for OpenID Connect Request Objects in Janssen Server. The main documentation file replaces placeholder content with detailed sections covering how to pass authorization request parameters as signed and optionally encrypted JWTs, validation rules, server and client configuration, error handling, and discovery metadata. A brief cross-reference is also added to the authorization endpoint documentation.

Changes

OpenID Connect Request Objects Documentation

Layer / File(s) Summary
Authorization endpoint cross-reference
docs/janssen-server/auth-server/endpoints/authorization.md
Added a "Using Request Objects" section explaining request and request_uri parameters and linking to the Request Objects documentation.
Request Objects concept and protocol
docs/janssen-server/auth-server/openid-features/request-objects.md
Introduced the Request Objects feature with protocol links, explained request (by-value) and request_uri (by-reference) parameters, and documented JWT claim supersession and parameter constraints.
Request Object by reference handling
docs/janssen-server/auth-server/openid-features/request-objects.md
Documented request_uri discovery flags, claim supersession behavior, remote resource structuring, and non-normative client implementation examples.
Validation, signing, and encryption
docs/janssen-server/auth-server/openid-features/request-objects.md
Specified request_uri validation against pre-registered URIs and blocklists, JWT signing/encryption requirements, nested JWS-in-JWE expectations, and enforcement flags for mandatory signed/encrypted objects.
Error responses and request-object-specific codes
docs/janssen-server/auth-server/openid-features/request-objects.md
Added error response table for Request Object-specific codes (invalid_request_object, invalid_request_uri, etc.) and noted applicability of standard authorization errors.
Server configuration and properties
docs/janssen-server/auth-server/openid-features/request-objects.md
Documented Janssen Server authorization server properties including enable/disable flags, supported algorithms, enforcement toggles, hash verification, and FAPI compatibility checks.
Client configuration and discovery metadata
docs/janssen-server/auth-server/openid-features/request-objects.md
Documented per-client Request Object signing/encryption requirements, request_uris pre-registration, OpenID Provider Metadata discovery claims, and the Janssen JWKS URL for client encryption.
Related documentation links
docs/janssen-server/auth-server/openid-features/request-objects.md
Added cross-references to authorization endpoint, PAR, client configuration, server properties, and security best practices documentation.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Suggested labels

area-documentation, comp-docs

Suggested reviewers

  • yuriyz
  • manojs1978
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The PR title 'docs: add request object doc' is directly related to the changes, describing the addition of Request Object documentation as the main objective.
Description check ✅ Passed The PR description follows the required template with target issue #4731 linked and documentation checklist acknowledged, though implementation details section is empty and testing checkboxes are unchecked.
Linked Issues check ✅ Passed The PR successfully implements the Request Object documentation with detailed content covering general definition, Janssen-specific configuration, claim precedence, error handling, and metadata—meeting all coding-related requirements from issue #4731.
Out of Scope Changes check ✅ Passed All changes are documentation-only, focused on Request Object feature documentation as specified in issue #4731. No out-of-scope code changes or unrelated modifications are present.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs-request-object

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mo-auto mo-auto added area-documentation Documentation needs to change as part of issue or PR comp-docs Touching folder /docs labels May 21, 2026
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/janssen-server/auth-server/openid-features/request-objects.md`:
- Around line 160-161: Add step-by-step CLI and TUI guidance plus screenshots to
the "Configure global Request Object settings" section that currently only
references Janssen TUI / Config API; specifically, include an example CLI
sequence using the Janssen config-api client (showing the exact command(s) to
set request object properties), a TUI walkthrough labeled "Auth Server ->
Properties -> Request Objects" with 3 annotated screenshots (open list, edit
modal, save/confirm), and a short example JSON payload for the Config API call
to mirror the CLI/TUI change. Update the text around the existing "Janssen TUI"
and "Auth Server -> Properties" references to link to the new screenshots and
the Config API example so readers can follow either path.
- Line 194: Replace the camelCase server property name with the discovery claim
name: change any occurrences of "requireRequestUriRegistration" to the discovery
claim "require_request_uri_registration" in the request_uris table/description
(and the nearby occurrences noted around lines 219-222) so the doc consistently
references the runtime discovery metadata key used by clients and discovery
responses.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: f135f480-a167-4bed-a945-e4debf3b4327

📥 Commits

Reviewing files that changed from the base of the PR and between 92b8739 and e38b937.

📒 Files selected for processing (2)
  • docs/janssen-server/auth-server/endpoints/authorization.md
  • docs/janssen-server/auth-server/openid-features/request-objects.md

Comment on lines +160 to +161
Configure global Request Object settings using the [Janssen TUI](../../config-guide/config-tools/jans-tui/README.md) (`Auth Server` -> `Properties`) or Config API.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

Missing required command-line + screenshot guidance for configuration flow.

The issue scope asks for TUI/command-line instructions and screenshots, but this page currently only references TUI/API at a high level (Line 160 and Line 187) without actionable CLI steps or UI screenshots. Please add at least one concrete CLI path and corresponding screenshots so this can fully satisfy the linked objective.

Also applies to: 187-188

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/janssen-server/auth-server/openid-features/request-objects.md` around
lines 160 - 161, Add step-by-step CLI and TUI guidance plus screenshots to the
"Configure global Request Object settings" section that currently only
references Janssen TUI / Config API; specifically, include an example CLI
sequence using the Janssen config-api client (showing the exact command(s) to
set request object properties), a TUI walkthrough labeled "Auth Server ->
Properties -> Request Objects" with 3 annotated screenshots (open list, edit
modal, save/confirm), and a short example JSON payload for the Config API call
to mirror the CLI/TUI change. Update the text around the existing "Janssen TUI"
and "Auth Server -> Properties" references to link to the new screenshots and
the Config API example so readers can follow either path.

| `request_object_signing_alg` | JWS algorithm that must be used to sign Request Objects sent to the OP. Request Objects signed with another algorithm are rejected. Used for both `request` and `request_uri`. The value `none` may be used unless server policy forbids it. |
| `request_object_encryption_alg` | JWE `alg` the RP may use to encrypt Request Objects. Include this when symmetric encryption is used so the OP can derive the key from `client_secret`. If both signing and encryption are used, the object is signed then encrypted (nested JWT). |
| `request_object_encryption_enc` | JWE `enc` algorithm. If `request_object_encryption_alg` is set, `request_object_encryption_enc` should also be provided (default in spec: `A128CBC-HS256`). |
| `request_uris` | Pre-registered `request_uri` values. When the client defines this list, Janssen only accepts `request_uri` values that match. When [requireRequestUriRegistration](../../reference/json/properties/janssenauthserver-properties.md#requirerequesturiregistration) is `true` in discovery, pre-registration is required. If request file contents can change, include the base64url SHA-256 hash of the file as the URI fragment. |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use the discovery claim name (snake_case) instead of server property name in discovery context.

Line 194 says "requireRequestUriRegistration is true in discovery", but discovery uses require_request_uri_registration (as correctly listed at Line 221). This can confuse readers about where to check runtime metadata.

Suggested wording update
-| `request_uris` | Pre-registered `request_uri` values. When the client defines this list, Janssen only accepts `request_uri` values that match. When [requireRequestUriRegistration](../../reference/json/properties/janssenauthserver-properties.md#requirerequesturiregistration) is `true` in discovery, pre-registration is required. If request file contents can change, include the base64url SHA-256 hash of the file as the URI fragment. |
+| `request_uris` | Pre-registered `request_uri` values. When the client defines this list, Janssen only accepts `request_uri` values that match. When discovery claim `require_request_uri_registration` is `true` (controlled by [requireRequestUriRegistration](../../reference/json/properties/janssenauthserver-properties.md#requirerequesturiregistration)), pre-registration is required. If request file contents can change, include the base64url SHA-256 hash of the file as the URI fragment. |

Also applies to: 219-222

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/janssen-server/auth-server/openid-features/request-objects.md` at line
194, Replace the camelCase server property name with the discovery claim name:
change any occurrences of "requireRequestUriRegistration" to the discovery claim
"require_request_uri_registration" in the request_uris table/description (and
the nearby occurrences noted around lines 219-222) so the doc consistently
references the runtime discovery metadata key used by clients and discovery
responses.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-documentation Documentation needs to change as part of issue or PR comp-docs Touching folder /docs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs(OIDC features): create documentation for Request Object

2 participants