Skip to content
Navigation Menu
Sign in
Appearance settings
Platform
AI CODE CREATION
GitHub Copilot
Write better code with AI
GitHub Copilot app
Direct agents from issue to merge
MCP Registry
Integrate external tools
DEVELOPER WORKFLOWS
Actions
Automate any workflow
Codespaces
Instant dev environments
Issues
Plan and track work
Code Review
Manage code changes
Code Quality
Enforce quality at merge
APPLICATION SECURITY
GitHub Advanced Security
Find and fix vulnerabilities
Code security
Secure your code as you build
Secret protection
Stop leaks before they start
EXPLORE
Why GitHub
Documentation
Blog
Changelog
Marketplace
View all features
Solutions
BY COMPANY SIZE
Enterprises
Small and medium teams
Startups
Nonprofits
BY USE CASE
App Modernization
DevSecOps
DevOps
CI/CD
View all use cases
BY INDUSTRY
Healthcare
Financial services
Manufacturing
Government
View all industries
View all solutions
Resources
EXPLORE BY TOPIC
AI
Software Development
DevOps
Security
View all topics
EXPLORE BY TYPE
Customer stories
Events & webinars
Ebooks & reports
Business insights
GitHub Skills
SUPPORT & SERVICES
Documentation
Customer support
Community forum
Trust center
Partners
View all resources
Open Source
COMMUNITY
GitHub Sponsors
Fund open source developers
PROGRAMS
Security Lab
Maintainer Community
Accelerator
GitHub Stars
Archive Program
REPOSITORIES
Topics
Trending
Collections
Enterprise
ENTERPRISE SOLUTIONS
Enterprise platform
AI-powered developer platform
AVAILABLE ADD-ONS
GitHub Advanced Security
Enterprise-grade security features
Copilot for Business
Enterprise-grade AI features
Premium Support
Enterprise-grade 24/7 support
Pricing
Type
/
to search
Sign in
Sign up
Appearance settings
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
Uh oh!
There was an error while loading.
Please reload this page
.
nextcloud
/
user_oidc
Public
Notifications
You must be signed in to change notification settings
Fork
59
Star
179
Code
Issues
85
Pull requests
17
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Add private key jwt auth
- #1241
#1241
Draft
julien-nc
wants to merge 25 commits into
main
nextcloud/user_oidc:main
from
enh/noid/private-key-jwt-auth
nextcloud/user_oidc:enh/noid/private-key-jwt-auth
Copy head branch name to clipboard
Conversation
Commits
25
(25)
Checks
Files changed
Draft
Add private key jwt auth
#1241
julien-nc
wants to merge 25 commits into
main
nextcloud/user_oidc:main
from
enh/noid/private-key-jwt-auth
nextcloud/user_oidc:enh/noid/private-key-jwt-auth
Copy head branch name to clipboard
Commits
Commits on Mar 26, 2026
gen ssl key pair and convert the public key to JWK
Show description for cd5a08b
julien-nc
committed
cd5a08b
View commit details
Copy full SHA for cd5a08b
Browse repository at this point
store pem priv key in appconfig, gen JWK from public ssl key, test creating and decoding JWT from our key
Show description for 18bbc9a
julien-nc
committed
18bbc9a
View commit details
Copy full SHA for 18bbc9a
Browse repository at this point
use EC signature key with P-384 curve
Show description for 2799185
julien-nc
committed
2799185
View commit details
Copy full SHA for 2799185
Browse repository at this point
generate/store/refresh encryption key
Show description for 7aa458f
julien-nc
committed
7aa458f
View commit details
Copy full SHA for 7aa458f
Browse repository at this point
add lint-eslint action
Show description for 7d1a1ec
julien-nc
committed
7d1a1ec
View commit details
Copy full SHA for 7d1a1ec
Browse repository at this point
add new boolean setting to enable private key jwt auth
Show description for 0590bb1
julien-nc
committed
0590bb1
View commit details
Copy full SHA for 0590bb1
Browse repository at this point
implement private jwt login flow by passing the client assertion to the token endpoint
Show description for 9ae4166
julien-nc
committed
9ae4166
View commit details
Copy full SHA for 9ae4166
Browse repository at this point
adjust README and settings UI
Show description for f0ff9f2
julien-nc
committed
f0ff9f2
View commit details
Copy full SHA for f0ff9f2
Browse repository at this point
increase key lifetime to one hour, add comments on when/why we refresh
Show description for a98ce4e
julien-nc
committed
a98ce4e
View commit details
Copy full SHA for a98ce4e
Browse repository at this point
implement small signature key tests
Show description for 94920d5
julien-nc
committed
94920d5
View commit details
Copy full SHA for 94920d5
Browse repository at this point
implement small encryption key tests
Show description for a272ab5
julien-nc
committed
a272ab5
View commit details
Copy full SHA for a272ab5
Browse repository at this point
implement JWE encryption + decryption with algos working with singpass
Show description for b2b1dbb
julien-nc
committed
b2b1dbb
View commit details
Copy full SHA for b2b1dbb
Browse repository at this point
implement JWE tests
Show description for dab8d05
julien-nc
committed
dab8d05
View commit details
Copy full SHA for dab8d05
Browse repository at this point
polish
Show description for ee26b13
julien-nc
committed
ee26b13
View commit details
Copy full SHA for ee26b13
Browse repository at this point
tests
Show description for 0495067
julien-nc
committed
0495067
View commit details
Copy full SHA for 0495067
Browse repository at this point
last part: detect if a JWT is in a JWE on login
Show description for ccce6e1
julien-nc
committed
ccce6e1
View commit details
Copy full SHA for ccce6e1
Browse repository at this point
make it possible to force-enable PKCE
Show description for a0348aa
julien-nc
committed
a0348aa
View commit details
Copy full SHA for a0348aa
Browse repository at this point
add error description in 403 template, use it in code controller method
Show description for d3f9d9c
julien-nc
committed
d3f9d9c
View commit details
Copy full SHA for d3f9d9c
Browse repository at this point
add regexp mechanism to parse user IDs from tokens
Show description for 704ea0c
julien-nc
committed
704ea0c
View commit details
Copy full SHA for 704ea0c
Browse repository at this point
make debug endpoints private
Show description for 8123a16
julien-nc
committed
8123a16
View commit details
Copy full SHA for 8123a16
Browse repository at this point
handle errors when parsing JWT header at the end of the code flow
Show description for f3f8c97
julien-nc
committed
f3f8c97
View commit details
Copy full SHA for f3f8c97
Browse repository at this point
include leading and trailing / in the userId regexp
Show description for 41be3fe
julien-nc
committed
41be3fe
View commit details
Copy full SHA for 41be3fe
Browse repository at this point
implement encryption key rotation for JWE decryption
Show description for 4fc9d40
julien-nc
committed
4fc9d40
View commit details
Copy full SHA for 4fc9d40
Browse repository at this point
do not log sensitive data, fix user_id regexp logic, only decrypt client secret if needed
Show description for 12950b5
julien-nc
committed
12950b5
View commit details
Copy full SHA for 12950b5
Browse repository at this point
[WARNING] needs logic check: improve signature key rotation
Show description for 1e57757
julien-nc
committed
1e57757
View commit details
Copy full SHA for 1e57757
Browse repository at this point
You can’t perform that action at this time.