Цифровая идентичность человека — это набор атрибутов, которые его характеризуют. Примеры включают физические характеристики человека (цвет волос, цвет глаз или цвет кожи), квалификацию, место рождения или политическую принадлежность. Вся эта информация может быть использована для идентификации человека в Интернете.

К счастью для нас, эта информация не принадлежит уникальному объекту. Ни один онлайн-сервис не будет знать все атрибуты личности человека. Информация распространяется по всем сервисам, которыми можно пользоваться в Интернете.

С увеличением использования веб-сервисов и мобильных сервисов увеличивается использование цифровой идентификации. У одного и того же человека может быть много личностей. Все эти удостоверения захотят использовать разные сервисы и, возможно, взаимодействовать друг с другом для обмена информацией.

Человек может быть участником одной или нескольких социальных сетей. Им нужно будет иметь возможность добавлять контакты из своего почтового ящика или телефона. Они также могут быть клиентами банка. Человеку нужно будет видеть баланс своего счета, чтобы перевести деньги. Один и тот же человек может быть гражданином страны и хотеть декларировать свои налоги в Интернете или в мобильном приложении.

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

Мы можем спросить себя: как службы могут взаимодействовать друг с другом? Как они могут делиться информацией о пользователе и делать это безопасно?
Нам необходимо создать систему, упрощающую управление различными цифровыми идентификаторами пользователя, чтобы избежать дублирования этой информации. Данные, которые пользователь потенциально заполнил другим сервисом. Например, пользователь, у которого есть аккаунт в социальной сети, хочет импортировать свои контакты из другой сети. Как они могут импортировать эти контакты, не добавляя их по одному?

Чтобы удовлетворить эту потребность и стандартизировать способ связи между различными службами, были созданы открытые протоколы, такие как SAML или OAuth. Эти протоколы не принадлежат какой-либо компании. Это стандарты, которым нужно следовать.

Наиболее известны:

  • SAML (язык разметки подтверждения безопасности): позволяет пользователю пройти аутентификацию один раз (вход в систему) и получить доступ к нескольким ресурсам. Этот протокол очень широко распространен и обеспечивает централизованное управление пользователями.
  • OAuth2.0: позволяет пользователю разрешить приложению доступ к ресурсам другого сервиса.
  • OIDC (Open ID Connect): на основе OAuth2.0 позволяет аутентифицировать пользователя.
  • JWT (веб-токен JSON): обеспечивает безопасный обмен токенами между несколькими службами.

Эти стандарты предназначены для определения:

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

Давайте возьмем стандарт OAuth2 и попробуем понять, как он работает.

Пример: у нас есть пользователь Эмма, которая только что создала учетную запись в профессиональной сети LinkedIn. Она хочет импортировать эти контакты через свою учетную запись Gmail. Для этого LinkedIn будет использовать протокол OAuth 2, чтобы иметь возможность запрашивать разрешение на доступ к этим контактам Gmail.

Эмма подключится к LinkedIn, которая запросит импорт этих контактов Gmail. После авторизации LinkedIn для доступа к этим контактам. Gmail предоставит доступ к ресурсу, чтобы LinkedIn мог отобразить его для Эммы.

Понятие разрешения представляет собой факт авторизации службы (в данном случае LinkedIn) для доступа к части ресурсов Gmail (контактам). Разрешение, предоставленное пользователем, не является полным доступом. В этом примере платформа LinkedIn имеет доступ к списку контактов Gmail, но не к электронной почте.

Как и в случае аренды на время отпуска, у вас нет доступа ко всему дому. Вы имеете доступ только к той части дома, к которой вам был предоставлен доступ. Вы можете использовать гостиную, туалеты, спальни и террасу. У вас не будет доступа к подвалу и некоторым личным комнатам.

Поток OAuth2 может показаться простым, но он немного сложнее. Поток связи между Emma, ​​приложением LinkedIn и приложением Gmail мы подробно рассмотрим в статье о протоколе OAuth2.

Продолжение статьи: