mirror of
https://github.com/louislam/uptime-kuma.git
synced 2026-03-02 22:57:00 -05:00
Add OIDC Client Credentials Grant as authenthification method #1524
Labels
No labels
A:accessibility
A:api
A:cert-expiry
A:core
A:dashboard
A:deployment
A:documentation
A:domain expiry
A:incidents
A:maintenance
A:metrics
A:monitor
A:notifications
A:reports
A:settings
A:status-page
A:ui/ux
A:user-management
Stale
ai-slop
blocked
blocked-upstream
bug
cannot-reproduce
dependencies
discussion
duplicate
feature-request
feature-request
good first issue
hacktoberfest
help
help wanted
house keeping
invalid
invalid-format
invalid-format
question
releaseblocker 🚨
security
spam
type:enhance-existing
type:new
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/uptime-kuma#1524
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ste1nstone on GitHub (Oct 30, 2022).
⚠️ Please verify that this feature request has NOT been suggested before.
🏷️ Feature Request Type
Other
🔖 Feature description
At the moment you can use basic auth and ntlm to authenticate against http endpoints.
To monitor the availability of APIs it would be helpful to have the additional alternative with the OIDC Client Credentials Grant
✔️ Solution
request a jwt token and add it as bearer header to oidc protected http endoints
Most of the providers (I checked KeyCloak, AWS Cognito and Azure AD) implement the client credential flow according to the standard https://www.rfc-editor.org/rfc/rfc6749#section-4.4
Auth0 as another big provider adds an additional field to the request with audience
So my suggestion would be that if you select OIDC Client Credentials Grant as auth method in the UI you receive the following input fields
Mandatory:
Optional:
Then before the actual http call is triggered a jwt token is requested and added to the http header.
Because the response of the grant flow should also contains an expire time the token can be cached.
❓ Alternatives
I'm aware that the push monitor would be alternative possibility but would be nice to handle the checks with a build in functionality
📝 Additional Context
I would also be willing to provide a PR for the topic
@cwchristerw commented on GitHub (Jul 8, 2023):
Related to #21 #553
@hegerdes commented on GitHub (Jul 8, 2023):
I provided a PR which implements this: #3119. Feel free to provide feedback!
@CommanderStorm commented on GitHub (Jul 8, 2023):
Not related: this issue talks about adding a monitor (see #3119)
@CommanderStorm commented on GitHub (Aug 24, 2023):
@ste1nstone
https://github.com/louislam/uptime-kuma/pull/3119 was merged, but we accidentally left this issue open.
Could you please close this issue?
PS: @hegerdes The next time please add
Fixes #issuenumberas a literal string (github only understand one issue per fixes) as requested in https://github.com/louislam/uptime-kuma/pull/3119#issuecomment-1627476341The reason is that otherwise resolved issues are not getting closed ^^
@goshlanguage commented on GitHub (Jun 24, 2025):
This issue shouldn't be closed, as the PR referenced is only a partial implementation of the client crendentials flow. It's still missing the ability to send the audience parameter, which is required for a certain providers, such as Auth0.
I wouldn't mind digging in and helping with implementation if its welcome
@CommanderStorm commented on GitHub (Jun 24, 2025):
I'like to not reopen this issue as this issue is about adding oauth. Oauth is added.
Audience field has been marked as not required in the issue.
But if you want to work on this, that is fine and does not require an issue.
Alternatively, I think a different smaller issue is a better call. That way I can mark it as a good first issue without intimidating people with the legacy of this issue