Creates a challenge for the FIDO2/U2F device to sign.

Prev Next
Post
/sys/v1/approval_requests/{req_id}/challenge

If the quorum policy is configured to require 2FA, then a call to this API produces a challenge that needs to be signed by the respective FIDO2/U2F device. The signed data that U2F device provides can be then used with POST /sys/v1/approval_requests/:req_id/approve to successfully approve the request.

Security
HTTP
Type bearer
API Key: apiKeyAuth
Header parameter nameAuthorization
Path parameters
req_id
string (uuid) Required
Query parameters
MfaChallengeParams
object
protocol
string Required

Protocols for MFA.

Valid values[ "u2f", "fido2" ]
Responses
2XX

Success result

Expand All
OneOf
object
object
u2f_challenge
string
u2f_keys
Array of object (U2fRegisteredKey)
object
keyHandle
string
version
string
object
OneOf
object
object
rp
object
name
string

Name of the entity.

entity
object
id
string | null

A unique identifier for the Relying Party entity, which sets the RP ID.

https://www.w3.org/TR/webauthn-2/#CreateCred-DetermineRpId

user
object
name
string

Name of the entity.

entity
object
id
string (byte)
displayName
string

Human friendly name intended only for display.

challenge
string (byte)
pubKeyCredParams
Array of object (PublicKeyCredentialParameters)

This member contains information about the desired properties of the credential to be created. The sequence is ordered from most preferred to least preferred.

object
type
string

https://www.w3.org/TR/webauthn-2/#enum-credentialType

This enum defines valid cred types.

Valid values[ "public-key" ]
alg
string

https://www.w3.org/TR/webauthn-2/#typedefdef-cosealgorithmidentifier

Signing algorithms from IANA COSE Algorithms registry that are supported on DSM side for verifying signed messages from authenticator.

Valid values[ "Es256" ]
timeout
integer | null

The time for which response from the authenticator would be awaited. This should only be a hint as per the spec. This is in milliseconds.

excludeCredentials
Array of object (PublicKeyCredentialDescriptor)

The existing creds mapped to the current user. This tells the authenticator to not create multiple creds for the same user. NOTE: This isn't for U2F authenticators. For that, appidExclude needs to be set instead.

object
type
string

https://www.w3.org/TR/webauthn-2/#enum-credentialType

This enum defines valid cred types.

Valid values[ "public-key" ]
id
string (byte)
transports
Array of object (AuthenticatorTransport) | null

Hints by relying party on what transport client should use to communicate with authenticator.

Hints by relying party on how client should communicate with the authenticator.

https://www.w3.org/TR/webauthn-2/#enum-transport

OneOf
string
string
Valid values[ "usb", "nfc", "ble", "internal" ]
string
string
authenticatorSelection
object
authenticatorAttachment
string
Valid values[ "platform", "cross-platform" ]
residentKey
string

https://www.w3.org/TR/webauthn-2/#enum-residentKeyRequirement

Tells Relying Party's requirement about client side discoverable creds (formely known as resident keys). If client side discoverable creds are there, it means that the authenticator is self-sufficient in identifying the user. If this isn't the case, the user needs to login first so that the server can identify the user and help send allowCredentials to authenticator.

This is mostly meant for username-less authentication (which we don't support in DSM). We support 2FA where we already know about the logged in user.

Valid values[ "discouraged", "preferred", "required" ]
requireResidentKey
boolean | null

Exists for backcompat with webauthn level 1. By default it is false and should be set to true if residentKey is set to required.

userVerification
string
Valid values[ "required", "preferred", "discouraged" ]
attestation
string

https://www.w3.org/TR/webauthn-2/#enum-attestation-convey https://www.w3.org/TR/webauthn-2/#sctn-attestation

If you really want to understand attestation, read the following: https://fidoalliance.org/fido-technotes-the-truth-about-attestation/ https://medium.com/webauthnworks/webauthn-fido2-demystifying-attestation-and-mds-efc3b3cb3651

This enum just specified how the attestation should be conveyed to the RP. You can see doc of the individual variants to understand various ways.

Valid values[ "none", "indirect", "direct", "enterprise" ]
extensions
object
appidExclude
string | null

This extension excludes authenticators during registration based on legacy u2f key handles specified in "excludeCredentials". If that key handle was created with that device, it is excluded.

https://www.w3.org/TR/webauthn-2/#sctn-appid-exclude-extension

appid
string | null

This extension allows RPs that have previously registered a cred using legacy U2F APIs to request an assertion.

https://www.w3.org/TR/webauthn-2/#sctn-appid-extension

example.extension.bool
boolean | null

Dummy extension used by conformance tests

object
object
challenge
string (byte)
timeout
integer | null

The time for which response from the authenticator would be awaited. This should only be a hint as per the spec. This is in milliseconds.

rpId
string | null

This optional member specifies the relying party identifier claimed by the caller. If omitted, its value will be the CredentialsContainer object’s relevant settings object's origin's effective domain.

allowCredentials
Array of object (PublicKeyCredentialDescriptor) | null

This OPTIONAL member contains a list of [PublicKeyCredentialDescriptor] objects representing public key credentials acceptable to the caller, in descending order of the caller’s preference (the first item in the list is the most preferred credential, and so on down the list).

object
type
string

https://www.w3.org/TR/webauthn-2/#enum-credentialType

This enum defines valid cred types.

Valid values[ "public-key" ]
id
string (byte)
transports
Array of object (AuthenticatorTransport) | null

Hints by relying party on what transport client should use to communicate with authenticator.

Hints by relying party on how client should communicate with the authenticator.

https://www.w3.org/TR/webauthn-2/#enum-transport

OneOf
string
string
Valid values[ "usb", "nfc", "ble", "internal" ]
string
string
userVerification
string
Valid values[ "required", "preferred", "discouraged" ]
extensions
object
appidExclude
string | null

This extension excludes authenticators during registration based on legacy u2f key handles specified in "excludeCredentials". If that key handle was created with that device, it is excluded.

https://www.w3.org/TR/webauthn-2/#sctn-appid-exclude-extension

appid
string | null

This extension allows RPs that have previously registered a cred using legacy U2F APIs to request an assertion.

https://www.w3.org/TR/webauthn-2/#sctn-appid-extension

example.extension.bool
boolean | null

Dummy extension used by conformance tests