mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-10-29 17:52:32 +00:00
Document new PKI CMPv2 configuration field disabled_validations (#29707)
* Document new PKI CMPv2 configuration field disabled_validations.
This commit is contained in:
@@ -705,6 +705,7 @@ $ curl \
|
|||||||
"data": {
|
"data": {
|
||||||
"audit_fields": ["common_name", "alt_names", "ip_sans", "uri_sans"],
|
"audit_fields": ["common_name", "alt_names", "ip_sans", "uri_sans"],
|
||||||
"default_path_policy": "role:example-role",
|
"default_path_policy": "role:example-role",
|
||||||
|
"disabled_validations": [],
|
||||||
"authenticators": {
|
"authenticators": {
|
||||||
"cert": {
|
"cert": {
|
||||||
"accessor": "auth_cert_7fe0c1cc",
|
"accessor": "auth_cert_7fe0c1cc",
|
||||||
@@ -750,6 +751,11 @@ updated values as a response along with an updated `last_updated` field.
|
|||||||
`locality`, `province`, `street_address`, `postal_code`, `serial_number`, `use_pss`, `key_type`, `key_bits`,
|
`locality`, `province`, `street_address`, `postal_code`, `serial_number`, `use_pss`, `key_type`, `key_bits`,
|
||||||
`add_basic_constraints`
|
`add_basic_constraints`
|
||||||
|
|
||||||
|
- `disabled_validations` `(list: [])` - Checks to skip during request validation. Possible values are
|
||||||
|
`DisableMatchingKeyIdValidation`, and 'DisableCertTimeValidation'. `DisableMatchingKeyIdValidation` disables
|
||||||
|
the check that sender key ID in the request header needs to match the subject public key ID in the signing
|
||||||
|
certificate. `DisableCertTimeValidation` disables the not before/not after verifications within the signing
|
||||||
|
certificate. Disabling any validation is highly discouraged.
|
||||||
|
|
||||||
#### Sample Payload
|
#### Sample Payload
|
||||||
|
|
||||||
@@ -762,6 +768,7 @@ updated values as a response along with an updated `last_updated` field.
|
|||||||
"cert_role": "cert1"
|
"cert_role": "cert1"
|
||||||
},
|
},
|
||||||
"default_path_policy": "sign-verbatim",
|
"default_path_policy": "sign-verbatim",
|
||||||
|
"disabled_validations": ["DisableMatchingKeyIdValidation"],
|
||||||
"audit_fields": ["common_name", "alt_names", "ip_sans", "uri_sans"],
|
"audit_fields": ["common_name", "alt_names", "ip_sans", "uri_sans"],
|
||||||
"enable_sentinel_parsing": true
|
"enable_sentinel_parsing": true
|
||||||
}
|
}
|
||||||
@@ -790,12 +797,10 @@ $ curl \
|
|||||||
"cert_role": "cert1"
|
"cert_role": "cert1"
|
||||||
},
|
},
|
||||||
"default_path_policy": "sign-verbatim",
|
"default_path_policy": "sign-verbatim",
|
||||||
|
"disabled_validations": ["DisableMatchingKeyIdValidation"],
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"enable_sentinel_parsing": true,
|
"enable_sentinel_parsing": true,
|
||||||
"last_updated": "2024-02-02T10:49:20-05:00"
|
"last_updated": "2024-02-02T10:49:20-05:00"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ required, which are broken down into three main categories:
|
|||||||
CMPv2 is a bit unique, in that it uses the Issuer CA certificate to sign the
|
CMPv2 is a bit unique, in that it uses the Issuer CA certificate to sign the
|
||||||
CMP messages. This means your issuer must have the `DigitalSignature` key
|
CMP messages. This means your issuer must have the `DigitalSignature` key
|
||||||
usage.
|
usage.
|
||||||
Existing CA issuers likely do not have this, so you will need to generate a new
|
Existing CA issuers likely do not have this, so you will need to generate a new
|
||||||
issuer (likely an intermediate) that has this property. If you are configuring PKI
|
issuer (likely an intermediate) that has this property. If you are configuring PKI
|
||||||
for the first time or creating a new issuer, ensure you set `key_usage` to,
|
for the first time or creating a new issuer, ensure you set `key_usage` to,
|
||||||
as an example, `CRL,CASign,DigitalSignature`.
|
as an example, `CRL,CASign,DigitalSignature`.
|
||||||
|
|
||||||
@@ -40,17 +40,17 @@ See [Generate intermediate CSR](/vault/api-docs/secret/pki#generate-intermediate
|
|||||||
|
|
||||||
### Configuring CMPv2 Authentication
|
### Configuring CMPv2 Authentication
|
||||||
|
|
||||||
At this time, Vault's implementation of CMPv2 supports only
|
At this time, Vault's implementation of CMPv2 supports only
|
||||||
[Certificate TLS authentication](/vault/docs/auth/cert), where clients proof
|
[Certificate TLS authentication](/vault/docs/auth/cert), where clients proof
|
||||||
of posession of a TLS client certificate authenticates them to Vault.
|
of posession of a TLS client certificate authenticates them to Vault.
|
||||||
|
|
||||||
Authentication leverages a separate Vault authentication
|
Authentication leverages a separate Vault authentication
|
||||||
mount, within the same namespace, to validate the client provided credentials
|
mount, within the same namespace, to validate the client provided credentials
|
||||||
along with the client's ACL policy to enforce.
|
along with the client's ACL policy to enforce.
|
||||||
|
|
||||||
For proper accounting, a mount supporting CMPv2 authentication should be
|
For proper accounting, a mount supporting CMPv2 authentication should be
|
||||||
dedicated to this purpose, not shared with other workflows. In other words,
|
dedicated to this purpose, not shared with other workflows. In other words,
|
||||||
create a new certificate auth mount for CMPv2 even if you already have one
|
create a new certificate auth mount for CMPv2 even if you already have one
|
||||||
another in use for other purposes.
|
another in use for other purposes.
|
||||||
|
|
||||||
When setting up the authentication mount for CMPv2 clients, the token type must
|
When setting up the authentication mount for CMPv2 clients, the token type must
|
||||||
@@ -58,7 +58,7 @@ be configured to return [batch tokens](/vault/docs/concepts/tokens#batch-tokens)
|
|||||||
Batch tokens are required to avoid an excessive amount of leases being generated
|
Batch tokens are required to avoid an excessive amount of leases being generated
|
||||||
and persisted as every CMPv2 incoming request needs to be authenticated.
|
and persisted as every CMPv2 incoming request needs to be authenticated.
|
||||||
|
|
||||||
The path within an ACL policy must match the `cmp` path underneath the
|
The path within an ACL policy must match the `cmp` path underneath the
|
||||||
PKI mount. The path to use can be the default `cmp` path or a role based one.
|
PKI mount. The path to use can be the default `cmp` path or a role based one.
|
||||||
|
|
||||||
If using the `sign-verbatim` as a path policy, the following
|
If using the `sign-verbatim` as a path policy, the following
|
||||||
@@ -89,7 +89,7 @@ $ vault read -field=accessor sys/auth/auth/cert
|
|||||||
|
|
||||||
For CMP to work within certain clients, a few response headers need to be explicitly
|
For CMP to work within certain clients, a few response headers need to be explicitly
|
||||||
allowed, trailing slashes must be trimmed, and the list of accessors the mount can delegate authentication towards
|
allowed, trailing slashes must be trimmed, and the list of accessors the mount can delegate authentication towards
|
||||||
must be configured. The following will grant the required response headers, you will need to replace the values for
|
must be configured. The following will grant the required response headers, you will need to replace the values for
|
||||||
the `delegated-auth-accessors` to match your values.
|
the `delegated-auth-accessors` to match your values.
|
||||||
|
|
||||||
```shell-session
|
```shell-session
|
||||||
@@ -112,6 +112,7 @@ vault write pki/config/cmp -<<EOC
|
|||||||
{
|
{
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"default_path_policy": "role:example-role",
|
"default_path_policy": "role:example-role",
|
||||||
|
"disabled_validations": [],
|
||||||
"authenticators": {
|
"authenticators": {
|
||||||
"cert": {
|
"cert": {
|
||||||
"accessor": "auth_cert_4088ac2d"
|
"accessor": "auth_cert_4088ac2d"
|
||||||
@@ -123,7 +124,7 @@ EOC
|
|||||||
```
|
```
|
||||||
|
|
||||||
Of course, substituting your own role and accessor values. After this, the
|
Of course, substituting your own role and accessor values. After this, the
|
||||||
CMP endpoints will be able to handle client requests, authenticated with the
|
CMP endpoints will be able to handle client requests, authenticated with the
|
||||||
previously configured Cert Auth method.
|
previously configured Cert Auth method.
|
||||||
|
|
||||||
## Limitations
|
## Limitations
|
||||||
@@ -138,8 +139,6 @@ In particular, the following are not yet supported:
|
|||||||
* CA creation/update operations.
|
* CA creation/update operations.
|
||||||
|
|
||||||
Note that CMPv2 is not integrated with these existing Vault PKI features:
|
Note that CMPv2 is not integrated with these existing Vault PKI features:
|
||||||
|
|
||||||
* Certificate Metadata - CMPv2 has no means of providing metadata.
|
* Certificate Metadata - CMPv2 has no means of providing metadata.
|
||||||
* Certificate Issuance External Policy Service [(CIEPS)](/vault/docs/secrets/pki/cieps)
|
* Certificate Issuance External Policy Service [(CIEPS)](/vault/docs/secrets/pki/cieps)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user