From: Shannon Sterz <s.sterz@proxmox.com>
To: pdm-devel@lists.proxmox.com
Subject: [pdm-devel] [PATCH datacenter-manager/yew-comp 0/8] openid support for PDM
Date: Tue, 14 Oct 2025 15:30:36 +0200 [thread overview]
Message-ID: <20251014133044.337162-1-s.sterz@proxmox.com> (raw)
this series adds openid support to PDM. the implementation is based on
PBS' implementation with a some adaptions:
- smaller refactorings to use more data types instead of simply putting
them together with serde_json::json!
- move variables into format strings where possible
- only support the HttpOnly variant of the authentication flow
when going through this i at first wanted to put most of the api
endpoints' logic into a proxmox-rs crate. however, i decided against
that as that would have created a couple of other problems. i'll outline
different options below and why i decided against them:
- access-control: the login endpoint needs to be able to sign a ticket.
currently access-control does not have access to the keyring that
would be necessary for that. the keyring is available in auth-api, but
making it public there has possible other downsides. such as suddenly
making it very hard to audit which parts of our code have access to
the keyring through auth-api.
- auth-api: the login endpoint would need access to the domains and user
configs. the first to setup the openid login against the correct host.
the latter for the auto-create feature when logging in users that have
no user information in the config yet.
the user config could be obtained by depending on access-control.
albeit, that would have required untangling some circular dependencies
between auth-api and access-control. the domain config, however, is
currently not in a proxmox-rs crate. so we would have needed to factor
that out first, which would create quite a bit of churn.
- a new crate/openid crate: this mostly combines the drawbacks of the
previous two options. so i discarded that as an option too.
if we still want to move the code to a shared proxmox-rs crate, i can
revise this series. however, i think this is a sensible approach for
now.
the series also includes adaptions for proxmox-yew-comp to adapt to
openid login flow and add some missing ui around default realms.
Changelog
---------
the first two patches where taken from a different series [1] and slightly
adapted:
- remove a useless log statement
- instead of referring to "openid authentication" correctly call it
"openid authorization"
- remove a useless sort() call
[1]: https://lore.proxmox.com/all/20251008151936.386950-1-s.sterz@proxmox.com/
proxmox-yew-comp:
Shannon Sterz (5):
login_panel/realm_selector: use default realm provided by api
login_panel/realm_selector: add support for openid realm logins
auth view: add openid icon to openid menu option
auth edit openid: add a default realm checkbox
utils/login panel: move openid redirection authorization helper to
utils
src/auth_edit_openid.rs | 11 +-
src/auth_view.rs | 2 +-
src/login_panel.rs | 312 +++++++++++++++++++++++++++++++---------
src/realm_selector.rs | 83 ++++++++++-
src/utils.rs | 32 +++++
5 files changed, 357 insertions(+), 83 deletions(-)
proxmox-datacenter-manager:
Shannon Sterz (3):
api-types: add default field to openid realm config
server: api: add support for adding openid realms and openid logins
ui: enable openid realms in realm panel
Cargo.toml | 2 +-
lib/pdm-api-types/src/openid.rs | 3 +
server/Cargo.toml | 1 +
server/src/api/access/mod.rs | 2 +
server/src/api/access/openid.rs | 311 +++++++++++++++++++++++++
server/src/api/config/access/mod.rs | 2 +
server/src/api/config/access/openid.rs | 290 +++++++++++++++++++++++
server/src/auth/mod.rs | 6 +-
ui/src/configuration/mod.rs | 1 +
9 files changed, 616 insertions(+), 2 deletions(-)
create mode 100644 server/src/api/access/openid.rs
create mode 100644 server/src/api/config/access/openid.rs
Summary over all repositories:
14 files changed, 973 insertions(+), 85 deletions(-)
--
Generated by git-murpp 0.8.1
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
next reply other threads:[~2025-10-14 13:31 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-14 13:30 Shannon Sterz [this message]
2025-10-14 13:30 ` [pdm-devel] [PATCH yew-comp 1/5] login_panel/realm_selector: use default realm provided by api Shannon Sterz
2025-10-14 13:30 ` [pdm-devel] [PATCH yew-comp 2/5] login_panel/realm_selector: add support for openid realm logins Shannon Sterz
2025-10-14 13:30 ` [pdm-devel] [PATCH yew-comp 3/5] auth view: add openid icon to openid menu option Shannon Sterz
2025-10-14 13:30 ` [pdm-devel] [PATCH yew-comp 4/5] auth edit openid: add a default realm checkbox Shannon Sterz
2025-10-14 13:30 ` [pdm-devel] [PATCH yew-comp 5/5] utils/login panel: move openid redirection authorization helper to utils Shannon Sterz
2025-10-14 13:30 ` [pdm-devel] [PATCH datacenter-manager 1/3] api-types: add default field to openid realm config Shannon Sterz
2025-10-14 13:30 ` [pdm-devel] [PATCH datacenter-manager 2/3] server: api: add support for adding openid realms and openid logins Shannon Sterz
2025-10-17 7:57 ` Fabian Grünbichler
2025-10-17 13:36 ` Shannon Sterz
2025-10-14 13:30 ` [pdm-devel] [PATCH datacenter-manager 3/3] ui: enable openid realms in realm panel Shannon Sterz
2025-10-17 8:01 ` [pdm-devel] [PATCH datacenter-manager/yew-comp 0/8] openid support for PDM Fabian Grünbichler
2025-10-17 14:36 ` Shannon Sterz
2025-10-17 14:13 ` [pdm-devel] Superseded: " Shannon Sterz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251014133044.337162-1-s.sterz@proxmox.com \
--to=s.sterz@proxmox.com \
--cc=pdm-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox