Credential Management API

Экспериментальная возможность: Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

The Credential Management API (API управления учётными данными) позволяет веб-сайту хранить и извлекать учётные данные пользователя, федеративного ключа и открытого ключа. Эти возможности позволяют пользователям входить в систему без ввода паролей, видеть федеративную учётную запись, которую они использовали для входа на сайт, и возобновлять сеанс без явного входа в систему с истёкшим сроком действия.

Концепции и использование учётных данных

Этот API позволяет веб-сайтам взаимодействовать с системой паролей пользовательского агента (user agent's password system), чтобы веб-сайты могли одинаково работать с учётными данными сайта, а пользовательские агенты могли оказывать лучшую поддержку в управлении своими учётными данными. Например, пользовательским агентам особенно трудно иметь дело с федеративными поставщиками удостоверений или эзотерическими механизмами входа (esoteric sign-in), которые используют больше данных, чем просто имя пользователя и пароль. Для решения этих проблем API предоставляет веб-сайту способы хранения и извлечения различных типов учётных данных. Это даёт пользователям такие возможности, как просмотр федеративной учётной записи, которую они использовали для входа на сайт, или возобновление сеанса без явного потока входа в систему с истёкшим сроком действия.

Примечание: Этот API ограничен контекстами верхнего уровня. Вызовы get() и store() внутри элемента <iframe> выполняться без эффекта.

Учётные данные, общие для поддомена

Более поздняя версия спецификации позволяет получать учётные данные из другого поддомена. Например, пароль, хранящийся в login.example.com, может использоваться для входа на www.example.com. Чтобы это использовать, пароль должен быть явно сохранён путём вызова CredentialsContainer.store(). Иногда это называют сопоставлением с общедоступным списком суффиксов (PSL); однако спецификация рекомендует использовать PSL только для определения действующей области учётных данных. Это не обязательно. Следовательно, браузеры могут различаться реализацией API.

Интерфейсы

Credential

Предоставляет информацию о сущности в качестве предварительного условия для принятия решения о доверии.

CredentialsContainer

Предоставляет методы для запроса учётных данных и уведомления пользовательского агента, когда происходят события, например успешный вход или выход. Этот интерфейс доступен в navigator.credentials.

FederatedCredential

Предоставляет информацию об учётных данных от федеративного поставщика идентификации (объект), которому веб-сайт доверяет для правильной аутентификации пользователя и который предоставляет API для этой цели. OpenID Connect является примером такой структуры.

PasswordCredential

Предоставляет информацию о паре имени пользователя и пароля.

PublicKeyCredential

Предоставляет учётные данные для входа в систему с использованием пары асимметричных ключей, устойчивых к фишингу и защите от взлома данных, вместо пароля.

Спецификации

Specification
Credential Management Level 1

Совместимость с браузерами

api.Credential

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Credential
id
isConditionalMediationAvailable() static method
Experimental
type

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.

api.CredentialsContainer

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
CredentialsContainer
create
publicKey option
attestation option
attestation.direct
attestation.enterprise
attestation.indirect
attestation.none
create() extensions
appidExclude extension
credProps extension
credProtect extension
Experimental
largeBlob extension
minPinLength extension
payment extension
publicKey_option.requireResidentKey
Experimental
publicKey_option.residentKey
get
identity option
Experimental
identity.context
Experimental
Error API
ExperimentalNon-standard
identity.providers.loginHint
Experimental
otp option
Experimental
publicKey option
get() extensions
appid extension
largeBlob extension
Experimental
preventSilentAccess
store

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
No support
No support
Experimental. Expect behavior to change in the future.
Non-standard. Check cross-browser support before using.
See implementation notes.
Uses a non-standard name.
Has more compatibility info.

api.FederatedCredential

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
FederatedCredential
Experimental
FederatedCredential() constructor
Experimental
iconURL
Experimental
name
Experimental
protocol
Experimental
provider
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.

api.PasswordCredential

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
PasswordCredential
Experimental
PasswordCredential() constructor
Experimental
iconURL
Experimental
name
Experimental
password
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.