STRUCT
WebAuthnRegistrationClientOperationStep
Contents
- Properties
actionModel
metadata
type
actions
links
messages
properties
continueAction
fallbackActions
- Methods
init(from:)
encode(to:)
==(_:_:)
formattedParametersForRegistration(credentialOptions:attestationObject:rawClientDataJSON:credentialID:credentialParamType:)
public struct WebAuthnRegistrationClientOperationStep: ClientOperationStep, Equatable
A step that instructs a client that it should use the device's platform Authentication Services API to perform a User Authentication Registration WebAuthn
flow
The client application should invoke formattedParametersForRegistration
method to build the request parameters, which can then be used with
continueAction
to proceed with the flow.
Fallback actions are provided to assist on fallback if an error happens.
For more information, refer to the HAAPI Data Model documentation.
- Note: Starting on iOS 15,
WebAuthn
can be used with the Authentication Services ASAuthorizationPublicKey APIs (native) but it is also possible to use the fallbackActions (web browser). Below iOS 15, fallbackActions (web browser) is the only way to handle WebAuthn.
Properties
actionModel
public let actionModel: WebAuthnRegistrationClientOperationActionModel
the WebAuthn client operation action model that contains the necessary details for the client to use the device's platform Authentication Services.
metadata
public let metadata: Metadata?
type
public let type: RepresentationType
actions
public let actions: [Action]
An array of Action
that contains possible actions a user or the client may choose to take to continue the flow.
links
public let links: [Link]
messages
public let messages: [UserMessage]
properties
public let properties: Properties?
continueAction
public let continueAction: FormAction
Returns the form action that has to be submitted alongside the result of formattedParametersForRegistration
after receiving the callback from the authenticator interaction.
fallbackActions
public var fallbackActions: [Action]
Returns the actions that should be triggered when WebAuthn
handling fails or is impossible to use with the native APIs.
Methods
init(from:)
public init(from decoder: Decoder) throws
Parameters
Name | Description |
---|---|
decoder | The decoder to read data from. |
encode(to:)
public func encode(to encoder: Encoder) throws
Parameters
Name | Description |
---|---|
encoder | The encoder to write data to. |
==(::)
public static func == (lhs: WebAuthnRegistrationClientOperationStep,
rhs: WebAuthnRegistrationClientOperationStep) -> Bool
Parameters
Name | Description |
---|---|
lhs | A value to compare. |
rhs | Another value to compare. |
formattedParametersForRegistration(credentialOptions:attestationObject:rawClientDataJSON:credentialID:credentialParamType:)
public func formattedParametersForRegistration(
credentialOptions: WebAuthnRegistrationClientOperationActionModel.CredentialRequestOptions,
attestationObject: Data,
rawClientDataJSON: Data,
credentialID: Data,
credentialParamType: String = "public-key"
) -> [String: Any]
Builds the form parameters necessary to submit a WebAuthn Registration request
- Parameters:
- publicKeyOptions: the selected
PublicKeyModel
value used to create the authenticator request. - attestationObject: the attestation object's data provided by the device's platform Authorization Controller
ASAuthorization.credential
response. - rawClientDataJSON: the clientDataJSON's data provided by the device's platform Authorization Controller
ASAuthorization.credential
response. - credentialID:the credentialID's data provided by the device's platform Authorization Controller
ASAuthorization.credential
response. - credentialParamType: the credential type used to setup the authorization request. Defaults to "public-key".
- publicKeyOptions: the selected
- Returns: a
Dictionary<String: Any>
containing the parameters to use when submiting the form action. - Note: ASAuthorizationPlatformPublicKeyCredentialRegistration is only available starting on iOS15 in AuthenticationServices framework.
Parameters
Name | Description |
---|---|
publicKeyOptions | the selected PublicKeyModel value used to create the authenticator request. |
attestationObject | the attestation object’s data provided by the device’s platform Authorization Controller ASAuthorization.credential response. |
rawClientDataJSON | the clientDataJSON’s data provided by the device’s platform Authorization Controller ASAuthorization.credential response. |
credentialID | the credentialID’s data provided by the device’s platform Authorization Controller ASAuthorization.credential response. |
credentialParamType | the credential type used to setup the authorization request. Defaults to “public-key”. |