[GH-ISSUE #33] PIV verification status communicated to remote realms #12

Closed
opened 2026-05-07 00:17:21 +02:00 by BreizhHardware · 6 comments

Originally created by @vmalguy on GitHub (Nov 5, 2020).
Original GitHub issue: https://github.com/ovh/the-bastion/issues/33

In a multi-realm deployment infra, remote realm should send PIV informations to the local bastion.
This could be use to enforce local Multi-Factor Authentication policies even for realm users.

Originally created by @vmalguy on GitHub (Nov 5, 2020). Original GitHub issue: https://github.com/ovh/the-bastion/issues/33 In a multi-realm deployment infra, remote realm should send [PIV informations](https://developers.yubico.com/yubico-piv-tool/YubiKey_PIV_introduction.html) to the local bastion. This could be use to enforce local Multi-Factor Authentication policies even for realm users.
BreizhHardware 2026-05-07 00:17:21 +02:00
  • closed this issue
  • added the
    feature
    label
Author
Owner

@Alkorin commented on GitHub (Nov 5, 2020):

PIV doesn't mean MFA. It only proves that the private key is stored in a secure physical device.

Do you need MFA aswell ?

<!-- gh-comment-id:722416455 --> @Alkorin commented on GitHub (Nov 5, 2020): PIV doesn't mean MFA. It only proves that the private key is stored in a secure physical device. Do you need MFA aswell ?
Author
Owner

@speed47 commented on GitHub (Nov 5, 2020):

Interesting use case. I think the remote bastion can also pass some more information to the local one, such as:

  • Was MFA enabled for this user?
  • Is it a PIV-enforced user ?

Then on the local bastion, you might be able to specify some policies that will be enforced, something along the lines of:

realmModify --realm eu --piv-policy enforce

... which would deny any remote user not having PIV enforced on his local bastion

<!-- gh-comment-id:722416578 --> @speed47 commented on GitHub (Nov 5, 2020): Interesting use case. I think the remote bastion can also pass some more information to the local one, such as: - Was MFA enabled for this user? - Is it a PIV-enforced user ? Then on the local bastion, you might be able to specify some policies that will be enforced, something along the lines of: ``` realmModify --realm eu --piv-policy enforce ``` ... which would deny any remote user not having PIV enforced on his local bastion
Author
Owner

@vmalguy commented on GitHub (Nov 5, 2020):

PIV doesn't mean MFA. It only proves that the private key is stored in a secure physical device.

Do you need MFA aswell ?

anything that could help enforce access policies

Interesting use case. I think the remote bastion can also pass some more information to the local one, such as:

  • Was MFA enabled for this user?
  • Is it a PIV-enforced user ?

Then on the local bastion, you might be able to specify some policies that will be enforced, something along the lines of:

realmModify --realm eu --piv-policy enforce

... which would deny any remote user not having PIV enforced on his local bastion

When it come to PIV, I like some flexibility.
Per realm is good but how about also per group or host or user ?

<!-- gh-comment-id:722419134 --> @vmalguy commented on GitHub (Nov 5, 2020): > PIV doesn't mean MFA. It only proves that the private key is stored in a secure physical device. > > Do you need MFA aswell ? anything that could help enforce access policies > Interesting use case. I think the remote bastion can also pass some more information to the local one, such as: > > * Was MFA enabled for this user? > * Is it a PIV-enforced user ? > > Then on the local bastion, you might be able to specify some policies that will be enforced, something along the lines of: > > ``` > realmModify --realm eu --piv-policy enforce > ``` > > ... which would deny any remote user not having PIV enforced on his local bastion When it come to PIV, I like some flexibility. Per realm is good but how about also per group or host or user ?
Author
Owner

@Alkorin commented on GitHub (Nov 5, 2020):

Per realm is good but how about also per group or host or user ?

The main goal of realm is to not have the notion of user in the local bastion. Authentication is delegated to the distant bastion.
But we could have this check on groups so that a distant user can't use the group if he didn't used its PIV key to connect to the distant bastion.

<!-- gh-comment-id:722422925 --> @Alkorin commented on GitHub (Nov 5, 2020): > Per realm is good but how about also per group or host or user ? The main goal of realm is to not have the notion of user in the local bastion. Authentication is delegated to the distant bastion. But we could have this check on groups so that a distant user can't use the group if he didn't used its PIV key to connect to the distant bastion.
Author
Owner

@speed47 commented on GitHub (Nov 5, 2020):

Could be done too, even if it would be a bit more complex:

realm-wide setting:

realmModify --realm eu --piv-policy none|enforce

group-wide setting:

groupModify --group blah --piv-policy none|enforce

per-host: not really doable, because nobody has the authority over a given host, from the point of view of the bastion: a host can be in 2 distinct groups for that matter, with 2 distinct owners. Or a group can be 0.0.0.0/0 and have all the possible hosts in it.

But then, you might also want to grant an account the right to bypass the realm-wide policy, because this account might be a robot and doesn't have the required hand to click on his PIV key...

This is what has been done for password MFA and TOTP MFA:

accountModify --account joe --mfa-totp-required yes|no|bypass
accountModify --account joe --mfa-password-required yes|no|bypass
<!-- gh-comment-id:722429977 --> @speed47 commented on GitHub (Nov 5, 2020): Could be done too, even if it would be a bit more complex: realm-wide setting: ``` realmModify --realm eu --piv-policy none|enforce ``` group-wide setting: ``` groupModify --group blah --piv-policy none|enforce ``` per-host: not really doable, because nobody has the authority over a given host, from the point of view of the bastion: a host can be in 2 distinct groups for that matter, with 2 distinct owners. Or a group can be 0.0.0.0/0 and have all the possible hosts in it. But then, you might also want to grant an account the right to bypass the realm-wide policy, because this account might be a robot and doesn't have the required hand to click on his PIV key... This is what has been done for password MFA and TOTP MFA: ``` accountModify --account joe --mfa-totp-required yes|no|bypass accountModify --account joe --mfa-password-required yes|no|bypass ```
Author
Owner

@speed47 commented on GitHub (Nov 5, 2020):

In any case @Alkorin we'll need yubico-piv-checker ;)

<!-- gh-comment-id:722499208 --> @speed47 commented on GitHub (Nov 5, 2020): In any case @Alkorin we'll need `yubico-piv-checker` ;)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/the-bastion#12
No description provided.