U2F mult-factor authentication is unfortunately broken after upgrading to PVE 7.1:
We had previously set the U2F AppID to point at a JSON document on a redundant web hosting service 'https://u2f.company.co.za/kvm1-appid', where this file contained a list of the possible facets that it would be allowed to interact with:
The following article details that this behaviour is not available with WebAuthn, you have to use a sub domain for multiple hosts:
https://www.stackallocated.com/blog/2019/u2f-to-webauthn/
We are lucky enough to have all our Staff Yubico public portion identifiers on record and could subsequently depreciate U2F as a 2nd authentication factor and switch over to Yubikey OTP integration. We can subsequently start with WebAuthn fresh without locking our staff out of the PVE hosts. Anyone interested in also switching over in a pinch can review this forum post: https://forum.proxmox.com/threads/webauthn-registration-failed.99861/post-431848
Right, so my understanding is that U2F is legacy and that we should be transitioning over to WebAuthn. We have several clusters that we wish to provide WebAuthn on, where these have a common TLD domain (company.co.za) in the following example.
The U2F method of defining the AppID, to be an URL that points at a JSON file containing all allowed facets (listing all URLs on the cluster member nodes) appears to be depreciated in WebAuthn so we need to set the Relying Party ID as the common TLD.
I'm aware of some things unfortunately temporarily being broken with this integration, as PVE 7.1 was released. I am however wanting to clarify what the Relying Party, Origin and ID should be setup to allow WebAuthn to work on any of the cluster nodes, part of separate clusters.
WebAuthn - PVE generated (non cluster aware):
Relying Party : kvm1a.company.co.za
Origin : https://kvm1a.company.co.za:8006
ID : kvm1a.company.co.za
If this cluster comprises of nodes kvm1a - kvm1f and I have other clusters such as kvm2a-kvm2i, kvm3a-kvm3h and so on should I structure each cluster's configuration as such:
WebAuthn - kvm1x.company.co.za (cluster aware):
Relying Party : company.co.za
Origin : https://u2f.company.co.za/kvm1-appid
ID : kvm1x.company.co.za
Pretty sure that whatever I've cooked together is wrong but also not sure what is currently broken with the WebAuthn integration in PVE 7.1 so would really appreciate some clarity on how we should set this up to allow WebAuthn to work on any node and allow our staff to register their tokens on any of the separate clusters that would ultimately all share a common Relying Party name...
We had previously set the U2F AppID to point at a JSON document on a redundant web hosting service 'https://u2f.company.co.za/kvm1-appid', where this file contained a list of the possible facets that it would be allowed to interact with:
Code:
{
"trustedFacets" : [{
"version": { "major": 1, "minor" : 0 },
"ids": [
"https://kvm1.company.co.za:8006",
"https://kvm1a.company.co.za:8006",
"https://kvm1b.company.co.za:8006",
"https://kvm1c.company.co.za:8006",
"https://kvm1d.company.co.za:8006",
"https://kvm1e.company.co.za:8006",
"https://kvm1f.company.co.za:8006",
]
}]
}
The following article details that this behaviour is not available with WebAuthn, you have to use a sub domain for multiple hosts:
https://www.stackallocated.com/blog/2019/u2f-to-webauthn/
We are lucky enough to have all our Staff Yubico public portion identifiers on record and could subsequently depreciate U2F as a 2nd authentication factor and switch over to Yubikey OTP integration. We can subsequently start with WebAuthn fresh without locking our staff out of the PVE hosts. Anyone interested in also switching over in a pinch can review this forum post: https://forum.proxmox.com/threads/webauthn-registration-failed.99861/post-431848
Right, so my understanding is that U2F is legacy and that we should be transitioning over to WebAuthn. We have several clusters that we wish to provide WebAuthn on, where these have a common TLD domain (company.co.za) in the following example.
The U2F method of defining the AppID, to be an URL that points at a JSON file containing all allowed facets (listing all URLs on the cluster member nodes) appears to be depreciated in WebAuthn so we need to set the Relying Party ID as the common TLD.
I'm aware of some things unfortunately temporarily being broken with this integration, as PVE 7.1 was released. I am however wanting to clarify what the Relying Party, Origin and ID should be setup to allow WebAuthn to work on any of the cluster nodes, part of separate clusters.
WebAuthn - PVE generated (non cluster aware):
Relying Party : kvm1a.company.co.za
Origin : https://kvm1a.company.co.za:8006
ID : kvm1a.company.co.za
If this cluster comprises of nodes kvm1a - kvm1f and I have other clusters such as kvm2a-kvm2i, kvm3a-kvm3h and so on should I structure each cluster's configuration as such:
WebAuthn - kvm1x.company.co.za (cluster aware):
Relying Party : company.co.za
Origin : https://u2f.company.co.za/kvm1-appid
ID : kvm1x.company.co.za
Pretty sure that whatever I've cooked together is wrong but also not sure what is currently broken with the WebAuthn integration in PVE 7.1 so would really appreciate some clarity on how we should set this up to allow WebAuthn to work on any node and allow our staff to register their tokens on any of the separate clusters that would ultimately all share a common Relying Party name...