Skip to content

Document JWT Bearer Flow trust assumptions#343

Merged
jpengar merged 4 commits intocamaraproject:mainfrom
sfnuser:sfnuser/jwt-bearer-sub-claim
Feb 4, 2026
Merged

Document JWT Bearer Flow trust assumptions#343
jpengar merged 4 commits intocamaraproject:mainfrom
sfnuser:sfnuser/jwt-bearer-sub-claim

Conversation

@sfnuser
Copy link
Contributor

@sfnuser sfnuser commented Jan 27, 2026

What type of PR is this?

  • correction

What this PR does / why we need it:

As agreed on the issue #338 discussion, this commit explicitly documents the trust relationship when using tel: prefix as sub claim.

Which issue(s) this PR fixes:

Fixes #338

Special notes for reviewers:

Changelog input

 Document trust assumption in JWT Bearer flow when using `tel:` prefix

Additional documentation

N/A

@linux-foundation-easycla
Copy link

linux-foundation-easycla bot commented Jan 27, 2026

CLA Signed

The committers listed above are authorized under a signed CLA.

  • ✅ login: jpengar / name: Jesús Peña García-Oliva (7064768)
  • ✅ login: sfnuser / name: Ramesh Shanmugasundaram - Spry Fox Networks (e9fb65e, 2e8999d, 71b4b1d)

@sfnuser sfnuser marked this pull request as ready for review January 27, 2026 11:04
@jpengar jpengar added this to the Spring26 meta-release milestone Jan 27, 2026
jpengar
jpengar previously approved these changes Jan 27, 2026
Copy link
Collaborator

@jpengar jpengar left a comment

Choose a reason for hiding this comment

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

LGTM. Just one small writing suggestion.

sebdewet
sebdewet previously approved these changes Jan 28, 2026
Copy link
Collaborator

@sebdewet sebdewet left a comment

Choose a reason for hiding this comment

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

LGTM with the modification asked by @jpengar

Co-authored-by: Jesús Peña García-Oliva <jesus.penagarcia-oliva@telefonica.com>
@sfnuser sfnuser dismissed stale reviews from sebdewet and jpengar via e9fb65e January 28, 2026 13:14
jpengar
jpengar previously approved these changes Jan 28, 2026
@jpengar
Copy link
Collaborator

jpengar commented Feb 2, 2026

@sebdewet @AxelNennker and all,
Please provide your reviews so that I can proceed with creating the ICM Spring26 release candidate PR. Thank you!

The API Consumer selects the User Identifier. The User is identified by the `sub` claim in the JWT assertion, which must uniquely identify the User in the Operator's system. As per the CAMARA Security and Interoperability Profile, the `sub` claim MUST be either a phone number prefixed by "tel:" or a TS.43 token prefixed by "operatortoken:".
The API Consumer selects the User Identifier. The User is identified by the `sub` claim in the JWT assertion, which must uniquely identify the User in the Operator's system. As per the CAMARA Security and Interoperability Profile, the `sub` claim MUST be either a phone number prefixed by `tel:` or a TS.43 token prefixed by `operatortoken:`.

Unlike the `operatortoken:` prefix for the `sub` claim, which originates from a TS.43 flow and provides a stronger binding to a Subscriber context, the use of the `tel:` prefix in the JWT Bearer Flow is applicable in scenarios where a pre-established trust relationship exists between the API Consumer and the API Provider. In this case, the API Consumer is responsible for asserting the phone number in the sub claim and for ensuring that this value accurately represents the intended Subscriber. The API Provider, in turn, relies on this trust relationship when accepting the assertion and does not independently validate the origin of the phone number. The mechanism by which the API Consumer obtains or verifies the phone number used in the `sub` claim is outside the scope of CAMARA specifications.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can we add a part where it is define clearly that the API Consumer must ensure the verification and validation of the phone number, including checking that the number is in the correct international format. The operator should not solely rely on the assertion in the JWT but expect the API Consumer to perform proper formatting and validation before asserting the number.

Copy link
Collaborator

@jpengar jpengar Feb 2, 2026

Choose a reason for hiding this comment

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

I think this topic about formatting phone numbers is quite relevant, but not strictly related to the issue this PR is trying to fix. As we did for the login_hint, I think the phone number format in the JWT Bearer assertion must be specified in the ICM profile. The format would be the same as "tel:" in login_hint.

Considering this PR is the only dependency currently needed to generate the ICM Spring26 release candidate PR, we can take advantage of this PR to complete the format clarification in the profile if it can be done with minimal effort or discussion. Otherwise, I will not include the format clarification for "tel:" in the JWT Bearer "sub" claim in this PR, handling it as an editorial correction in a new issue instead. This will not block the RC generation.

WDYT?

Copy link
Collaborator

Choose a reason for hiding this comment

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

We may want to add something like this to the text above:

The JWT Bearer sub claim format for CAMARA is defined in the [CAMARA Security and Interoperability Profile](link to sub format definition in ICM profile).

Then, add the required changes to the ICM profile.

Copy link
Collaborator

@jpengar jpengar Feb 3, 2026

Choose a reason for hiding this comment

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

@sebdewet @sfnuser @AxelNennker Given that there hasn’t been further response on the remaining Seb's comment about the phone number format, my suggestion is that we go ahead with merging this PR if there are no outstanding objections. The current change is stable and tidy, and merging it will allow us to proceed with preparing the ICM Spring26 release candidate.

We can address the "tel:" prefix formatting concern in a follow-up issue after this merge and include it as an editorial fix post-RC. That lets us keep momentum on the release cadence without blocking on a detail we can clean up soon after.

To keep the schedule aligned with the Spring26 meta-release plan, let’s aim to merge this PR by tomorrow so that the release candidate can be created in time for the TSC approval next Thursday.

If you have any objections to this plan, please comment here before noon tomorrow. Otherwise, I will proceed with merging.

Thanks!

CC @tanjadegroot

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Please proceed 👍🏼

Copy link
Collaborator

Choose a reason for hiding this comment

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

@sebdewet I created an issue on GitHub to track the topic about the phone number format for the sub claim: #345.

Copy link
Collaborator

@sebdewet sebdewet left a comment

Choose a reason for hiding this comment

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

LGTM

@jpengar jpengar merged commit a72c8a2 into camaraproject:main Feb 4, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

JWT Bearer Flow - sub claim assumption?

3 participants