Область техники, к которой относится изобретение
[01] Настоящая технология относится к компьютерным системам и способам для аутентификации пользователя первого и второго электронных сервисов.
Уровень техники
[02] Реализуемые в пользовательских устройствах электронные сервисы предназначены для разнообразных целей, включая бизнес, социальные сети, платежи и т.д. Эти сервисы или приложения обеспечивают графический интерфейс пользователя (GUI, Graphical User Interface) для представления данных пользователям и обеспечения взаимодействия пользователей с сервисами. Приложения могут загружаться в пользовательское устройство, например, для обеспечения безопасности и аутентификации, если пользователь желает использовать их встроенные функциональные возможности.
[03] Благодаря недавним разработкам в области систем веб-сервисов, в частности, систем социальных сетей, таких как Facebook™, или торговых электронных платформ, таких как Amazon™, система базового веб-сервиса может взаимодействовать с системой веб-сервиса, внешней по отношению к системе базового веб-сервиса. Такие внешние системы веб-сервисов также могут называться системами сторонних веб-сервисов. В качестве примеров разработанных механизмов, обеспечивающих взаимодействие системы базового веб-сервиса со системой стороннего веб-сервиса, можно привести механизмы, позволяющие пользователю входить в систему стороннего веб-сервиса путем предоставления своего регистрационного имени, связанного с системой базового веб-сервиса.
[04] В патенте US11064047 описаны способы обеспечения доступности текущих данных приложения путем использования соответствующего приложения.
Раскрытие изобретения
[05] В некоторых приложениях желательно ограничивать или предотвращать предоставление системе стороннего веб-сервиса данных, связанных с учетной записью пользователя системы базового веб-сервиса. Например, пользователь сервиса может быть заинтересован в лучшем управлении совместным использованием данных, относящихся к персональной информации, связанной с его учетной записью в системе базового веб-сервиса, в частности, данных, хранящихся в памяти системы базового веб-сервиса. Проблема лучшего управления совместным использованием данных, относящихся к персональной информации, часто может возникать, когда система базового веб-сервиса взаимодействует с одной или несколькими системами сторонних веб-сервисов, которые могут быть не настолько хорошо известными пользователю или надежными, как система базового веб-сервиса.
[06] Разработчики настоящей технологии определили по меньшей мере две проблемы, связанные с аутентификацией пользователя с помощью системы базового веб-сервиса. Во-первых, пользователю удобно использовать первый сервис в качестве «шлюза» для доступа к другим сервисам (например, аутентификация в сервисе электронной почты обеспечивает пользователю возможность аутентификации в музыкальном сервисе). При этом нежелательно передавать персональную информацию пользователя непосредственно сторонним веб-сервисам. Такое обращение с персональной информацией повышает риск утечки данных. Во-вторых, аутентификация на основе известных подходов предусматривает совместное использование идентификатора пользователя в нескольких веб-сервисах, в результате чего сторонние сервисы могут отслеживать пользователя по идентификатору пользователя и сообщать идентификатор пользователя другим сервисам.
[07] Базовый сервис может быть реализован в виде так называемого суперприложения (super app). В общем случае суперприложение представляет собой мобильное приложение, которое предоставляет несколько сервисов, включая, например, платежи и обработку финансовых операций, и фактически является всеобъемлющей интерактивной платформой для торговли и общения, которая охватывает многие аспекты личной жизни и коммерческой деятельности. В некоторых вариантах реализации суперприложения оно может представлять собой торговую площадку для услуг и предложений, предоставляемых с применением собственной технологии и путем интеграции сторонних элементов.
[08] Для лучшей иллюстрации этого можно предположить, что пользователь желает посмотреть театральную постановку в Москве через несколько дней с друзьями. Чтобы реализовать этот план, пользователю может потребоваться переключение между несколькими приложениями на его телефоне. Пользователю может потребоваться согласовать план со своими друзьями в сервисе WhatsApp™, купить билеты на театральную постановку в приложении Ticketmaster™, заказать поездку на спектакль через сервис Yandex.Taxi™, а после спектакля расплатиться друг с другом за напитки с помощью приложения Venmo™. В этом примере суперприложение может объединять для пользователя функции всех этих приложений в одном приложении, таким образом действуя в качестве «привратника» для разнообразных взаимодействий, выполняемых пользователем в интерактивном режиме. Например, в последнее время повышается важность социальных сетей в таких сферах деятельности пользователей, как покупки, банковские операции и развлечения.
[09] В некоторых вариантах осуществления изобретения разработчики настоящей технологии реализовали способы и системы, в которых пользователь может использовать свои регистрационные данные из базового сервиса для входа в различные клиентские системы веб-сервисов, работающих совместно с базовым сервисом.
[10] В других вариантах осуществления изобретения базовый сервис (например, суперприложение) может формировать уникальный идентификатор USUID (User-Service Unique Identifier) для аутентификации пользователя в конкретном клиентском сервисе. Следует отметить, что идентификатор USUID уникален для пары «пользователь - клиентский сервис». В других вариантах осуществления изобретения базовый сервис (например, суперприложение) может формировать уникальный идентификатор PSUID (Publisher Specific Unique Identifier) для аутентификации пользователя у конкретного издателя клиентского сервиса. Идентификатор PSUID уникален для пары «пользователь-издатель».
[11] В тех вариантах осуществления изобретения, где издатель управляет несколькими клиентскими сервисами, издатель может решить, используется один и тот же идентификатор PSUID для нескольких клиентских сервисов или нет. Например, издатель может решить, что один и тот же идентификатор PSUID может использоваться для нескольких клиентских сервисов, т.е. этот идентификатор PSUID уникален для пары «пользователь-издатель». В другом примере издатель может решить, что различные идентификаторы PSUID используются для нескольких клиентских сервисов, т.е. соответствующие идентификаторы USUID используются для соответствующих клиентских сервисов, при этом идентификатор USUID уникален для пары «пользователь - клиентский сервис».
[12] Предполагается, что информация о пользователе и информация о клиенте (и/или информация об издателе) может быть получена и обезличена. Идентификатор USUID может быть сформирован на основе такой обезличенной информации о паре «пользователь-клиент» (и/или о паре «пользователь-издатель»). Информация о пользователе может содержать имя пользователя. Дополнительно или в качестве альтернативы информация о пользователе может содержать идентификатор пользователя (UID, User Identifier), уникальный для конкретного пользователя. Дополнительные данные могут быть использованы для формирования идентификатора USUID. Процесс обезличивания может осуществляться путем шифрования информации о пользователе с использованием алгоритма шифрования.
[13] В других вариантах осуществления изобретения идентификатор USUID может быть упакован в контейнер с отметкой времени, указывающей на период действия этого идентификатора USUID. Например, отметка времени может представлять собой момент времени, соответствующий времени создания контейнера, к которому добавлен заранее заданный срок действия контейнера. По истечении заранее заданного срока действия контейнера клиентская система веб-сервиса требует аутентификации пользователя, чтобы обеспечить безопасное взаимодействие с пользователем, и/или может отправлять запрос базовому сервису на повторное формирование «свежего» идентификатора USUID. Упаковка идентификатора USUID с такой отметкой времени позволяет предотвращать мошенническое использование безопасных идентификаторов USUID, даже если мошеннический агент получил доступ к устаревшему идентификатору USUID. В некоторых вариантах осуществления изобретения идентификатор USUID и отметка времени могут быть включены в состав полезных данных веб-токена JSON (JWT, JSON Web Token), отправляемого из базового сервиса клиентскому сервису.
[14] Разработчики установили, что благодаря использованию идентификаторов USUID согласно настоящей технологии возможна аутентификация пользователя в клиентском сервисе через базовый сервис без запроса у пользователя дополнительной информации для аутентификации.
[15] Согласно первому аспекту настоящей технологии реализован способ аутентификации возможного пользователя, связанного с первым сервисом и со вторым сервисом. Первый сервис и второй сервис выполняются на соответствующих серверах серверной части (backend). Электронное устройство возможного пользователя способно связываться с соответствующими серверами серверной части с использованием сети связи. Способ включает в себя получение в данный момент времени вторым сервисом от первого сервиса запроса возможного идентификатора USUID, связанного с возможным пользователем, который в текущий момент времени пытается получить доступ к первому сервису. Первый сервис связан с уникальным идентификатором сервиса (SUID, Service Unique ID). Возможный идентификатор USUID уникален для пары «возможный пользователь - первый сервис». Идентификатор SUID уникален для первого сервиса. Если пользователь ранее был аутентифицирован во втором сервисе, способ включает в себя формирование вторым сервисом в данный момент времени возможного идентификатора USUID путем шифрования (а) информации о пользователе для возможного пользователя, аутентифицирующей возможного пользователя во втором сервисе, и (б) идентификатора SUID. Способ включает в себя получение в данный момент времени первым сервисом от второго сервиса токена, указывающего на возможный идентификатор USUID и сигнатуру. Способ включает в себя в ответ на подтверждение достоверности сигнатуры сравнение в данный момент времени возможного идентификатора USUID, полученного в данный момент времени, с целевым идентификатором USUID, связанным с целевым пользователем первого сервиса и полученным в другой момент времени. Другой момент времени предшествует данному моменту времени. Если возможный идентификатор USUID совпадает с целевым идентификатором USUID, способ включает в себя аутентификацию в данный момент времени первым сервисом возможного пользователя как целевого пользователя без запроса у возможного пользователя дополнительной информации.
[16] В некоторых вариантах осуществления способа целевой пользователь был аутентифицирован первым сервисом в другой момент времени, а целевой идентификатор USUID был сохранен первым сервисом при аутентификации в другой момент времени.
[17] В некоторых вариантах осуществления способа целевой пользователь был непосредственно аутентифицирован первым сервисом.
[18] В некоторых вариантах осуществления способа целевой пользователь был косвенно аутентифицирован первым сервисом во втором сервисе.
[19] В некоторых вариантах осуществления способа шифрование включает в себя шифрование вторым сервисом информации о пользователе с использованием первого секретного ключа и идентификатора SUID в качестве вектора инициализации для алгоритма «счетчик с аутентификацией Галуа» (GCM, Galois/Counter Mode).
[20] В некоторых вариантах осуществления способа он дополнительно включает в себя формирование вторым сервисом сигнатуры с использованием второго секретного ключа и алгоритма «хеш-код аутентификации сообщений» (HMAC, Hash Message Authentication Code).
[21] В некоторых вариантах осуществления способа токен представляет собой токен JWT, содержащий область заголовка, область полезных данных и область сигнатуры. Идентификатор USUID вставляется в область полезных данных, а сигнатура вставляется в область сигнатуры.
[22] В некоторых вариантах осуществления способа в область полезных данных дополнительно вставляется значение отметки времени, при этом отметка времени указывает на период действия идентификатора USUID.
[23] В некоторых вариантах осуществления способа первый сервис и второй сервис имеют одного и того же оператора.
[24] В некоторых вариантах осуществления способа оператор первого сервиса отличается от оператора второго сервиса.
[25] Согласно второму аспекту настоящей технологии реализована система для аутентификации возможного пользователя, связанного с первым сервисом и со вторым сервисом. Первый сервис и второй сервис системы выполняются на соответствующих серверах серверной части. Электронное устройство возможного пользователя способно связываться с соответствующими серверами серверной части с использованием сети связи. Система выполнена с возможностью получения в данный момент времени вторым сервисом от первого сервиса запроса возможного идентификатора USUID, связанного с возможным пользователем, который в текущий момент времени пытается получить доступ к первому сервису, связанному с идентификатором SUID, при этом возможный идентификатор USUID уникален для пары «возможный пользователь - первый сервис», а идентификатор SUID уникален для первого сервиса. Система выполнена с возможностью формирования вторым сервисом в данный момент времени возможного идентификатора USUID путем шифрования (а) информации о пользователе для возможного пользователя, аутентифицирующей возможного пользователя во втором сервисе, и (б) идентификатора SUID, если пользователь ранее был аутентифицирован во втором сервисе. Система выполнена с возможностью получения в данный момент времени первым сервисом от второго сервиса токена, указывающего на возможный идентификатор USUID и сигнатуру. Система способна в ответ на подтверждение достоверности сигнатуры сравнивать в данный момент времени возможный идентификатор USUID, полученный в данный момент времени, с целевым идентификатором USUID, связанным с целевым пользователем первого сервиса и полученным в другой момент времени, предшествующий данному моменту времени. Система выполнена с возможностью аутентификации в данный момент времени первым сервисом возможного пользователя как целевого пользователя без запроса у возможного пользователя дополнительной информации, если возможный идентификатор USUID совпадает с целевым идентификатором USUID.
[26] В некоторых вариантах осуществления системы целевой пользователь был аутентифицирован первым сервисом в другой момент времени, а целевой идентификатор USUID был сохранен первым сервисом при аутентификации в другой момент времени.
[27] В некоторых вариантах осуществления системы целевой пользователь был непосредственно аутентифицирован первым сервисом.
[28] В некоторых вариантах осуществления системы целевой пользователь был косвенно аутентифицирован первым сервисом во втором сервисе.
[29] В некоторых вариантах осуществления системы возможность шифрования включает в себя возможность шифрования вторым сервисом информации о пользователе с использованием первого секретного ключа и идентификатора SUID в качестве вектора инициализации для алгоритма GCM.
[30] В некоторых вариантах осуществления системы она дополнительно выполнена с возможностью формирования вторым сервисом сигнатуры с использованием второго секретного ключа в алгоритме HMAC.
[31] В некоторых вариантах осуществления системы токен представляет собой токен JWT, содержащий область заголовка, область полезных данных и область сигнатуры, при этом идентификатор USUID вставлен в область полезных данных, а сигнатура вставлена в область сигнатуры.
[32] В некоторых вариантах осуществления системы значение отметки времени дополнительно вставлено в область полезных данных, при этом отметка времени указывает на период действия идентификатора USUID.
[33] В некоторых вариантах осуществления системы первый сервис и второй сервис имеют одного и того же оператора.
[34] В некоторых вариантах осуществления системы оператор первого сервиса отличается от оператора второго сервиса.
[35] Согласно различным вариантам осуществления настоящей технологии реализован машиночитаемый физический носитель информации, хранящий программные команды для аутентификации пользователя сервиса, имеющего учетную запись, связанную с системой базового веб-сервиса, при этом программные команды исполняются процессором компьютерной системы с целью выполнения одного или нескольких вышеупомянутых способов.
[36] Согласно различным вариантам осуществления настоящей технологии реализована компьютерная система, содержащая по меньшей мере один процессор и память, в которой хранятся программные команды для аутентификации пользователя сервиса, имеющего учетную запись, связанную с системой базового веб-сервиса, при этом программные команды исполняются одним или несколькими процессорами компьютерной системы с целью выполнения одного или нескольких вышеупомянутых способов.
[37] В контексте настоящего описания, если явно не указано иное, под электронным устройством, компьютерной системой и системой веб-сервиса понимаются любые аппаратные и/или программные средства, подходящие для решения поставленной задачи. Таким образом, некоторые не имеющие ограничительного характера примеры аппаратных и/или программных средств включают в себя компьютеры (серверы, настольные, ноутбуки, нетбуки и т.п.), смартфоны, планшеты, сетевое оборудование (маршрутизаторы, коммутаторы, шлюзы и т.п.) и/или их сочетания.
[38] В контексте настоящего описания, если явно не указано иное, выражения «пригодная для чтения компьютером среда» и «память» включают в себя носители любого типа, в качестве не имеющих ограничительного характера примеров которых можно привести оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), диски (CD-ROM, DVD, гибкие диски, жесткие диски и т.д.), USB-накопители, карты флэш-памяти, твердотельные накопители и накопители на магнитных лентах.
[39] В контексте настоящего описания, если явно не указано иное, в качестве указания на информационный элемент может выступать сам информационный элемент, а также указатель, ссылка, гиперссылка или другое косвенное средство, с помощью которого получатель данных может найти место в сети, памяти, базе данных или на другом машиночитаемом носителе информации, откуда можно извлечь этот информационный элемент. Например, указание на файл может включать в себя сам файл (т.е. его содержимое) или это указание может представлять собой уникальный дескриптор файла, указывающий на файл в определенной файловой системе, или какие-либо другие средства для указания получателю данных места в сети, адреса памяти, таблицы в базе данных или другого места, где можно получить доступ к файлу. Специалисту в данной области должно быть понятно, что степень точности, требуемая для такого указания, зависит от объема предварительных знаний относительно интерпретации информации, которой обмениваются отправитель и получатель данных. Например, если перед началом обмена данными между отправителем и получателем известно, что указание на информационный элемент представляет собой ключ базы данных для элемента в определенной таблице заранее заданной базы данных, содержащей информационный элемент, то для эффективной передачи этого информационного элемента получателю достаточно оправить ключ базы данных, даже если сам информационный элемент не передается между отправителем и получателем данных.
[40] В контексте настоящего описания, если явно не указано иное, числительные «первый», «второй», «третий» и т.д. используются лишь для указания на различие между существительными, к которым они относятся, но не для описания каких-либо определенных взаимосвязей между этими существительными. Например, должно быть понятно, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо определенного порядка, типа, хронологии, иерархии или классификации, в данном случае, серверов, а также что их использование (само по себе) не подразумевает наличие «второго сервера» в любой ситуации. Кроме того, как встречается в настоящем описании в другом контексте, ссылка на «первый» элемент и «второй» элемент не исключает того, что эти два элемента в действительности могут быть одним и тем же элементом. Таким образом, например, в некоторых случаях «первый» сервер и «второй» сервер могут представлять собой одно и то же программное и/или аппаратное средство, а в других случаях - различные программные и/или аппаратные средства.
[41] Каждый вариант осуществления настоящей технологии относится к по меньшей мере одной из вышеупомянутых целей и/или аспектов, но не обязательно ко всем ним. Должно быть понятно, что некоторые аспекты настоящей технологии, связанные с попыткой достижения вышеупомянутой цели, могут не соответствовать этой цели и/или могут соответствовать другим целям, явным образом здесь не упомянутым.
[42] Дополнительные и/или альтернативные признаки, аспекты и преимущества вариантов осуществления настоящей технологии содержатся в дальнейшем описании, в приложенных чертежах и в формуле изобретения.
Краткое описание чертежей
[43] Дальнейшее описание приведено для лучшего понимания настоящей технологии, а также других аспектов и их признаков, и должно использоваться совместно с приложенными чертежами.
[44] На фиг. 1 представлена схема компьютерной системы, пригодной для реализации настоящей технологии и/или для использования с вариантами осуществления настоящей технологии.
[45] На фиг. 2 представлена схема сетевой вычислительной среды, пригодной для использования с некоторыми вариантами осуществления настоящей технологии.
[46] На фиг. 3 представлена схема системы веб-сервиса, пригодной для использования с некоторыми вариантами осуществления настоящей технологии.
[47] На фиг. 4 представлена схема компьютерного способа аутентификации возможного пользователя при прямом обращении к системе первого сервиса в данный момент времени согласно некоторым вариантам осуществления настоящей технологии.
[48] На фиг. 5 представлена схема компьютерного способа аутентификации возможного пользователя при косвенном обращении к системе первого сервиса в данный момент времени через систему второго сервиса согласно некоторым вариантам осуществления настоящей технологии.
[49] На фиг. 6 представлена схема компьютерного способа аутентификации возможного пользователя в случае обращения к системе первого сервиса в другой момент времени согласно некоторым вариантам осуществления настоящей технологии.
[50] На фиг. 7 представлена подробная схема выполнения компьютерного способа согласно фиг. 6.
[51] На фиг. 8 представлена блок-схема способа, выполняемого системой для аутентификации возможного пользователя, согласно некоторым вариантам осуществления настоящей технологии.
[52] Также следует отметить, что на чертежах не соблюдается масштаб, если явно не указано иное.
Осуществление изобретения
[53] Представленные здесь примеры и условный язык предназначены для обеспечения лучшего понимания принципов настоящей технологии, а не для ограничения ее объема до таких специально приведенных примеров и условий. Очевидно, что специалисты в данной области техники способны разработать различные способы и устройства, которые явно не описаны и не показаны, но реализуют принципы настоящей технологии в пределах ее существа и объема.
[54] Кроме того, чтобы способствовать лучшему пониманию, последующее описание может содержать упрощенные варианты реализации настоящей технологии. Специалистам в данной области должно быть понятно, что другие варианты осуществления настоящей технологии могут быть значительно сложнее.
[55] В некоторых случаях приводятся полезные примеры модификаций настоящей технологии. Они способствуют пониманию, но также не определяют объема или границ настоящей технологии. Представленный перечень модификаций не является исчерпывающим и специалист в данной области может разработать другие модификации в пределах объема настоящей технологии. Кроме того, если в некоторых случаях модификации не описаны, это не означает, что они невозможны и/или что описание содержит единственно возможный вариант реализации того или иного элемента настоящей технологии.
[56] Описание принципов, аспектов и вариантов реализации настоящей технологии, а также их конкретные примеры предназначены для охвата их структурных и функциональных эквивалентов, независимо от того, известны они в настоящее время или будут разработаны в будущем. Например, специалистам в данной области техники должно быть понятно, что любые описанные здесь структурные схемы соответствуют концептуальным представлениям иллюстративных принципиальных схем, реализующих основы настоящей технологии. Также должно быть понятно, что любые блок-схемы, схемы процессов, диаграммы изменения состояния, псевдокоды и т.п. соответствуют различным процессам, которые могут быть представлены на машиночитаемом физическом носителе информации и могут выполняться компьютером или процессором, независимо от того, показан такой компьютер или процессор явно или нет.
[57] Функции различных элементов, показанных на чертежах, включая любой функциональный блок, обозначенный как «процессор», могут быть реализованы с использованием специализированных аппаратных средств, а также аппаратных средств, способных выполнять соответствующее программное обеспечение. Если используется процессор, эти функции могут выполняться одним выделенным процессором, одним совместно используемым процессором или множеством отдельных процессоров, некоторые из которых могут использоваться совместно. Кроме того, явное использование термина «процессор» или «контроллер» не должно трактоваться как указание исключительно на аппаратные средства, способные выполнять программное обеспечение, и может подразумевать, помимо прочего, аппаратные средства цифрового сигнального процессора (DSP), сетевой процессор, специализированную интегральную схему (ASIC), программируемую вентильную матрицу (FPGA), ПЗУ для хранения программного обеспечения, ОЗУ и энергонезависимое запоминающее устройство. Также могут подразумеваться другие аппаратные средства, общего назначения и/или заказные.
[58] Программные модули или просто модули, реализация которых предполагается в виде программных средств, могут быть представлены здесь как любое сочетание элементов блок-схемы или других элементов, указывающих на выполнение шагов процесса и/или содержащих текстовое описание. Такие модули могут выполняться аппаратными средствами, показанными явно или подразумеваемыми.
[59] Далее с учетом вышеизложенных принципов рассмотрены некоторые не имеющие ограничительного характера примеры, иллюстрирующие различные варианты реализации аспектов настоящей технологии.
[60] На фиг. 1 приведена компьютерная система 100, пригодная для использования в некоторых вариантах реализации настоящей технологии и содержащая различные аппаратные элементы, включая один или несколько одно- или многоядерных процессоров, обобщенно представленных процессором 110, твердотельный накопитель120, ОЗУ 130, интерфейс 140 дисплея и интерфейс 150 ввода-вывода.
[61] Связь между различными элементами компьютерной системы 100 может осуществляться через одну или несколько внутренних и/или внешних шин 160 (таких как шина PCI, шина USB, шина FireWire стандарта IEEE 1394, шина SCSI, шина Serial-ATA и т.д.), с которыми различные аппаратные элементы соединены электронными средствами. Интерфейс 140 дисплея может быть связан с монитором 142 (например, HDMI-кабелем 144), который виден пользователю 170 сервиса (также называется пользователем сервиса). Интерфейс 150 ввода-вывода может быть связан с клавиатурой 151 (например, USB-кабелем 153) и мышью 152 (например, USB-кабелем 154), при этом клавиатуру 151 и мышь 152 может использовать пользователь 170 сервиса.
[62] Согласно вариантам осуществления настоящей технологии, твердотельный накопитель 120 хранит программные команды, пригодные для загрузки в ОЗУ 130 и исполнения процессором 110 для аутентификации возможного пользователя, имеющего учетную запись, связанную с системой базового веб-сервиса. Программные команды могут, например, входить в состав библиотеки или приложения.
[63] На фиг. 2 представлена сетевая вычислительная среда 200, пригодная для использования с некоторыми вариантами осуществления настоящей технологии и содержащая систему первого веб-сервиса 202, систему второго веб-сервиса 204, пользовательское устройство 208 и сеть 206, обеспечивающую связь этих систем.
[64] Система первого веб-сервиса 202 и система второго веб-сервиса 204 могут представлять собой системы, обеспечивающие веб-сервисы для одного или нескольких пользователей 170 сервисов, взаимодействующих с системой первого веб-сервиса 202 и/или с системой второго веб-сервиса 204 через пользовательское устройство 208. Например, система первого веб-сервиса 202 и/или система второго веб-сервиса 204 могут, в числе прочего, включать в себя систему социальной сети (например, Facebook™, VK™), систему сервиса электронной почты (например, Gmail™, Yandex.Mail™), сервис управления учетными записями (например, Yandex.Passport™), сервис хранения информации (например, Evernote™), систему веб-сервиса для блогов (например, Twitter™) или систему сервиса электронной торговли (например, Amazon™, Expedia™).
[65] Должно быть понятно, что в некоторых не имеющих ограничительного характера вариантах осуществления изобретения система первого веб-сервиса 202 и система второго веб-сервиса 204 могут представлять собой часть общей системы веб-сервиса, обеспечивающей по меньшей мере два различных веб-сервиса. В этом примере системы первого и второго веб-сервисов 202 и 204 могут находиться в собственности и/или управляться одним и тем же лицом и/или обеспечивать два различных веб-сервиса, размещенные в общем домене (например, система сервиса электронной почты Yandex.Mail™, представляющая собой первый веб-сервис, и сервис управления учетными записями Yandex.Passport™, представляющий собой второй веб-сервис, размещены в общем домене Yandex).
[66] И наоборот, в некоторых других не имеющих ограничительного характера вариантах осуществления изобретения система первого веб-сервиса 202 и система второго веб-сервиса 204 могут представлять собой части различных систем веб-сервисов, обеспечивающих по меньшей мере два различных веб-сервиса. В этом примере системы первого и второго веб-сервисов 202 и 204 могут находиться в собственности и/или управляться различными лицами и/или обеспечивать два различных веб-сервиса, размещенных в различных доменах (например, система сервиса электронной почты Yandex.Mail™, представляющая собой первый веб-сервис, и система сервиса электронной торговли Amazon™, представляющая собой второй веб-сервис, размещены в различных доменах Yandex и Amazon).
[67] Должно быть понятно, что в некоторых других не имеющих ограничительного характера вариантах осуществления изобретения и система первого веб-сервиса 202, и система второго веб-сервиса 204 могут содержать один или несколько веб-сервисов. Например, система первого веб-сервиса 202 может содержать систему сервиса электронной почты (Yandex.Mail™) и сервис управления учетными записями (например, Yandex.Passport™), а второй веб-сервис может содержать сервис хранения информации (например, Evernote™) и/или систему сервиса электронной торговли (например, Expedia™). Должно быть понятно, что в некоторых не имеющих ограничительного характера вариантах осуществления изобретения система первого веб-сервиса 202 может называться системой стороннего веб-сервиса, а система второго веб-сервиса 204 может называться системой базового веб-сервиса, а в некоторых других не имеющих ограничительного характера вариантах осуществления изобретения система первого веб-сервиса 202 может называться системой базового веб-сервиса, а система второго веб-сервиса 204 может называться системой стороннего веб-сервиса
[68] Системы первого и второго веб-сервисов 202 и 204 могут содержать один или несколько серверов. Каждый сервер может содержать внутренние аппаратные элементы, включая один или несколько одно- или многоядерных процессоров, обобщенно называемых процессором 110, и ОЗУ 130, которые аналогичны подобным образом обозначенным аппаратным элементам компьютерной системы 100, представленной на фиг. 1, а также сетевой интерфейс (не показан) для связи через сеть 206.
[69] Пользовательское устройство 208 может взаимодействовать с системой первого веб-сервиса 202 и/или с системой второго веб-сервиса 204 путем получения входных данных от пользователя 170 сервиса, а также путем получения и отправки данных через сеть 206. Например, пользовательское устройство 208 может, в числе прочего, представлять собой настольный компьютер, ноутбук, смартфон (например, Apple iPhone™ или Samsung Galaxy S5™), карманный персональный компьютер или любое другое устройство, обеспечивающее функции обработки и обмена данными. Пользовательское устройство 208 может содержать внутренние аппаратные элементы, включая один или несколько одно- или многоядерных процессоров, обобщенно называемых процессором 110, и ОЗУ 130, которые аналогичны подобным образом обозначенным аппаратным элементам компьютерной системы 100, представленной на фиг. 1, а также сетевой интерфейс (не показан) для связи через сеть 206 с первым и вторым веб-сервисами 202 и 204.
[70] В одном не имеющем ограничительного характера варианте осуществления изобретения пользовательское устройство 208 отображает контент из систем первого и/или второго веб-сервисов 202, 204 путем обработки документа 214 на языке разметки, полученного от систем первого и/или второго веб-сервиса 202, 204. Документ 214 на языке разметки указывает на контент и на одну или несколько команд, описывающих форматирование или представление контента. Путем исполнения команд, содержащихся в документе 214 на языке разметки, браузерное приложение 210 отображает указанный контент с использованием формата или представления, описанного в документе 214 на языке разметки. В различных вариантах осуществления изобретения документ 214 на языке разметки содержит файл данных, содержащий данные на расширяемом языке разметки (XML, Extensible Markup Language), данные на расширяемом языке разметки гипертекста (XHTML, Extensible Hypertext Markup Language) или данные на другом языке разметки.
[71] В других не имеющих ограничительного характера вариантах осуществления изобретения пользовательское устройство 208 может также содержать куки-файл 212, содержащий данные, указывающие на то, вошел ли пользователь 170 сервиса пользовательского устройства 208 в систему второго веб-сервиса 204. Куки-файл 212 может указывать на то, участвует ли пользователь 170 сервиса в активном сеансе, в котором пользовательское устройство 208 обменивается данными с системой второго веб-сервиса 204, если пользователь 170 сервиса имеет учетную запись, связанную с системой второго веб-сервиса 204.
[72] Предполагается, что система веб-сервиса может содержать серверную часть (backend) и пользовательскую часть (frontend). Пользовательская часть веб-сервиса может, например, выполняться электронным устройством, связанным с пользователем. Пользовательская часть может обеспечивать интерфейс GUI пользователю для взаимодействия с веб-сервисом. В некоторых вариантах осуществления изобретения загружаемое приложение, предназначенное для веб-сервиса, может быть включено в состав пользовательской части веб-сервиса. Возможная реализация серверной части системы веб-сервиса описана ниже со ссылкой на фиг. 3.
[73] На фиг. 3 представлена схема системы веб-сервиса, пригодной для использования с некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии. На фиг. 3 представлены не имеющие ограничительного характера варианты осуществления системы первого веб-сервиса 202 и/или системы второго веб-сервиса 204. Для упрощения описания не имеющих ограничительного характера вариантов осуществления изобретения используется ссылка на системы первого и второго веб-сервисов 202 и 204, но это не означает, что системы первого и второго веб-сервисов 202 и 204 должны быть схожими, чтобы подходить для использования в некоторых вариантах осуществления настоящей технологии. Система первого веб-сервиса 202 и система второго веб-сервиса 204 могут быть несхожими и/или каждая из них может отличаться (частично или полностью) от системы веб-сервиса, представленной на фиг. 3, без выхода за границы настоящей технологии.
[74] Системы первого и второго веб-сервисов 202 и 204 могут содержать веб-сервер 302, сервер 304 запросов прикладного программного интерфейса (API, Application Programing Interface), сервер 306 авторизации, хранилище 308 пользовательских профилей, регистратор 310 действий, хранилище 312 шаблонов, журнал 314 регистрации действий, хранилище 316 связей, формирователь 318 токенов, хранилище 320 токенов и/или хранилище 322 папки входящих сообщений. В других вариантах осуществления изобретения системы первого и второго веб-сервисов 202 и 204 могут содержать дополнительные или другие модули для различных приложений или их меньшее количество. Традиционные элементы, такие как сетевые интерфейсы, механизмы защиты, выравниватели нагрузки, отказоустойчивые серверы, консоли управления и обслуживания сетей и т.п. не показаны, чтобы не затруднять понимания подробностей системы.
[75] Веб-сервер 302 системы первого веб-сервиса 202 может связывать систему первого веб-сервиса 202 через сеть 206 с одним или несколькими пользовательскими устройствами и/или с одним или несколькими внешними веб-сайтами, например, с пользовательским устройством 208 и/или с системой второго веб-сервиса 204. Веб-сервер 302 обслуживает веб-страницы, а также другой веб-контент, такой как Java, Flash, XML и т.д. Веб-сервер 302 может содержать сервер электронной почты или другие функциональные средства обмена сообщениями для получения и маршрутизации сообщений между системой первого веб-сервиса 202 и одним или несколькими пользовательскими устройствами 208. Сообщения могут представлять собой мгновенные сообщения, сообщения в очереди (например, сообщения электронной почты), текстовые сообщения, SMS-сообщения или сообщения любого другого подходящего вида.
[76] Сервер 304 запросов API системы первого веб-сервиса 202 обеспечивает одной или нескольким внешним системам веб-сервисов, таким как система второго веб-сервиса 204, возможность обмениваться информацией с первым веб-сервисом 202 путем обращения к одному или нескольким интерфейсам API. Такой обмен информацией может представлять собой отправку информации от системы первого веб-сервиса 202 системе второго веб-сервиса 204 и/или отправку информации от системы второго веб-сервиса 204 системе первого веб-сервиса 202. Например, такой обмен информацией может, в числе прочего, представлять собой передачу запроса аутентификации и/или токена, используемого для аутентификации возможного пользователя, и/или данных, связанных с действием, выполняемым в системе второго веб-сервиса 204, как подробно описано ниже. Сервер 304 запросов API системы первого веб-сервиса 202 также может обеспечивать системе второго веб-сервиса 204 возможность отправки информации путем обращения к интерфейсам API. Например, система второго веб-сервиса 204 отправляет запрос API системе первого веб-сервиса 202 через сеть 206, а сервер 304 запросов API получает запрос API. Сервер 304 запросов API обрабатывает запрос путем обращения к интерфейсу API, связанному с запросом API, для формирования соответствующего ответа, который сервер 304 запросов API передает системе второго веб-сервиса 204 через сеть 206.
[77] Сервер 306 авторизации системы первого веб-сервиса 202 может содержать логику определения возможности доступа к некоторой информации, связанной с пользователем, для друзей пользователя, внешних веб-сайтов, таких как система второго веб-сервиса 204, и/или других приложений и лиц. Сервер 306 авторизации может применять одну или несколько настроек конфиденциальности пользователей системы первого веб-сервиса 202. Настройка конфиденциальности пользователя определяет совместное использование конкретной информации, связанной с пользователем. Настройка конфиденциальности содержит спецификацию конкретной информации, связанной с пользователем, и спецификацию объекта или объектов, которым может быть предоставлен доступ к этой информации. В качестве примеров объектов, которым может быть предоставлен доступ к информации, можно привести других пользователей, приложения, систему второго веб-сервиса 204 или любой объект, который потенциально может обращаться к информации. Информация, которой пользователь может поделиться, может содержать информацию профиля пользователя, такую как фотография профиля, номера телефонов, связанные с пользователем, связи пользователя, действия. выполненные пользователем, такие как добавление связи, изменение информации профиля пользователя и т.п.
[78] В некоторых вариантах осуществления изобретения сервер 306 авторизации системы 202 первого веб-сервиса может управлять одним или несколькими списками действий, которые система второго веб-сервиса 204 способна выполнять в системе первого веб-сервиса 202. В некоторых вариантах осуществления изобретения один или несколько списков действий могут храниться в хранилище 308 пользовательских профилей, в хранилище 316 связей, в хранилище 320 токенов и/или в хранилище 322 папки входящих сообщений. Другие места хранения данных также могут использоваться без выхода за границы настоящей технологии.
[79] Список действий может быть связан с учетной записью пользователя системы первого веб-сервиса 202 и также может формироваться, чтобы предложить пользователю задать список действий, выполнение которых он желает разрешить системе второго веб-сервиса 204. В качестве примеров таких действий можно привести проведение транзакции (например, финансовой операции, если система второго веб-сервиса 204 представляет собой систему сервиса электронной торговли), отправку данных, дополнительно сформированных для проведения транзакции (например, отправку подтверждения получения для покупки билета на самолет, если система второго веб-сервиса 204 представляет собой систему веб-сервиса бюро путешествий), отправку данных, дополнительно сформированных для взаимодействия пользователя с системой второго веб-сервиса 204, и т.д.
[80] В альтернативных не имеющих ограничительного характера вариантах осуществления изобретения сервер 306 авторизации системы второго веб-сервиса 204 может содержать логику определения возможности выполнения действия для пользователя сервиса на основе конкретных параметров, таких как токен, полученный от системы первого веб-сервиса 202. Как описано выше применительно к серверу 306 авторизации системы первого веб-сервиса 202, действие может включать в себя проведение транзакции (например, финансовой операции, если система второго веб-сервиса 204 представляет собой систему сервиса электронной торговли), отправку данных, дополнительно сформированных для проведения транзакции, (например, отправку подтверждения получения для покупки билета на самолет, если система второго веб-сервиса 204 представляет собой систему веб-сервиса бюро путешествий), отправку данных, дополнительно сформированных для взаимодействия пользователя с системой второго веб-сервиса 204, и т.д.
[81] Регистратор 310 действий способен получать от веб-сервера 302 данные о действиях пользователя в системе первого веб-сервиса 202 и/или в системе второго веб-сервиса 204 и/или вне их. Регистратор 310 действий может наполнять журнал 314 регистрации действий информацией о действиях пользователя, позволяя системе первого веб-сервиса 202 отслеживать различные действия, выполняемые его пользователями в первом веб-сервисе 202 и/или вне первого веб-сервиса 202, например, во втором веб-сервисе 204. Любое выполняемое конкретным пользователем действие может быть связано с профилем каждого пользователя посредством информации, сохраняемой в журнале 314 регистрации действий или в схожей базе данных либо в другом репозитории данных.
[82] В качестве примеров действий, выполняемых пользователем в системе первого веб-сервиса 202, которые идентифицируются и сохраняются, можно привести добавление связи с другим пользователем, отправку сообщения другому пользователю, чтение сообщения от другого пользователя, просмотр контента, связанного с другим пользователем, участие в мероприятии, опубликованном другим пользователем, или другие действия по взаимодействию с другим пользователем. Действие, выполняемое пользователем в системе первого веб-сервиса 202, регистрируется в журнале 314 регистрации действий. В одном варианте осуществления изобретения система первого веб-сервиса 202 поддерживает журнал 314 регистрации действий в виде базы данных записей. Когда действие выполняется в системе первого веб-сервиса 202, в журнал 314 регистрации действий добавляется запись для этого действия.
[83] Кроме того, действия пользователя могут связываться с записью вне системы первого веб-сервиса 202, например, в системе второго веб-сервиса 204, отдельной от системы первого веб-сервиса 202. Например, регистратор 310 действий получает от веб-сервера 302 данные, описывающие взаимодействие пользователя с системой второго веб-сервиса 204. В качестве примеров действий при взаимодействии пользователя с системой второго веб-сервиса 204 или со связанным с ней объектом можно привести выражение пользователем интереса к внешнему веб-сайту или другому объекту, публикацию пользователем комментария в системе второго веб-сервиса 204, публикацию пользователем в системе первого веб-сервиса 202 универсального указателя ресурсов (URL, Uniform Resource Locator) или другого идентификатора, связанного с системой второго веб-сервиса 204, участие пользователя в мероприятии, связанном с системой второго веб-сервиса 204, проведение пользователем транзакции в системе второго веб-сервиса 204 или любое другое действие пользователя, относящееся к системе второго веб-сервиса 204 или к связанному с ней объекту. Таким образом, журнал 314 регистрации действий может содержать действия, описывающие взаимодействие между системой первого веб-сервиса 202 и системой второго веб-сервиса 204, отдельной от системы первого веб-сервиса 202.
[84] Формирователь 318 токенов способен формировать токен (например, токен OAuth), аутентифицирующий пользователя сервиса системы первого веб-сервиса 202. В некоторых вариантах осуществления изобретения токен может представлять собой указание, обеспечивающее уникальную идентификацию пользователя сервиса системы первого веб-сервиса 202 без раскрытия какой-либо информации, связанной с учетной записью пользователя. В некоторых альтернативных вариантах осуществления изобретения токен может представлять собой указание, обеспечивающее уникальную идентификацию пользователя сервиса системы первого веб-сервиса 202 и раскрывающее некоторую, но не всю информацию, связанную с учетной записью пользователя. Токен может быть сформирован на основе данных, связанных с учетной записью пользователя 170 сервиса, таких как данные, хранящиеся в хранилище 308 пользовательских профилей, в хранилище 316 связей и/или в хранилище 320 токенов. В некоторых вариантах осуществления изобретения токен может содержать первые данные, обезличено аутентифицирующие пользователя 170 сервиса, и вторые данные, идентифицирующие действие, которое пользователь 170 сервиса может выполнять в системе второго веб-сервиса 204. В некоторых вариантах осуществления изобретения токен, сформированный системой первого веб-сервиса 202, может быть сохранен в хранилище 320 токенов системы первого веб-сервиса 202 и/или в хранилище 320 токенов системы второго веб-сервиса 204.
[85] Кроме того, система первого веб-сервиса 202 хранит данные об объектах, с которыми пользователь может взаимодействовать с использованием системы первого веб-сервиса 202. Чтобы поддерживать эти данные, в хранилище 308 пользовательских профилей и в хранилище 316 связей хранятся экземпляры соответствующих видов объектов, поддерживаемых системой первого веб-сервиса 202. Объект каждого вида содержит информационные поля, подходящие для хранения информации, соответствующей виду объекта. Например, хранилище 308 пользовательских профилей содержит структуры данных с полями, подходящими для описания профиля пользователя. Когда создается новый объект конкретного вида, система первого веб-сервиса 202 инициализирует новую структуру данных соответствующего вида, назначает для нее уникальный идентификатор объекта и добавляет данные в объект по мере необходимости. Например, это может произойти, когда пользователь становится пользователем системы первого веб-сервиса 202, которая при этом формирует новый экземпляр профиля пользователя в хранилище 308 пользовательских профилей, назначает уникальный идентификатор профилю пользователя и пароль, связанный с уникальным идентификатором, и начинает наполнять поля профиля пользователя информацией, предоставляемой пользователем.
[86] Как описано со ссылкой на фиг. 2, в случаях, когда пользователь 170 сервиса имеет учетную запись, связанную с системой первого веб-сервиса 202 и/или с системой второго веб-сервиса 204, эта учетная запись может содержать персональную информацию о пользователе 170 сервиса, в числе прочего, такую как имя пользователя, адрес пользователя, финансовая информация пользователя (например, информация о банковском счете, информация о кредитной карте и т.д.).
[87] В других вариантах осуществления изобретения учетная запись может содержать не персональную информацию, а одну или несколько ссылок на персональную информацию. В других вариантах осуществления изобретения учетная запись может содержать другую информацию, например, такую как веб-сервис социальной сети, социальная сеть или социальный граф, идентифицирующий других пользователей или объекты, с которыми пользователь 170 сервиса поддерживает взаимоотношения. В некоторых вариантах осуществления изобретения персональная информация и другая информация может храниться в хранилище 308 пользовательских профилей. Другие места хранения персональной информации и другой информации могут использоваться без выхода за границы настоящей технологии.
[88] Например, в некотором варианте осуществления изобретения пользователь 170 сервиса может обращаться к учетной записи, связанной с системой первого веб-сервиса 202, путем предоставления, в числе прочего, учетного имени и/или пароля, однозначно идентифицирующего пользователя 170 сервиса в системе первого веб-сервиса 202. Должно быть понятно, что другие средства однозначной идентификации пользователя 170 сервиса в системе первого веб-сервиса 202 могут использоваться без выхода за границы настоящей технологии. Такие средства могут включать в себя биометрическую информацию, например, связанную с распознаванием отпечатков пальцев, радужной оболочки глаз и/или лиц.
[89] В одном варианте осуществления изобретения вид объекта может использоваться для определения шаблона из хранилища 312 шаблонов, используемого для отображения контента, например, полученного с веб-страницы системы второго веб-сервиса 204. В частности, шаблон может использоваться для отображения контента с веб-страницы, связанной с объектом, представляющим собой подтверждение получения, дополнительно сформированное для транзакции, проводимой пользователем 170 сервиса во втором веб-сервисе 204 (например, подтверждение получения для покупки билета на самолет).
[90] Хранилище 316 связей содержит структуры данных, подходящие для описания связей пользователя с другими пользователями, связей с системой второго веб-сервиса 204 или связей с другими объектами. В хранилище 316 связей такие связи пользователя также могут сопоставляться с видом связи, который может использоваться в сочетании с настройкой конфиденциальности пользователя (подробно описано выше) для управления доступом к информации о пользователе. Благодаря данным, хранящимся в хранилище 316 связей, в хранилище 308 пользовательских профилей и в журнале 314 регистрации действий, система первого веб-сервиса 202 может определять взаимосвязи между различными объектами.
[91] Хранилище 322 папки входящих сообщений может содержать структуры данных, подходящие для хранения данных, полученных от системы второго веб-сервиса 204 в качестве результата действия, выполненного системой второго веб-сервиса 204. В качестве примера данных, полученных от системы второго веб-сервиса 204, можно привести данные, связанные с проведением транзакции (например, финансовой операции, если система второго веб-сервиса 204 представляет собой систему сервиса электронной торговли). Как должно быть понятно специалисту в области настоящей технологии, хранилище 322 папки входящих сообщений может обеспечивать централизованный репозиторий данных, полученных от систем веб-сервисов, внешних по отношению к системе первого веб-сервиса 202, таких как система второго веб-сервиса 204.
[92] Выше со ссылкой на фиг. 1–3 описаны некоторые не имеющие ограничительного характера примеры систем первого и второго веб-сервисов 202 и 204 для использования с целью решения задачи аутентификации пользователя сервиса, связанного с системой второго веб-сервиса 204. Ниже со ссылкой на фиг. 4–8 описано общее решение этой проблемы.
Общий подход
[93] Разработчики настоящей технологии разработали способы и системы, формирующие особый уникальный идентификатор для пары «пользователь-сервис» при аутентификации пользователя клиентского сервиса, связанного со вторым сервисом. Этот особый уникальный идентификатор обозначается USUID.
[94] Общий подход процесса аутентификации включает в себя формирование идентификатора USUID на основе идентификатора SUID и информации о пользователе. Идентификатор USUID представляет собой глобальный уникальный идентификатор для пары «пользователь - клиентский сервис». В других вариантах осуществления изобретения общий подход может включать в себя формирование глобальных уникальных идентификаторов для пары «пользователь-издатель», при этом издатель управляет несколькими клиентскими сервисами.
[95] Общий подход может включать в себя шаг формирования двух специальных ключей для использования в процессе шифрования и в процессе формирования сигнатуры, соответственно. Общий подход может включать в себя определение начального значения для пользователя. Например, начальное значение может быть равно 0, но пользователь может инициировать обновление начального значения. Такое действие может использоваться, чтобы сделать недействительными все ранее сформированные идентификаторы USUID для этого пользователя.
[96] Общий подход может включать в себя шаг шифрования пользовательской информации и начального значения с использованием первого ключа. Подлежащая шифрованию пользовательская информация может представлять собой имя пользователя и/или уникальный идентификатор пользователя (UUID, User Unique ID), связанный с пользователем. В этом примере идентификатор SUID (например, идентификатор клиентского сервиса) может использоваться в процессе шифрования в качестве вектора инициализации.
[97] В некоторых вариантах осуществления изобретения идентификатор USUID может быть сформирован с использованием алгоритма AES (Advanced Encryption Standard) в режиме GCM. В целом, стандарт AES представляет собой спецификацию для шифрования электронных данных, утвержденную Национальным институтом стандартов и технологии США (NIST, National Institute of Standards and Technology) в 2001 г. Говоря упрощенно, в криптографии алгоритм GCM представляет собой режим работы симметричных блочных шифров, который может быть полезен за счет своей производительности. Режим GCM обеспечивает пропускную способность высокоскоростных каналов связи при низких затратах на аппаратные ресурсы. При этом выполняется алгоритм аутентифицированного шифрования, обеспечивающий как аутентификацию (целостность), так и конфиденциальность данных. Режим GCM может быть определен для блочных шифров с размером блока в 128 битов. Код Галуа для аутентификации сообщений (GMAC, Galois Message Authentication Code) представляет собой вариант режима GCM, который обеспечивает лишь аутентификацию данных и может использоваться в качестве инкрементального кода аутентификации сообщений. Алгоритмы GCM и GMAC могут принимать векторы инициализации произвольной длины.
[98] Общий подход может включать в себя шаг подписания зашифрованных данных с использованием второго ключа. В этом примере для подписания зашифрованных данных может использоваться алгоритм HMAC. В общем случае в криптографии алгоритм HMAC соответствует особому виду кода аутентификации сообщений (MAC, Message Authentication Code) и предусматривает использование криптографической хеш-функции и секретного криптографического ключа. Алгоритм HMAC может применяться для одновременной проверки и целостности данных, и аутентичности сообщения. Алгоритм HMAC может обеспечивать аутентификацию с использованием общедоступного секретного ключа вместо цифровых сигнатур в асимметричном шифровании. Он позволяет отказаться от сложной инфраструктуры открытых ключей, делегируя обмен ключами взаимодействующим сторонам, которые ответственны за создание и использование безопасного канала для согласования ключа до начала обмена данными. Тем не менее, без выхода за границы настоящей технологии в процессе подписания могут использоваться и другие подходящие алгоритмы.
[99] Общий подход может включать в себя шаг передачи идентификатора USUID и сигнатуры с использованием токена JWT. В целом, токен JWT соответствует предлагаемому интернет-стандарту для создания данных с дополнительной сигнатурой и/или с дополнительным шифрованием. Полезные данные токена JWT основаны на формате JSON и содержат некоторое количество ключей. Эти токены подписываются с использованием личного секретного ключа или личного открытого ключа. Например, сервер может сформировать токен с ключом «logged in as administrator» (вошел в систему как администратор) и предоставить его клиенту. Затем клиент может использовать этот токен, чтобы подтвердить, что он вошел в систему как администратор. Токены могут быть подписаны закрытым ключом одной стороны (обычно сервера), чтобы эта сторона могла впоследствии проверить подлинность токена. Если другая сторона в результате применения некоторых подходящих и заслуживающих доверия средств владеет соответствующим открытым ключом, она также может проверить подлинность токена. Токены разработаны так, чтобы обеспечивать компактность, безопасность для URL-адресов и удобство использования, в частности, в контексте единственной подписи (SSO, Single-Sign-On) в веб-браузере. Ключи JWT можно использовать для передачи идентификационной информации аутентифицированных пользователей между поставщиком идентификационной информации и поставщиком услуг или других подходящих ключей согласно нуждам хозяйственной деятельности. Токен JWT основан на других стандартах на основе формата JSON, таких как веб-сигнатура JSON (JSON Web Signature) и веб-шифрование JSON (JSON Web Encryption).
[100] Общий подход может включать в себя шаг регистрации клиентского сервиса. В некоторых вариантах осуществления изобретения оператору или издателю клиентского сервиса может потребоваться регистрация приложения OAuth. Например, оператор может выполнять регистрацию на сервере OAuth, чтобы получать токены для пользователей Yandex™. При этом может быть задан минимальный требуемый набор областей действия, оператором может быть получен идентификатор SUID (например, идентификатор клиента) в ответ на завершение процесса регистрации и может быть добавлен адрес redirect_uri, созданный на основе заранее заданных правил (например, turboapp://<turbo_app_id>). Этот идентификатор SUID может быть задан в настройках клиента. В общем случае области действия представляют собой компьютерный механизм ограничения доступа сервиса к учетной записи пользователя. Например, сервис может запросить одну или несколько областей действия, затем эта информация может быть представлена пользователю на экране разрешения и токен доступа, выданный сервису, может быть ограничен разрешенными областями действия. В общем случае адрес redirect_uri представляет собой универсальный идентификатор ресурсов (URI, Uniform Resource Identifier), используемый системой для отправки кода авторизации. Затем в обмен на код можно получить токен доступа, который может быть использован для аутентификации последующих API-вызовов.
[101] Общий подход может включать в себя шаг настройки клиентского сервиса. В некоторых вариантах осуществления изобретения оператор базового сервиса может выбирать конкретные настройки клиентского сервиса. Например, клиентский сервис может быть настроен статически путем задания идентификатора SUID (например, идентификатора клиента) в конфигурации и/или динамически путем вызова специального метода JS-API.
[102] Общий подход может включать в себя шаг инициирования авторизации. В некоторых вариантах осуществления изобретения клиентский сервис может вызывать метод вида authorize интерфейса JS-API базового сервиса. Базовый сервис получает идентификатор SUID (например, идентификатор клиента) и, возможно, второй идентификатор (идентификатор издателя) для формирования адреса redirect_uri на основе заранее заданных правил.
[103] Базовый сервис может обращаться к методу диспетчера учетных записей (AM, Account Manager) с идентификатором SUID и, возможно, со вторым идентификатором в качестве параметров. Можно сказать, что диспетчер AM представляет собой часть базового сервиса (например, суперприложения). Можно сказать, что диспетчер AM представляет собой часть второго сервиса. Диспетчер AM может представлять собой клиентскую библиотеку. Диспетчер AM может выполнять процесс авторизации (например, выбор учетной записи, вход по паролю, регистрацию и т.д.) и может запрашивать у пользователя разрешения, заданные в приложении OAuth клиентского сервиса (например, если пользователь не подтвердил их ранее). В случае успешного выполнения он может отправлять токен OAuth в качестве данных обратной связи (для запросов к интерфейсу API) и токен JWT (для получения информации о пользователе в автономном режиме).
[104] Общий подход может включать в себя шаг работы клиентского сервиса. Для получения информации о пользователе клиентский сервер может локально проверять токен JWT. В некоторых вариантах осуществления изобретения эту функцию может выполнять базовый сервис, который в таком случае может отправлять объект JSON с релевантными данными. Характер подлежащих передаче данных может, среди прочего, зависеть от набора областей действия приложения OAuth. В некоторых вариантах осуществления изобретения базовый сервис может использовать токен OAuth при взаимодействии с интерфейсами API других клиентских сервисов, если приложение OAuth имеет необходимые области действия. В дополнительных вариантах осуществления изобретения клиентский сервис может использовать токен JWT для авторизации в своей серверной части. Токен JWT может быть подписан с использованием секретного ключа приложения OAuth, который известен только соответствующей серверной части, которая таким образом может проверять аутентичность токена JWT, предоставленного пользовательской частью клиентского сервиса.
[105] Общий подход может включать в себя шаг выхода из системы. В некоторых вариантах осуществления изобретения клиентский сервис может вызывать метод вида «logout» базового сервиса. Базовый сервис может пересылать этот запрос методу диспетчера AM. Диспетчер AM может локально удалять сохраненные токены и в некоторых случаях аннулировать токены на сервере. Дополнительно или в качестве альтернативы пользователь может выходить из системы с помощью веб-интерфейса.
[106] В контексте настоящей технологии клиентский сервис может получать идентификатор USUID для локального сохранения после первого обращения к нему пользователя 170.
[107] В некоторых вариантах осуществления изобретения можно сказать, что пользователь 170 первоначально обращается к клиентскому сервису непосредственно через пользовательскую часть клиентского сервиса (например, с помощью приложения, выполняемого в пользовательском устройстве) и/или через браузерное приложение. Для лучшей иллюстрации этого можно предположить, что клиентский сервис является электронной платформой, а базовый сервис представляет собой встроенные функциональные возможности суперприложения электронной платформы. В этом примере первоначальное обращение к электронной платформе может быть выполнено непосредственно через специализированное приложение в пользовательском устройстве и/или через браузерное приложение. Возможный вариант выполнения прямого первоначального обращения к клиентскому сервису описан со ссылкой на фиг. 4.
[108] В других вариантах осуществления изобретения можно сказать, что пользователь 170 первоначально обращается к клиентскому сервису косвенно через базовый сервис. В этом примере первоначальное обращение к электронной платформе может быть выполнено пользователем, обращающимся к суперприложению, с использованием функций электронной платформы в суперприложении. Возможный вариант выполнения косвенного первоначального обращения к клиентскому сервису описан со ссылкой на фиг. 5.
Прямая первоначальная аутентификация
[109] В общем случае при первоначальном прямом обращении поток OAuth может быть использован для аутентификации пользователя, а затем второй сервис может формировать идентификатор USUID, который с использованием токена JWT отправляется серверной части первого сервиса для локального хранения. Предполагается, что при попытке пользователя обратиться к сервису последний может выполнять одну или несколько процедур аутентификации и авторизации, при которых пользователю может быть предложено предоставить информацию.
[110] В одном варианте осуществления изобретения пользователь, выполняющий попытку прямого первоначального обращения к сервису, может быть пользователем, добавляющим элемент в свою корзину на электронной платформе, доступ к которой осуществляется через браузерное приложение. На фиг. 4 представлен не имеющий ограничительного характера пример компьютерного способа, выполняемого при прямой первоначальной аутентификации пользователя 170.
[111] На шаге 451 пользователь 170 может выполнять попытку входа в систему с помощью пользовательской части 410 первого сервиса. На шаге 452 пользовательская часть 410 отправляет запрос авторизации пользовательской части 420 второго сервиса. Запрос авторизации может содержать идентификатор SUID (например, идентификатор клиента), связанный с первым сервисом, и информацию redirect_uri. На шагах 453 и 454 пользовательская часть 420 может обмениваться данными с серверной частью 430 второго сервиса. При необходимости пользовательская часть 420 может запрашивать подтверждение областей действия у пользователя 170 на шаге 455 и может получать подтверждение на шаге 456. Например, пользователю с помощью интерфейса (например, окна) может быть предложено выполнить подтверждение. На шаге 457 пользовательская часть 420 может отправлять запрос токена OAuth серверной части 430, которая формирует токен OAuth и отправляет его пользовательской части 420 на шаге 458. Пользовательская часть 420 может отправлять токен OAuth пользовательской части 410 на шаге 459. На шаге 460 пользовательская часть 410 может использовать токен OAuth при запросе информации от серверной части 430. После получения токена OAuth серверная часть 430 может формировать токен JWT с запрошенной информацией и отправлять его пользовательской части 410 на шаге 461. На шаге 462 пользовательская часть 410 может отправлять токен JWT, содержащий информацию, и токен OAuth серверной части 440 первого сервиса. На шаге 463 серверная часть 440 может проверять достоверность токена JWT (например, проверять сигнатуру, которую содержит токен JWT). На шаге 464 серверная часть 440 может сохранять идентификатор USUID и пользовательскую информацию (например, имя пользователя), содержащиеся в полезных данных токена JWT. В результате идентификатор USUID и пользовательская информация, связанные с пользователем 170, могут локально храниться серверной частью 440 первого сервиса. В одном варианте осуществления изобретения пользовательская информация может представлять собой имя пользователя. На шаге 465 серверная часть 440 может отправлять пользовательскую информацию пользовательской части 410. Можно сказать, что пользователь 170 аутентифицируется пользовательской частью 410, которая может использовать пользовательскую информацию для отображения информации пользователю 170. Например, имя пользователя может отображаться с помощью интерфейса GUI.
[112] Предполагается, что серверная часть первого сервиса может в дополнение к идентификатору USUID сохранять пользовательскую информацию (например, имя пользователя) для использования в будущем, когда пользователь 170 должен быть аутентифицирован при следующей попытке обращения к первому сервису.
Косвенная первоначальная аутентификация
[113] В общем случае при первоначальном косвенном обращении для аутентификации пользователя может быть использован поток OAuth, а затем второй сервис может формировать идентификатор USUID, который с использованием токена JWT отправляется серверной части первого сервиса для локального хранения. Предполагается, что при попытке пользователя обратиться к сервису последний может выполнять одну или несколько процедур аутентификации и авторизации, при которых пользователю может быть предложено предоставить информацию.
[114] В одном варианте осуществления изобретения пользователь, выполняющий попытку косвенного первоначального обращения к сервису, может быть пользователем, выполняющим суперприложение, и может осуществлять доступ к одной или нескольким функциям сервиса электронной платформы в суперприложении. На фиг. 5 представлен не имеющий ограничительного характера пример компьютерного способа, выполняемого при косвенной первоначальной аутентификации пользователя 170.
[115] Пользователь 170 может выполнять попытку входа в систему с помощью первого сервиса внутри второго сервиса. На шаге 551 пользователь 170 выполняет попытку входа в систему, а на шаге 552 пользовательская часть 510 первого сервиса отправляет запрос авторизации пользовательской части 520 второго сервиса, где пользователь пытается войти в систему. На шаге 553 пользовательская часть 520 отправляет запрос авторизации диспетчеру 599 AM. Запрос авторизации может содержать идентификатор SUID (например, идентификатор клиента), связанный с первым сервисом, и информацию redirect_uri. На шагах 554 и 555 диспетчер 599 AM может обмениваться данными с серверной частью 530 второго сервиса. При необходимости диспетчер 599 AM запрашивает подтверждение областей действия у пользователя 170 на шаге 556 и может получать подтверждение на шаге 557. На шаге 558 диспетчер 599 AM может отправлять запрос токена OAuth серверной части 530, которая формирует токен OAuth и отправляет его диспетчеру 599 AM на шаге 559. На шаге 560 диспетчер 599 AM может использовать токен OAuth при запросе информации от серверной части 530. После получения токена OAuth серверная часть 530 может формировать токен JWT с запрошенной информацией и отправлять его диспетчеру 599 AM на шаге 561. На шаге 562 диспетчер 599 AM отправляет токен JWT, содержащий информацию, и токен OAuth пользовательской части 520 второго сервиса. На шаге 563 пользовательская часть 520 может отправлять, например, пользовательской части 510 токен OAuth, токен JWT и пользовательскую информацию в одном запросе. На шаге 564 пользовательская часть 510 может отправлять токен JWT серверной части 540 первого сервиса. На шаге 565 серверная часть 540 может проверять достоверность токена JWT (например, проверять сигнатуру, содержащуюся в токене JWT). На шаге 566 серверная часть 440 может сохранять идентификатор USUID и пользовательскую информацию (например, имя пользователя), содержащиеся в полезных данных токена JWT. В результате идентификатор USUID и пользовательская информация, связанные с пользователем 170, могут локально храниться серверной частью 540 первого сервиса. На шаге 567 серверная часть 540 может отправлять пользовательскую информацию пользовательской части 510.
[116] Независимо от выполнения первого обращения к первому сервису согласно варианту осуществления изобретения, представленному на фиг. 4, или согласно варианту осуществления изобретения, представленному на на фиг. 5, серверная часть первого сервиса локально сохраняет идентификатор USUID, связанный с парой «пользователь - первый сервис» и пользовательскую информацию конкретного пользователя.
Обзор последующей аутентификации
[117] На фиг. 6 представлено описание потока для последующего обращения пользователя 170 к первому сервису. Предполагается, что при последующем обращении к первому сервису могут выполняться одна или несколько процедур аутентификации и одна или несколько процедур авторизации.
[118] На шаге 601 пользователь 170 выполняет попытку обращения к первому сервису 610. На шаге 602 первый сервис 610 отправляет запрос идентификатора USUID второму сервису 620. В некоторых вариантах осуществления изобретения, если пользователь 170 в текущий момент времени не аутентифицирован вторым сервисом 620, то второй сервис 620 может запрашивать у пользователя 170 учетные данные на шаге 604. В ответ на запрос предоставления пользовательских учетных данных пользователь 170 может предоставлять пользовательские учетные данные второму сервису 620 на шаге 605. В других вариантах осуществления изобретения, когда пользователь 170 аутентифицирован вторым сервисом 620, второй сервис 620 способен выполнять одну или несколько компьютерных процедур 640 для формирования идентификатора USUID. На шаге 603 второй сервис 620 отправляет идентификатор USUID первому сервису 610.
[119] В некоторых вариантах осуществления настоящей технологии второй сервис 620 может формировать токен 660 и отправлять его при выполнении шага 603. В некоторых вариантах осуществления изобретения токен 660 может представлять собой токен JWT, содержащий заголовок 662, полезные данные 664 и сигнатуру 666. Например, полезные данные 664 могут содержать идентификатор USUID и, возможно, отметку времени.
[120] В дополнительных вариантах осуществления изобретения, получив идентификатор USUID от второго сервиса 620, первый сервис 610 способен выполнять компьютерные процедуры 630 для подтверждения получения идентификатора USUID от заслуживающего доверия сервиса и для проверки идентификатора USUID при аутентификации пользователя 170. Например, первый сервис 610 может подтверждать сигнатуру 666 токена 660 с использованием секретного ключа. В этом примере первый сервис может формировать сигнатуру подтверждения с использованием секретного ключа и информации из полезных данных 664 и сравнивать ее с сигнатурой 666 из токена 660. После подтверждения первый сервис 610 может сравнивать идентификатор USUID из полезных данных 664 токена 660 с идентификатором USUID, локально сохраненным первым сервисом 610 при первоначальном обращении к первому сервису 610. Пользователь 170 аутентифицируется в случае совпадения. В противном случае пользователь 170 может использовать первый сервис в статусе «anonymous» (анонимный).
Подробное описание последующей аутентификации
[121] На фиг. 7 представлен компьютерный способ, выполняемый при последующем обращении к клиентскому сервису согласно конкретному варианту реализации настоящей технологии. Предполагается, что один или несколько шагов способа, представленного на фиг. 7, могут соответствовать одному или нескольким шагам способа, представленного на фиг. 6.
[122] На шаге 751 возможный пользователь может выполнять попытку использования по меньшей мере некоторой функции первого сервиса через пользовательскую часть 710 первого сервиса. Например, возможный пользователь может попытаться добавить элемент в корзину сервиса электронной платформы. На шаге 752 пользовательская часть 710 может запрашивать идентификатор USUID у сочетания 720 пользовательской части и диспетчера AM второго сервиса. В тех вариантах осуществления изобретения, где возможный пользователь в текущий момент времени не аутентифицирован вторым сервисом (и, возможно, не авторизован в текущий момент времени), могут быть выполнены шаги 753 и 754, на которых может запрашиваться аутентификация возможного пользователя и серверная часть 730 может получать учетное имя и пароль для этой цели. В ответ серверная часть 730 может формировать токен OAuth (x-токен) и отправлять его сочетанию 720 пользовательской части и диспетчера AM на шаге 755. В тех вариантах осуществления изобретения, где пользователь 170 в текущий момент времени аутентифицирован вторым сервисом (и, возможно, авторизован в текущий момент времени), сочетание 720 пользовательской части и диспетчера AM уже имеет токен OAuth и на шаге 756 может отправлять запрос на получение обезличенной пользовательской информации, содержащий указание на токен OAuth и идентификатор SUID (например, идентификатор клиента), связанные с первым сервисом. Серверная часть 730 может формировать токен JWT, содержащий идентификатор USUID, и отправлять его сочетанию 720 пользовательской части и диспетчера AM на шаге 757. Токен JWT отправляется пользовательской части 710 на шаге 758 и серверной части 740 первого сервиса на шаге 759. На шаге 760 серверная часть 740 может проверять достоверность токена JWT (например, проверить сигнатуру, содержащуюся в токене JWT). В некоторых случаях серверная часть 740 также может проверять достоверность токена JWT и/или вложенного идентификатора USUID на основе отметки времени. На шаге 761 серверная часть 740 может сравнивать идентификатор USUID, полученный в токене JWT, с идентификатором USUID, который был локально сохранен при предыдущем обращении. Предполагается, что серверная часть 740 может выполнять операцию поиска среди локально сохраненных идентификаторов USUID. В случае совпадения пользовательская информация о пользователе 170, связанная с совпадающим идентификатором USUID, предоставляется пользовательской части 710 на шаге 762. В случае несовпадения на шаге 762 пользовательской части 710 предоставляется информация, указывающая на статус «anonymous» возможного пользователя.
[123] В некоторых вариантах осуществления изобретения предполагается, что второй сервис и диспетчер AM входят в состав одного элемента (например, второго сервиса). Можно сказать, что диспетчер AM может входить в состав клиентской части второго сервиса.
[124] В некоторых вариантах осуществления настоящей технологии реализован способ 800 аутентификации возможного пользователя. Ниже со ссылкой на фиг. 8 более подробно описаны различные шаги способа 800.
Шаг 802: получение в данный момент времени вторым сервисом от первого сервиса запроса возможного идентификатора USUID, связанного с возможным пользователем, в текущий момент времени выполняющим попытку обращения к первому сервису.
[125] Способ 800 начинается с шага 802, на котором второй сервис в данный момент времени получает от первого сервиса запрос возможного идентификатора USUID, связанного с возможным пользователем, в текущий момент времени выполняющим попытку обращения к первому сервису.
[126] Следует отметить, что первый сервис связан с идентификатором SUID. Идентификатор SUID уникален для первого сервиса (и/или для издателя первого сервиса). Возможный идентификатор USUID уникален для пары, состоящей из возможного пользователя и первого сервиса (и/или издателя первого сервиса).
Шаг 804: формирование вторым сервисом в данный момент времени возможного идентификатора USUID, если пользователь ранее был аутентифицирован во втором сервисе.
[127] Способ 800 продолжается на шаге 804, на котором второй сервис в данный момент времени формирует запрошенный возможный идентификатор USUID. Следует отметить, что возможный идентификатор USUID может быть сформирован вторым сервисом, если возможный пользователь в текущий момент времени аутентифицирован и/или был ранее аутентифицирован во втором сервисе. В некоторых вариантах осуществления изобретения, если возможный пользователь в текущий момент времени не аутентифицирован и/или не был ранее аутентифицирован во втором сервисе, то возможному пользователю может быть предложено представить пользовательские учетные данные.
[128] Второй сервис формирует идентификатор USUID путем шифрования (а) информации о пользователе для возможного пользователя, аутентифицирующей возможного пользователя во втором сервисе, и (б) идентификатора SUID. В некоторых вариантах осуществления изобретения идентификатор USUID может быть сформирован путем шифрования идентификатора UUID, уникального для возможного пользователя и аутентифицирующего возможного пользователя во втором сервисе, и идентификатора SUID первого сервиса. В дополнительных вариантах осуществления изобретения шифрование может выполняться с применением алгоритма шифрования, использующего секретный ключ и идентификатор SUID в качестве вектора инициализации для шифрования пользовательской информации.
[129] В одном варианте осуществления изобретения процесс шифрования, выполняемый вторым сервисом, может включать в себя шифрование пользовательской информации с использованием первого секретного ключа и идентификатора SUID в качестве вектора инициализации для алгоритма GCM.
Шаг 806: получение в данный момент времени первым сервисом от второго сервиса токена, указывающего на возможный идентификатор USUID и сигнатуру.
[130] Способ 800 продолжается на шаге 806, на котором первый сервис в данный момент времени получает от второго сервиса токен, указывающий на возможный идентификатор USUID и сигнатуру. Предполагается, что второй сервис может формировать сигнатуру с использованием второго секретного ключа и алгоритма HMAC.
[131] В некоторых вариантах осуществления изобретения полученный токен может представлять собой токен JWT, содержащий область заголовка, область полезных данных и область сигнатуры. Идентификатор USUID может быть вставлен в область полезных данных, а сигнатура вставляется в область сигнатуры. В некоторых случаях в область полезных данных может быть вставлено значение отметки времени, указывающее на период действия возможного идентификатора USUID и/или токена JWT.
Шаг 808: сравнение в данный момент времени возможного идентификатора USUID, полученного в данный момент времени, с целевым идентификатором USUID после подтверждения достоверности сигнатуры.
[132] Способ 800 продолжается на шаге 808, на котором первый сервис в ответ на подтверждение достоверности сигнатуры сравнивает в данный момент времени возможный идентификатор USUID с целевым идентификатором USUID, связанным с пользователем 170.
[133] В некоторых вариантах осуществления изобретения первый сервис способен проверять сигнатуру из токена путем формирования сигнатуры подтверждения с использованием секретного ключа и информации из полезных данных. Если сигнатура подтверждения совпадает с сигнатурой из токена, то подлинность сигнатуры подтверждается. В других вариантах осуществления изобретения первый сервис может выполнять функцию поиска для определения совпадения одного из множества локально сохраненных идентификаторов USUID с возможным идентификатором USUID, полученным с помощью токена. Следует отметить, что первый сервис может локально хранить идентификаторы USUID для пользователей, ранее обращавшихся к первому сервису (прямо и/или косвенно).
Шаг 810: аутентификация в данный момент времени первым сервисом возможного пользователя как целевого пользователя без запроса у возможного пользователя дополнительной информации, если возможный идентификатор USUID совпадает с целевым идентификатором USUID.
[134] Способ 800 продолжается на шаге 810, на котором первый сервис в данный момент времени аутентифицирует возможного пользователя как целевого пользователя без запроса у возможного пользователя дополнительной информации, если возможный идентификатор USUID совпадает с целевым идентификатором USUID.
[135] Например, можно предположить, что возможный идентификатор USUID, полученный с помощью токена, совпадает с локально сохраненным идентификатором USUID, связанным с пользовательской информацией пользователя 170. В этом случае первый сервис аутентифицирует возможного пользователя как пользователя 170 и может использовать пользовательскую информацию, связанную с совпадающим идентификатором USUID, для отображения информации возможному пользователю на пользовательском устройстве.
[136] Несмотря на то, что описанные выше варианты реализации приведены со ссылкой на конкретные шаги, выполняемые в определенном порядке, должно быть понятно, что эти шаги могут быть объединены, разделены или что их порядок может быть изменен без выхода за границы настоящей технологии. Соответственно, порядок и группировка шагов не носят ограничительного характера для настоящей технологии.
[137] Специалисту в данной области техники должно быть понятно, что когда в настоящем описании упоминается «получение данных» от пользователя, электронное устройство, получающее данные от пользователя, может получать электронный (или иной) сигнал от пользователя. Специалисту в данной области техники также должно быть понятно, что отображение данных пользователю с помощью пользовательского графического интерфейса (такого как экран электронного устройства и т.п.) может включать в себя передачу пользовательскому графическому интерфейсу сигнала, содержащего данные, которыми можно манипулировать и по меньшей мере часть которых может быть отображена пользователю с использованием пользовательского графического интерфейса.
[138] Некоторые из этих шагов и передаваемых или принимаемых сигналов хорошо известны в данной области техники и по этой причине опущены в некоторых частях описания для упрощения. Сигналы могут передаваться или приниматься с использованием оптических средств (таких как волоконно-оптическое соединение), электронных средств (таких как проводное или беспроводное соединение) и механических средств (например, основанных на давлении, температуре или любом другом подходящем физическом параметре).
[139] Для специалиста в данной области могут быть очевидными возможные изменения и усовершенствования описанных выше вариантов осуществления настоящей технологии. Предшествующее описание приведено лишь в иллюстративных целях, а не для ограничения объема изобретения. Объем охраны настоящей технологии определяется исключительно объемом приложенной формулы изобретения.
название | год | авторы | номер документа |
---|---|---|---|
Способ и система для динамической глобальной идентификации окружения пользователя | 2020 |
|
RU2751436C1 |
СПОСОБ АУТЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПЕРИФЕРИЙНОГО УСТРОЙСТВА, ПЕРИФЕРИЙНОЕ УСТРОЙСТВО И СИСТЕМА ДЛЯ АУТЕНТИФИКАЦИИ ПОЛЬЗОВАТЕЛЯ ПЕРИФЕРИЙНОГО УСТРОЙСТВА | 2014 |
|
RU2580400C2 |
СПОСОБ И УСТРОЙСТВО ДЛЯ ПРЕДОСТАВЛЕНИЯ СЛУЖБЫ, ОСНОВАННОЙ НА МЕСТОПОЛОЖЕНИИ | 2009 |
|
RU2470485C2 |
Способ идентификации онлайн-пользователя и его устройства в приложении | 2020 |
|
RU2736166C1 |
Способ идентификации онлайн-пользователя и его устройства | 2020 |
|
RU2740308C1 |
Способ идентификации онлайн-пользователя и его устройства | 2021 |
|
RU2780029C1 |
УПРАВЛЕНИЕ КЭШЕМ ДОСТУПНЫХ ПО РАЗРЕШЕНИЮ ДАННЫХ | 2010 |
|
RU2577191C2 |
Способ проведения платежа онлайн-пользователем при наличии информации об идентификаторе пользователя | 2020 |
|
RU2743147C1 |
СИСТЕМЫ И СПОСОБЫ ДЛЯ КРИПТОГРАФИЧЕСКОЙ БЕЗОПАСНОСТИ КАК СЕРВИС | 2014 |
|
RU2630751C2 |
СПОСОБ И СИСТЕМА ДЛЯ ОБНАРУЖЕНИЯ МОШЕННИЧЕСКОГО ДОСТУПА К ВЕБ-РЕСУРСУ | 2019 |
|
RU2781477C2 |
Изобретение относится к способу и системе для аутентификации возможного пользователя. Техническим результатом является обеспечение защиты регистрационных данных пользователя за счет аутентификации пользователя в клиентском стороннем сервисе через базовый сервис без запроса у пользователя дополнительной информации для аутентификации. Способ аутентификации возможного пользователя включает в себя получение вторым сервисом от первого сервиса запроса возможного уникального идентификатора «пользователь-сервис» (USUID), связанного с возможным пользователем. Возможный идентификатор USUID уникален для пары «возможный пользователь - первый сервис». Способ включает в себя формирование вторым сервисом возможного идентификатора USUID и отправку указывающего на него токена. В случае совпадения возможного идентификатора USUID с целевым идентификатором USUID первый сервис аутентифицирует возможного пользователя как целевого пользователя без запроса у возможного пользователя дополнительной информации. 2 н. и 18 з.п. ф-лы, 8 ил.
1. Способ аутентификации возможного пользователя, связанного с первым сервисом и со вторым сервисом, выполняемыми на соответствующих серверах серверной части, при этом электронное устройство возможного пользователя способно связываться с соответствующими серверами серверной части с использованием сети связи, а способ включает в себя в данный момент времени:
- получение вторым сервисом от первого сервиса запроса возможного уникального идентификатора «пользователь-сервис» (USUID), связанного с возможным пользователем, в текущий момент времени выполняющим попытку обращения к первому сервису, связанному с уникальным идентификатором сервиса (SUID), при этом возможный идентификатор USUID уникален для пары «возможный пользователь - первый сервис», а идентификатор SUID уникален для первого сервиса;
- формирование вторым сервисом возможного идентификатора USUID путем шифрования (а) информации о пользователе для возможного пользователя, аутентифицирующей возможного пользователя во втором сервисе, и (б) идентификатора SUID, если пользователь ранее был аутентифицирован во втором сервисе;
- получение первым сервисом от второго сервиса токена, указывающего на возможный идентификатор USUID и сигнатуру;
- сравнение возможного идентификатора USUID, полученного в данный момент времени, с целевым идентификатором USUID, связанным с целевым пользователем первого сервиса и полученным в другой момент времени, предшествующий данному моменту времени, после подтверждения достоверности сигнатуры; и
- аутентификацию первым сервисом возможного пользователя как целевого пользователя без запроса у возможного пользователя дополнительной информации, если возможный идентификатор USUID совпадает с целевым идентификатором USUID.
2. Способ по п. 1, отличающийся тем, что целевой пользователь был аутентифицирован первым сервисом в другой момент времени, а целевой идентификатор USUID был сохранен первым сервисом при аутентификации в другой момент времени.
3. Способ по п. 2, отличающийся тем, что целевой пользователь был непосредственно аутентифицирован первым сервисом.
4. Способ по п. 2, отличающийся тем, что целевой пользователь был косвенно аутентифицирован первым сервисом во втором сервисе.
5. Способ по п. 1, отличающийся тем, что шифрование включает в себя шифрование вторым сервисом информации о пользователе с использованием первого секретного ключа и идентификатора SUID в качестве вектора инициализации для алгоритма «счетчик с аутентификацией Галуа» (GCM).
6. Способ по п. 1, отличающийся тем, что он дополнительно включает в себя формирование вторым сервисом сигнатуры с использованием второго секретного ключа и алгоритма «хеш-код аутентификации сообщений» (HMAC).
7. Способ по п. 1, отличающийся тем, что токен представляет собой веб-токен JSON (JWT), содержащий область заголовка, область полезных данных и область сигнатуры, при этом идентификатор USUID вставляется в область полезных данных, а сигнатура вставляется в область сигнатуры.
8. Способ по п. 7, отличающийся тем, что в область полезных данных дополнительно вставляется значение отметки времени, при этом отметка времени указывает на период действия идентификатора USUID.
9. Способ по п. 1, отличающийся тем, что первый сервис и второй сервис имеют одного и того же оператора.
10. Способ по п. 1, отличающийся тем, что оператор первого сервиса отличается от оператора второго сервиса.
11. Система для аутентификации возможного пользователя, связанного с первым сервисом и со вторым сервисом, выполняемыми на соответствующих серверах серверной части, при этом электронное устройство возможного пользователя способно связываться с соответствующими серверами серверной части с использованием сети связи, а система выполнена с возможностью в данный момент времени:
- получения вторым сервисом от первого сервиса запроса возможного идентификатора USUID, связанного с возможным пользователем, в текущий момент времени выполняющим попытку обращения к первому сервису, связанному с идентификатором SUID, при этом возможный идентификатор USUID уникален для пары «возможный пользователь - первый сервис», а идентификатор SUID уникален для первого сервиса;
- формирования вторым сервисом возможного идентификатора USUID путем шифрования (а) информации о пользователе для возможного пользователя, аутентифицирующей возможного пользователя во втором сервисе, и (б) идентификатора SUID, если пользователь ранее был аутентифицирован во втором сервисе;
- получения первым сервисом от второго сервиса токена, указывающего на возможный идентификатор USUID и сигнатуру;
- сравнения возможного идентификатора USUID, полученного в данный момент времени, с целевым идентификатором USUID, связанным с целевым пользователем первого сервиса и полученным в другой момент времени, предшествующий данному моменту времени, после подтверждения достоверности сигнатуры; и
- аутентификации первым сервисом возможного пользователя как целевого пользователя без запроса у возможного пользователя дополнительной информации, если возможный идентификатор USUID совпадает с целевым идентификатором USUID.
12. Система по п. 11, отличающаяся тем, что целевой пользователь был аутентифицирован первым сервисом в другой момент времени, а целевой идентификатор USUID был сохранен первым сервисом при аутентификации в другой момент времени.
13. Система по п. 12, отличающаяся тем, что целевой пользователь был непосредственно аутентифицирован первым сервисом.
14. Система по п. 12, отличающая тем, что целевой пользователь был косвенно аутентифицирован первым сервисом во втором сервисе.
15. Система по п. 11, отличающаяся тем, что возможность шифрования включает в себя возможность шифрования вторым сервисом информации о пользователе с использованием первого секретного ключа и идентификатора SUID в качестве вектора инициализации для алгоритма GCM.
16. Система по п. 11, отличающаяся тем, что она дополнительно выполнена с возможностью формирования вторым сервисом сигнатуры с использованием второго секретного ключа и алгоритма HMAC.
17. Система по п. 11, отличающаяся тем, что токен представляет собой токен JWT, содержащий область заголовка, область полезных данных и область сигнатуры, при этом идентификатор USUID вставлен в область полезных данных, а сигнатура вставлена в область сигнатуры.
18. Система по п. 17, отличающаяся тем, что в область полезных данных дополнительно вставлено значение отметки времени, при этом отметка времени указывает на период действия идентификатора USUID.
19. Система по п. 11, отличающаяся тем, что первый сервис и второй сервис имеют одного и того же оператора.
20. Система по п. 11, отличающаяся тем, что оператор первого сервиса отличается от оператора второго сервиса.
Способ приготовления лака | 1924 |
|
SU2011A1 |
US 11064047 B1, 13.07.2021 | |||
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса | 1924 |
|
SU2015A1 |
Способ идентификации онлайн-пользователя и его устройства | 2020 |
|
RU2740308C1 |
СИСТЕМА И СПОСОБ ПРЕДОСТАВЛЕНИЯ ДОСТУПА К ЗАЩИЩЕННЫМ УСЛУГАМ С ОДНОКРАТНЫМ ВВОДОМ ПАРОЛЯ | 2003 |
|
RU2308755C2 |
Способ и система для авторизации пользователя для выполнения действия в электронном сервисе | 2017 |
|
RU2693330C2 |
Авторы
Даты
2023-10-18—Публикация
2022-03-15—Подача