Copyright © 2024 the Contributors to the Digital Credentials Specification, published by the Web Platform Incubator Community Group under the W3C Community Contributor License Agreement (CLA). A human-readable summary is available.
This document specifies an API to enable user agents to mediate access to, and presentation of, digital credentials such as a driver's license, government-issued identification card, and/or other types of digital credential. The API builds on Credential Management Level 1 as a means by which to request a digital credential from a user agent or underlying platform.
This specification was published by the Web Platform Incubator Community Group. It is not a W3C Standard nor is it on the W3C Standards Track. Please note that under the W3C Community Contributor License Agreement (CLA) there is a limited opt-out and other conditions apply. Learn more about W3C Community and Business Groups.
This is an unofficial proposal.
GitHub Issues are preferred for discussion of this specification.
TBW
There are many types of digital credential that can be conveyed using this API. Examples of these types include:
Is a verifiable credential about a person.
The following items are within the scope of this specification:
The following items are out of scope:
WebIDLpartial dictionary CredentialRequestOptions {
DigitalCredentialRequestOptions digital;
};
The digital member
allows for options to configure the request for a digital credential.
WebIDLdictionary DigitalCredentialRequestOptions {
sequence<IdentityRequestProvider> providers;
};
The providers
specify a request protocol and structured request,
which the user agent MAY match against a identity credential provider.
The IdentityRequestProvider dictionary is used to specify a request protocol and structured request, which the user agent
MAY match against a identity credential provider.
WebIDLdictionary IdentityRequestProvider {
required DOMString protocol;
required DOMString request;
};
The protocol member
denotes the request protocol when requesting an
identify credential.
The protocol member's value is be one of the
well-defined keys defined in 9.
Registry of protocols for requesting digital credential or any other custom
one.
The request member is
the request to be handled by the user's selected identity credential provider.
The DigitalCredential interface represents a conceptual
digital credential.
WebIDL[Exposed=Window, SecureContext]
interface DigitalCredential : Credential {
readonly attribute DOMString protocol;
readonly attribute DOMString data;
};
The protocol member is the
request protocol that was used to request the
digital credential.
The data member is the
credential's encrypted data.
The following is the registry of request protocols that are supported by this specification.
It is expected that this registry will be become a W3C registry in the future.
To be included in the registry...
We need to come up with a registry governance and inclusion criteria.
For inclusion, at a minimum, there should be implementation support, and we talked about having some privacy checks too.
User agents MUST support the following request protocols:
| Protocol identifier | Description | Specification |
|---|---|---|
| Coming soon... | ||
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key words MAY and MUST in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in: