Способ и система для авторизации пользователя для выполнения действия в электронном сервисе
METHOD AND SYSTEM FOR AUTHORIZING A USER TO PERFORM AN ACTION IN AN ELECTRONIC SERVICE

ОБЛАСТЬ ТЕХНИКИ
[001] Настоящая технология относится к получению управления электронными сервисами в целом, и, конкретнее, к способу и системе для авторизации пользователя-субъекта для выполнения действия в электронном сервисе.
УРОВЕНЬ ТЕХНИКИ
[002] Облачная платформа предоставляют вычисления как услугу одному или нескольким клиентам. Например, облачная платформа может предоставлять инфраструктуру (например, хранилище), предоставлять программное обеспечение или предоставлять клиентам доступ к конкретным вычислительным платформам. Облачная платформа не просто соединяет различные компоненты как обычная сеть, но вместо этого предоставляет вычислительные услуги и инфраструктуры, которые не зависят от устройств, используемых клиентами (или пользователями). Следовательно, при использовании облачных платформ возможно делегировать настройку и поддержку вычислительных систем внешнему поставщику и, тем самым, существенно повысить эффективность, емкость или гибкость инфраструктуры IT.
[003] Поставщики услуг, например, Google™, Yahoo™, and Yandex™, обычно предоставляют пользователям множество сервисов: среди прочего, облачный сервис, реклама, картография, календари, перевод, электронная почта, социальная сеть и облачное пространство для хранения. Пользователь может действовать в различных контекстах, в каждом из которых пользователь выполняет различные роли и обладает разной ответственностью. Эти роли могут относиться к профессиональной и персональной деятельности пользователя, например, работник, подрядчик, клиент, поставщик или, например, член семьи. В рамках этих различных контекстов пользователь может использовать различные клиентские устройства (например, настольный компьютер, ноутбук, персональный компьютер, мобильный телефон, планшет и другое) или клиентские пользователя, в которых применяются возможности удаленного управления (например, приложения, размещенные на веб-сайте или на виртуальной машине, которая располагается в дата-центре). Различные вычислительные среды могут быть установлены на клиентских устройствах с возможностью локальной обработки (например, различные операционные системы, виртуальное программное обеспечение, веб-приложения, родные приложения, контейнеры, BIOS/API и так далее) для взаимодействия с облачной платформой.
[004] Пользователи, связанные с облачным сервисом, могут в общем случае хотеть выполнить действия над файлами, процессами и другими программами с помощью своих электронных устройств. Тем не менее, пользователю может быть недоступно выполнение процесса на запрещенном ресурсе облачного сервиса или же модификация или удаление важных файлов. Облачный сервис может быть выполнен с возможностью управлять доступом различными способами.
[005] Американская патентная заявка №9,553,855 В2, озаглавленная "Сохранение ключа для зашифрованного файла в памяти ядра" и выданная 24 января 2017 компании "Red Hat Inc", описывает сохранение ключа для зашифрованного файла в памяти ядра. Данные аутентификации могут быть получены, и учетные данные из данных аутентификации могут быть сохранены в файле. Файл может быть зашифрован, и может быть создан ключ к зашифрованному файлу. Зашифрованный файл может храниться в пользовательском пространстве, а ключ может быть сохранен в пространстве ядра. Ключ может быть извлечен из пространства ядра и применен к зашифрованному файлу в пользовательском пространстве для дешифровки зашифрованного файла и последующего доступа к учетным данным, хранящимся в зашифрованном файле.
[006] Американская патентная заявка №7,530,099 В2, озаглавленная "Способ и система для механизма единого входа при агрегации поставщиков сервисов приложений (ASP)" и выданная 5 мая 2005 года компании "IBM", которая описывает методологию предоставления механизма единого входа в сервисе агрегатора ASP. Токен агрегатора создается сервисом агрегатора ASP и передается клиентскому устройству после того как его пользователь был успешно авторизован с помощью процедуры единого входа, предоставляемой сервисом агрегатора ASP. Токен агрегатора далее сопровождает любой запрос от клиента на агрегированные приложения в инфраструктуре сервиса агрегатора ASP. Токен агрегатора включает в себя указание на адрес или идентификатор ресурса в сервисе агрегатора ASP, на который клиента/пользователя могут перенаправлять, когда клиенту/пользователю может быть необходимо авторизоваться с помощью сервиса агрегатора ASP. Другими словами, адрес/идентификатор связан с ресурсом входа в систему; когда запрос от клиента передается на этот адрес, сервис агрегатора ASP отвечает проверкой авторизации, при которой пользователь вынужден выполнить операцию единого входа.
[007] Американская патентная заявка №8,225,385 В2, озаглавленная "Транзакции с множеством токенов безопасности" и выданная 17 июля 2012 компании "Microsoft", описывает варианты осуществления транзакций с множеством токенов безопасности. Одна или несколько описанных методик может быть использована для предоставления, в одном запросе и ответе, токен авторизации и множество токенов безопасности для подтверждения личности соответствующего поставщика услуг РАСКРЫТИЕ ТЕХНОЛОГИИ
[008] Разработчики настоящего технического решения рассматривали по меньшей мере одну проблему, соответствующую известному уровню техники.
[009] Конкретнее, разработчики настоящей технологии оценили, что когда управление доступом выполняется на сервере, технологии существующего уровня техники часто используют механизм управления доступом, что может быть ограничением, если пользователи не подходят под заранее определенную роль, определенную системным администратором.
[0010] Альтернативный механизм управления доступом на основе ролей может быть более гибким, поскольку представляет собой более тонкий подход, который позволяет управлять доступом на основе конкретных правил, которые могут варьироваться от пользователя к пользователю. Тем не менее, управление доступом на основе правил чаще всего происходит медленней, поскольку серверу необходимо компилировать конкретный набор правил каждый раз, когда пользователь обращается к серверу.
[0011] Таким образом, варианты осуществления настоящей технологии направлены на способ и систему для управления авторизацией на электронном сервисе.
[0012] Первым объектом настоящей технологии является способ авторизации пользователя-субъекта для выполнения действия в электронном сервисе, причем пользователь-субъект связан по меньшей мере с одним клиентским устройством, и пользователь-субъект связан с электронным сервисом, причем электронный сервис выполняется на сервере, по меньшей мере одно клиентское устройство соединено с сервером с помощью сети передачи данных, способ включает в себя: получение сервером по меньшей мере от одного клиентского устройства, запроса на доступ к электронному сервису, причем запрос включает в себя указание на пользователя-субъекта, на объект и на действие, которое пользователь-субъект желает выполнить над объектом в электронном сервисе, на основе по меньшей мере одного указания на пользователь-субъект и объект, извлечение сервером, набора заранее определенных правил, связанных по меньшей мере с одним пользователем-субъектом и объектом, из множества заранее определенных правил, и каждое заранее определенное правило было закодировано и сохранено сервером в виде соответствующей части байт-кода, причем заранее определенные правила были предварительно скомпилированы в части байт-кода, выполнение сервером набора заранее определенных правил, причем набор заранее определенных правил включает в себя по меньшей мере одно из: первое правило для проверки субъекта, второе правило для проверки объекта, и третье правило для проверки действия, которое хочет выполнить пользователь-субъект над объектом, анализ результата, полученного при выполнении каждого правила из набора заранее определенных правил, ив ответ на то, что результат указывает на позитивный результат, авторизация субъекта на выполнение действия над объектом.
[0013] В некоторых вариантах осуществления технологии, набор заранее определенных правил извлекается из базы данных сопоставления правил, причем база данных сопоставления правил сопоставляет каждого из пользователей-субъектов и каждый из объектов с соответствующим правилом заранее определенных правил.
[0014] В некоторых вариантах осуществления технологии, каждое правило из подмножества из набора правил заранее определенных правил соответствует соответствующему действию, которое предназначено для выполнения конкретным пользователем на соответствующем объекте.
[0015] В некоторых вариантах осуществления технологии, заранее определенные правила были далее заранее скомпилированы в машинный код, и множество заранее определенных правил хранится в виде машинного кода.
[0016] В некоторых вариантах осуществления технологии, заранее определенные правила выполняются независимо друг от друга сервером.
[0017] В некоторых вариантах осуществления технологии, заранее определенные правила выполняются параллельно сервером.
[0018] В некоторых вариантах осуществления технологии, заранее определенные правила выполняются параллельно множеством процессоров сервера.
[0019] В некоторых вариантах осуществления технологии, пользователь-субъект представляет собой одно из: пользователя, группу пользователей и процесс.
[0020] В некоторых вариантах осуществления технологии, объект представляет собой одно из: файл, тип файла, папку, процесс и программу.
[0021] В некоторых вариантах осуществления технологии, действие представляет собой одно из: чтение, запись, добавление, выполнение, удаление, создание и поиск.
[0022] В некоторых вариантах осуществления технологии, электронный сервис представляет собой облачный сервис.
[0023] В некоторых вариантах осуществления технологии, способ выполняется на уровне ядра сервера.
[0024] В некоторых вариантах осуществления технологии, способ выполняется на виртуальной машине сервера.
[0025] В некоторых вариантах осуществления технологии, анализ результата, полученного при выполнении набора заранее определенных правил, включает в себя определение данного результата данного заранее определенного правила может быть положительным, отрицательным и отрицательным по умолчанию.
[0026] В некоторых вариантах осуществления технологии, результат считается указывающим на позитивный результат в ответ на то, что совокупность данных результатов набора заранее определенных правил не приводит к отрицательному результату.
[0027] В некоторых вариантах осуществления технологии, результат считается указывающим на позитивный результат в ответ на то, что совокупность данных результатов набора заранее определенных правил приводит либо к положительному, либо к негативному результату по умолчанию.
[0028] Вторым объектом настоящей технологии является система авторизации пользователя-субъекта для выполнения действия в электронном сервисе, причем пользователь-субъект связан по меньшей мере с одним клиентским устройством, и пользователь-субъект связан с электронным сервисом, причем по меньшей мере одно клиентское устройство соединено с системой с помощью сети передачи данных, система включает в себя: по меньшей мере один процессор; постоянный машиночитаемый носитель компьютерной информации, содержащий инструкции; по меньшей мере один процессор, при выполнении инструкций, настраиваемый на возможность осуществить: получение по меньшей мере от одного клиентского устройства, запроса на доступ к электронному сервису, причем запрос включает в себя указание на пользователя-субъекта, на объект и на действие, которое пользователь-субъект желает выполнить над объектом в электронном сервисе; на основе по меньшей мере одного указания на пользователь-субъект и объект, извлечение набора заранее определенных правил, связанных по меньшей мере с одним пользователем-субъектом и объектом из множества заранее определенных правил, и каждое заранее определенное правило было закодировано и сохранено в виде соответствующей части байт-кода, причем заранее определенные правила были предварительно скомпилированы в части байт-кода выполнение набора заранее определенных правил, причем набор заранее определенных правил включает в себя по меньшей мере одно из: первое правило для проверки субъекта, второе правило для проверки объекта, и третье правило для проверки действия, которое хочет выполнить пользователь-субъект над объектом; анализ результата, полученного при выполнении каждого правила из набора заранее определенных правил; и в ответ на то, что результат указывает на позитивный результат, авторизацию субъекта выполнить действие над объектом.
[0029] В некоторых вариантах осуществления технологии, набор заранее определенных правил извлекается из базы данных сопоставления правил, причем база данных сопоставления правил сопоставляет каждого из пользователей-субъектов и каждый из объектов с соответствующим правилом заранее определенных правил.
[0030] В некоторых вариантах осуществления технологии, каждое правило из подмножества из набора правил заранее определенных правил соответствует соответствующему действию, которое предназначено для выполнения конкретным пользователем на соответствующем объекте.
[0031] В некоторых вариантах осуществления технологии, заранее определенные правила были далее заранее скомпилированы в машинный код, и множество заранее определенных правил хранится в виде машинного кода.
[0032] В некоторых вариантах осуществления технологии, заранее определенные правила выполняются независимо друг от друга по меньшей мере процессором.
[0033] В некоторых вариантах осуществления технологии, заранее определенные правила выполняются параллельно по меньшей мере процессором.
[0034] В некоторых вариантах осуществления технологии, в которых: по меньшей мере один процессор является множеством процессоров, и заранее определенные правила выполняются параллельно множеством процессоров.
[0035] В некоторых вариантах осуществления технологии, пользователь-субъект представляет собой одно из: пользователя, группу пользователей и процесс.
[0036] В некоторых вариантах осуществления технологии, объект представляет собой одно из: файл, тип файла, папку, процесс и программу.
[0037] В некоторых вариантах осуществления технологии, действие представляет собой одно из: чтение, запись, добавление, выполнение, удаление, создание и поиск.
[0038] В некоторых вариантах осуществления технологии, электронный сервис представляет собой облачный сервис.
[0039] В некоторых вариантах осуществления технологии, инструкции выполняются на уровне ядра по меньшей мере одного процессора.
[0040] В некоторых вариантах осуществления технологии, инструкции выполняются на виртуальной машине, реализуемой по меньшей мере одним процессором.
[0041] В некоторых вариантах осуществления технологии, анализ результата, полученного при выполнении набора заранее определенных правил, включает в себя определение данного результата данного заранее определенного правила может быть положительным, отрицательным и отрицательным по умолчанию.
[0042] В некоторых вариантах осуществления технологии, результат считается указывающим на позитивный результат в ответ на то, что совокупность данных результатов набора заранее определенных правил не приводит к отрицательному результату.
[0043] В некоторых вариантах осуществления технологии, результат считается указывающим на позитивный результат в ответ на то, что совокупность данных результатов набора заранее определенных правил приводит либо к положительному, либо к негативному результату по умолчанию.
[0044] Несмотря на то, что подразумевается, что настоящая технология осуществляется в сервисе облачного хранилища, следует отметить, что настоящая технология может быть использована в любой другой подходящей среде, которая требует управления доступом на авторизацию пользователей, устройств и процессов для выполнения конкретных действий.
[0045] В контексте настоящего описания «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данной технологии. В контексте настоящей технологии использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».
[0046] В контексте настоящего описания «клиентское устройство» подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Таким образом, примерами электронных устройств (среди прочего) могут служить персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.) смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует иметь в виду, что устройство, ведущее себя как электронное устройство в настоящем контексте, может вести себя как сервер по отношению к другим электронным устройствам. Использование выражения «электронное устройство» не исключает возможности использования множества электронных устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного метода.
[0047] В контексте настоящего описания «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, выполняющем процесс, на котором хранится или используется информация, хранящаяся в базе данных, или же база данных может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.
[0048] В контексте настоящего описания «информация» включает в себя информацию любую информацию, которая может храниться в базе данных. Таким образом, информация включает в себя, среди прочего, аудиовизуальные произведения (изображения, видео, звукозаписи, презентации и т.д.), данные (данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.
[0049] В контексте настоящего описания «используемый компьютером носитель компьютерной информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.
[0050] В контексте настоящего описания слова «первый», «второй», «третий» и и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной взаимосвязи между этими существительными. Так, например, следует иметь в виду, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий "второй сервер" обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание «первого» элемента и «второго» элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, «первый» сервер и «второй» сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
[0051] Каждый вариант осуществления настоящей технологии преследует по меньшей мере одну из вышеупомянутых целей и/или объектов, но наличие всех не является обязательным. Следует иметь в виду, что некоторые объекты данной технологии, полученные в результате попыток достичь вышеупомянутой цели, могут не удовлетворять этой цели и/или могут удовлетворять другим целям, отдельно не указанным здесь.
[0052] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящей технологии станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0053] Для лучшего понимания настоящей технологии, а также других ее аспектов и характерных черт, сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
[0054] На Фигуре 1 представлена принципиальная схема системы, выполненной в соответствии с неограничивающими вариантами осуществления настоящего технического решения.
[0055] На Фиг. 2 представлена принципиальная схема среды управления доступом, выполненной в соответствии с неограничивающими вариантами осуществления настоящей технологии.
[0056] На Фигуре 3 представлена блок-схема способа, реализованного в соответствии с другими вариантами осуществления настоящей технологии, не ограничивающими ее объем, причем способ выполняется в рамках системы, представленной на Фигуре 1.
ОСУЩЕСТВЛЕНИЕ
[0057] Все примеры и используемые здесь условные конструкции предназначены, главным образом, для того, чтобы помочь читателю понять принципы настоящей технологии, а не для установления границ ее объема. Следует также отметить, что специалисты в данной области техники могут разработать различные схемы, отдельно не описанные и не показанные здесь, но которые, тем не менее, воплощают собой принципы настоящей технологии и находятся в границах ее объема.
[0058] Кроме того, для ясности в понимании, следующее описание касается достаточно упрощенных вариантов осуществления настоящей технологии. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящей технологии будут обладать гораздо большей сложностью.
[0059] Некоторые полезные примеры модификаций настоящей технологии также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящей технологии. Эти модификации не представляют собой исчерпывающего списка, и специалисты в данной области техники могут создавать другие модификации, остающиеся в границах объема настоящей технологии. Кроме того, те случаи, где не были представлены примеры модификаций, не должны интерпретироваться как то, что никакие модификации невозможны, и/или что то, что было описано, является единственным вариантом осуществления этого элемента настоящей технологии.
[0060] Более того, все заявленные здесь принципы, аспекты и варианты осуществления технологии, равно как и конкретные их примеры, предназначены для обозначения их структурных и функциональных основ, вне зависимости от того, известны ли они на данный момент или будут разработаны в будущем. Таким образом, например, специалистами в данной области техники будет очевидно, что представленные здесь блок-схемы представляют собой концептуальные иллюстративные схемы, отражающие принципы настоящей технологии. Аналогично, любые блок-схемы, диаграммы, псевдокоды и т.п.представляют собой различные процессы, которые могут быть представлены на машиночитаемом носителе и, таким образом, использоваться компьютером или процессором, вне зависимости от того, показан явно подобный компьютер или процессор, или нет.
[0061] Функции различных элементов, показанных на фигурах, включая функциональный блок, обозначенный как «процессор», могут быть обеспечены с помощью специализированного аппаратного обеспечения или же аппаратного обеспечения, способного использовать подходящее программное обеспечение. Когда речь идет о процессоре, функции могут обеспечиваться одним специализированным процессором, одним общим процессором или множеством индивидуальных процессоров, причем некоторые из них могут являться общими. Более того, использование термина "процессор" или "контроллер" не должно подразумевать исключительно аппаратное обеспечение, способное поддерживать работу программного обеспечения, и может включать в себя, без установления ограничений, цифровой сигнальный процессор (DSP), сетевой процессор, интегральная схема специального назначения (ASIC), программируемую пользователем вентильную матрицу (FPGA), постоянное запоминающее устройство (ПЗУ) для хранения программного обеспечения, оперативное запоминающее устройство (ОЗУ) и энергонезависимое запоминающее устройство. Также в это может быть включено другое аппаратное обеспечение, обычное и/или специальное.
[0062] Программные модули или простые модули, представляющие собой программное обеспечение, могут быть использованы здесь в комбинации с элементами блок-схемы или другими элементами, которые указывают на выполнение этапов процесса и/или текстовое описание. Подобные модели могут быть выполнены на аппаратном обеспечении, показанном напрямую или косвенно.
[0063] С учетом этих примечаний, далее будут рассмотрены некоторые не ограничивающие варианты осуществления аспектов настоящей технологии.
[0064] На Фиг. 1 представлена принципиальная схема системы 100, выполненной в соответствии с вариантами осуществления настоящей технологии, не ограничивающими ее объем. Важно иметь в виду, что нижеследующее описание системы 100 представляет собой описание показательных вариантов осуществления настоящей технологии. Таким образом, все последующее описание представлено только как описание иллюстративного примера настоящей технологии. Это описание не предназначено для определения объема или установления границ настоящей технологии. Некоторые полезные примеры модификаций системы 100 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящей технологии. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента настоящей технологии. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 100 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящей технологии, и в подобных случаях этот вариант представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящей технологии будут обладать гораздо большей сложностью.
[65] Система 100 включает в себя сеть 102 передачи данных. Сеть 102 передачи данных обычно связана со множеством клиентских устройств, связанных соответственно со множеством пользователей. Первое клиентское устройство 104, второе клиентское устройство 108, третье клиентское устройство 106 и четвертое клиентское устройство ПО, связанное с первым пользователем 103, вторым пользователем 107, третьим пользователем 105 и четвертым пользователем 109 соответственно, указаны на чертежах для целей иллюстрации.
[0066] Сеть 102 передачи данных также связана с облачным сервером 130, который обладает процессором 140. Облачный сервер 130 может в общем случае предоставлять облачные вычислительные сервисы множеству пользователей (например, первого пользователя 103, второго пользователя 107, третьего пользователя 105 и четвертого пользователя 109), которые могут включать в себя серверы, хранилища, базы данных, сети и программное обеспечение. Пользователи могут создавать приложения и сервисы, сохранять, создавать резервные копии и восстанавливать данные, размещать веб-сайты и блоги, вещать потоки аудио и видео, предоставлять программное оборудование по запросу, анализировать данные для шаблонов и создавать прогнозы.
[0067] В настоящем варианте осуществления технологии, облачный сервер 130 размещает сервис облачного хранилища (не показан) и обычно связан с блоком 112 хранения файлов. Варианты осуществления облачного сервера 130 никак конкретно не ограничены, и, например, облачный сервер 130 может быть реализован как одиночный сервер. Альтернативно, облачный сервер 130 может представлять собой множество серверов. В рамках последнего варианта, каждый из множества серверов, реализующих облачный сервер 130, может отвечать за сохранение файлов для пользователей в конкретном регионе; или конкретного типа пользователей; или конкретного типа или размера файлов. Альтернативно, каждый из множества серверов, реализующих облачный сервер 130, может быть выполнен с возможностью сохранять файлы в соответствии с принципом распределения нагрузки, который выполняется контролирующим элементом (который может быть одним из множества серверов). Блок 112 хранения файлов обычно представляет собой блок, способный хранить файлы и данные. Аналогично облачному серверу 130, блок 112 хранения файлов может быть реализован как одиночный элемент, или, альтернативно, как множество элементов.
[0068] Клиентские устройства 104, 106, 108 и 110 соединены с сетью 102 передачи данных с помощью соответствующей линии 132, 134, 136, 138 передачи данных. В некоторых вариантах осуществления настоящей технологии, не ограничивающих ее объем, сеть 102 передачи данных может представлять собой Интернет. В других вариантах осуществления настоящего технического решения, сеть связи 102 может быть реализована иначе - в виде глобальной сети связи, локальной сети связи, частной сети связи и т.п.
[0069] То, как реализована линия 132, 134, 136, 138 передачи данных, никак конкретно не ограничена и будет меняться в зависимости от того, как реализованы сеть 102 передачи данных и соответствующие клиентские устройства 104, 106, 108 и 110. В качестве примера, но не ограничения, в данных вариантах осуществления настоящей технологии в случаях, когда первое клиентское устройство 104 представляет собой беспроводное устройство связи (например, смартфон), линия 132 передачи данных представляет собой беспроводной путь передачи данных (например, среди прочего, линия передачи данных 3G, линия передачи данных 4G, беспроводной интернет Wireless Fidelity или коротко WiFi, Bluetooth и т.п.). В тех примерах, где первое клиентское устройство 104 представляет собой портативный компьютер, линия 132 передачи данных может быть как беспроводной (беспроводной интернет Wireless Fidelity или коротко WiFi, Bluetooth и т.п), так и проводной (соединение на основе сети Ethernet). Различные клиентские устройства и различные пути передачи данных могут быть реализованы независимо друг от друга. Важно иметь в виду, что различные клиентские устройства могут быть реализованы по-разному и что пути передачи данных будут соответственно варьироваться.
[0070] Важно иметь в виду, что варианты реализации клиентских устройств 104, 106, 108 и 110, линий 132, 134, 136, 138 передачи данных и сети 102 передачи данных даны исключительно для наглядности. Несмотря на то, что представлено только четыре клиентских устройства 104, 106, 108 и 110 (показано на Фиг. 1), подразумевается, что любое число клиентских устройств 104, 106, 108 и 110 может быть связано с системой 100. Далее подразумевается, что в некоторых вариантах осуществления технологии, число клиентских устройств 104, 106, 108 и 110, которые включены в систему 100, может достигать десятков или сотен тысяч. Таким образом, специалисты в данной области техники смогут легко оценить другие конкретные подробности различных вариантов осуществления этих элементов. То есть, представленные здесь примеры не ограничивают объем настоящей технологии.
[0071] Облачный сервер 130 может представлять собой обычный компьютерный сервер. В примере варианта осуществления настоящей технологии, облачный сервер 130 представляет собой сервер Dell™ PowerEdge™, на котором используется операционная система Linux. Важно иметь в виду, что облачный сервер 130 может быть реализован на любом подходящем аппаратном и/или прикладном программном, и/или системном программном обеспечении или их комбинации. В представленном варианте осуществления настоящей технологии, не ограничивающем ее объем, облачный сервер 130 является одиночным сервером. В других вариантах осуществления настоящей технологии, не ограничивающих ее объем, функциональность облачного сервера 130 может быть разделена, и может выполняться с помощью нескольких серверов, т.е. облачный сервер 130 может быть реализован как множество серверов.
[0072] Процессор 140 облачного сервера 130 обладает пространством 145 пользователя и пространством 147 ядра, оба из которых будут более подробно описаны далее. Процессор 140 может представлять собой любой процессор, способный выполнять способ в соответствии с настоящей технологией. Предполагается, что, среди прочего, в этом участвует: один выделенный процессор 140, один общий процессор 140, графический процессор (GPU) 140 и центральный процессор (CPU) 140. Также предполагается, что способ может выполняться множество раз параллельно на множестве индивидуальных процессоров 140 или на многоядерном процессоре 140, как будет описано далее.
[0073] В соответствии с неограничивающими вариантами осуществления настоящей технологии, процессор 140 и его соответствующая память разделены на пространство 145 пользователя и пространство 147 ядра. При нормальных условиях, пространство 145 пользователя отвечает за выполнение программных приложений (не показано). Пространство 145 пользователя включает в себя любой процесс, который может быть недостаточно стабильным или надежным, чтобы обладать доступом к аппаратному обеспечению системы или операционной системе. Программные приложения получают доступ к драйверам системы и памяти с помощью вызовов системы, которые передают запросы от пространства пользователя процессам ядра.
[0074] Пространство 147 ядра отвечает за работу ядра операционной системы (не показано), драйверов устройств (не показано), диспетчера процессов (не показано) и диспетчера устройств ввода/вывода (I/O) (не показано). Ядро операционной системы представляет собой компьютерную программу, которая управляет запросами ввода и вывода, поступающими от программных приложений в пространстве пользователя, и переводит их в инструкции для обработки данных, предназначенные для процессора 140. Диспетчер процессов выделяет ресурсы для процессов и обеспечивает защиту от вмешательства процессов в работу друг друга. Драйверы устройств и диспетчер устройств ввода/вывода запускают, контролируют и отслеживают работу устройств, например, компьютерного монитора (не показано) и компьютерной клавиатуры (не показано), которые соединены с облачным сервером 130 системы 100. В целях безопасности системы, пространство 147 ядра использует известный набор команд пространства ядра - стабильные команды, которые обычно не угрожают нормальной работе системы 100.
[0075] Облачный сервер 130 может реализовать гарвардскую или Фон-неймановскую архитектуру или их комбинацию. Коротко говоря, гарвардская архитектура использует отдельные каналы памяти и данных для программы и памяти, а Фон-неймановская архитектура использует одни и те же каналы памяти и данных для программ и хранилищ данных.
[0076] Облачный сервер 130 может использовать виртуальную машину, которая работает как нормальное приложение внутри ОС и предоставляет независимую от платформы программную среду, которая позволяет абстрагироваться от деталей аппаратного обеспечения или ОС, и позволяет программе выполняться тем же образом на любой платформе.
[0077] Облачный сервер 130 функционально соединен с блоком 112 хранения файла (или иным образом имеет к нему доступ). Главной целью блока 112 хранения файлов является хранение данных, например, файлов и программ, доступных пользователям 103, 105, 107 и 109 или другим пользователям (не показано) облачного сервера 130. Варианты осуществления блока 112 хранения файлов никак конкретно не ограничены. Важно иметь в виду, что может быть использовано любое подходящее аппаратное обеспечение для хранения данных. В некоторых вариантах осуществления технологии, блок 112 хранения файлов может быть физически смежным с облачным сервером 130, т.е. это не обязательно должны быть различные аппаратные устройства, как представлено, хотя это может быть и так.
[0078] Облачный сервер 130 выполнен с возможностью выполнять механизмы управления доступом с целью управления потоком информации между субъектом (например, пользователем, группой пользователей, программой, процессом, устройством) и объектом (например, файлом, типа файла, папкой, программой, процессом, базой данных, устройством) в блоке 112 хранения файлов для защиты информации и предотвращения неавторизованного доступа. Субъект обычно запрашивает доступ к объекту для совершения над ним действий. Таким образом, механизмы управления доступом позволяют предотвратить, среди прочего, компьютерные угрозы (например, угроза отказа в обслуживании (DoS), неавторизованное программное обеспечение, программный дефект и т.д.) и угрозы персонала (например, невнимательные пользователи, шпионы и т.д.). Облачный сервер 130 может использовать механизмы управления доступом на основе базы 114 данных сопоставления правил, который будет описан более подробно в следующих параграфах.
[0079] На Фиг. 2, среда 200 управления доступом представлена в соответствии с неограничивающим вариантом осуществления настоящей технологии. Среда 200 управления доступом включает в себя базу 114 данных сопоставления правил, блок 112 хранения файла и множество заранее определенных правил 240.
[0080] Облачный сервер 130 выполнен с возможностью выполнять мандатное управление доступом (MAC), причем каждому субъекту и пользователю назначается метка безопасности системным администратором. Метка безопасности обладает назначенным уровнем чувствительности, например, публичная, чувствительная, конфиденциальная, секретная и т.д. Конкретнее, облачный сервер 130 выполнен с возможностью выполнять правило на основе управления доступом в соответствии с правилами (RBAC), причем управление разрешается или допускается для объектов на основе результатов выполнения одного или нескольких правил 242 из множества заранее определенных правил 240, определенных одним или несколькими системными администраторами. Выполнение по меньшей мере части множества заранее определенных правил 240 определяет, предоставляется или нет доступ субъекта к объекту в ответ на запрос. В общем случае, управление доступом не может быть изменено субъектами, поскольку все разрешения на доступ управляются только системными администраторами. В некоторых вариантах осуществления технологии, управление доступом в соответствии с правилами также может быть скомбинировано с управлением доступом в соответствии с ролями, когда разрешения назначаются на конкретные роли, и пользователям назначаются конкретные роли (например, администратор, разработчик, пользователь и т.д.).
[0081] Каждое правило 242 из набора заранее определенных правил 240 может указывать на то, какие взаимодействия возможны и невозможны между субъектом и объектом. Правило 242 может указывать на то, может ли субъект выполнять действие над объектом (например, считывание, запись, добавление, выполнение, удаление, создание и поиск) или может указывать на другие условия (например, диапазон местоположения, IP-адрес, время дня, тип устройства и т.д.) для выполнения действия. В широком смысле, правило 242 из набора заранее определенных правил 240, может использовать логику "если х, то у", которая позволяет выполнить действие у, если соблюдается условие х.
[0082] Для предоставления доступа, облачный сервер 130 выполнен с возможностью использовать один или несколько списков управления доступом (ACL) или матриц управления доступом (АСМ), которые представляют собой структуры данных, сопоставляющие субъекты и объекты с соответствующими правилами во множестве заранее определенных правил 240. То, как именно реализованы списки управления доступом, никак не ограничено. В настоящем варианте осуществления технологии, списки управления доступом реализованы как база данных 114 сопоставления правил. База 114 данных сопоставления правил может быть реализована разными способами.
[0083] Для данного субъекта и/или объекта в базе 114 данных сопоставления правил, облачный сервер 130 может извлекать соответствующий набор заранее определенных правил из множества заранее определенных правил 240. На основе субъекта и/или объекта в запросе, полученном от одного из клиентских устройств 104, 106, 108, 110, облачный сервер 130 может анализировать базу 114 данных сопоставления правил и извлекать набор заранее определенных правил 240 динамическим образом, например, облачный сервер 130 может выполнять конкретный набор заранее определенных правил путем извлечения из базы 114 данных сопоставления правил, ссылку на правила, связанные с объектом и/или субъектом, вводить их в функцию, которая может, в свою очередь, извлекать конкретные правила из множества заранее определенных правил 240, связанных с объектом и/или субъектом.
[0084] В настоящем варианте осуществления технологии, каждое правило 242 из множества заранее определенных правил 240 может быть определено одним или несколькими системными администраторами. В общем случае, целью неограничивающих вариантов осуществления настоящей технологии является предварительное определение каждого правила 242 из множества заранее определенных правил 240, и хотя бы частичная их предварительная компиляция, что позволяет быстрее обрабатывать их процессором 140 облачного сервера, таким образом, что она может выполняться независимо от других правил или процессом в облачном сервере 130. Таким образом, каждое правило 240 из множества заранее определенных правил 240 может считаться независимой программой, которая будет выполняться процессором 140 облачного сервера 130. При получении запроса, облачный сервер 130 может, таким образом, получать соответствующий набор заранее определенных правил 240 и выполнять заранее определенные правила без (или путем минимизации) времени компиляции интерпретации и компиляции процессором 140, обладая множеством правил 242, тесно связанных с инструкциями процессора. В некоторых вариантах осуществления настоящей технологии, множество заранее определенных правил 240 может быть представлено в форме машинного кода, который может храниться в ОЗУ или ПЗУ облачного сервера 130. В других вариантах осуществления настоящей технологии, множество заранее определенных правил 240 может быть представлено в форме байт-кода виртуальной машины, который может храниться в энергозависимой или энергонезависимой памяти облачного сервера 130. Байт-код может выполняться путем парсинга и прямого применения инструкций, интерпретации, оперативной компиляции, или с помощи любых других способов, выбранных системным администратором.
[0085] Таким образом, множество заранее определенных правил 240 может определяться в пространстве 145 пользователя и выполняться в пространстве 147 ядра процессора 140. В общем случае, ядро проверяет, что только переходы вперед разрешены для избежание циклов, и инструкции являются надежными, и в диапазоне, когда процессор 140 облачного сервера 130 выполняет заранее определенное правило 240 из множества заранее определенных правил 240.
[0086] Выполнение данного правила 242 из множества заранее определенных правил 240 может в общем случае приводить к трем возможным результатам: ПОЛОЖИТЕЛЬНЫЙ, ОТРИЦАТЕЛЬНЫЙ и ОТРИЦАТЕЛЬНЫЙ ПО УМОЛЧАНИЮ. ПОЛОЖИТЕЛЬНЫЙ результат выполнения правила может указывать на то, что элемент запроса совпадает с данным правилом (т.е. может указывать на положительный результат выполнения правила). ОТРИЦАТЕЛЬНЫЙ результат выполнения правила может указывать на то, что элемент запроса не совпадает с данным правилом (т.е. может указывать на отрицательный результат выполнения правила). В общем случае, когда выполнение правила облачного сервера 130 приводит к ОТРИЦАТЕЛЬНОМУ результату, запрос от субъекта может отвергаться автоматически и другие элементы запроса могут не проверяться. ОТРИЦАТЕЛЬНЫЙ ПО УМОЛЧАНИЮ результат выполнения правила может указывать на то, что правило не применяется к элементу запроса, и облачный сервер 130 игнорирует правило. Таким образом, когда набор заранее определенных правил выполняется процессором 140 облачного сервера 130, запрос может отвергаться автоматически и выполнение может быть отменено при получении по меньшей мере одного ОТРИЦАТЕЛЬНОГО результата. В некоторых вариантах осуществления настоящей технологии, возможно более трех результатов.
[0087] В широком смысле, облачный сервер 130 может получать запрос на выполнение действия над объектом в электронном сервисе (не показано) облачного сервера 130 от пользователя-субъекта с помощью устройства, связанного с облачным сервером 130 (например, одного из клиентских устройств 104, 106, 108 и 110). Действие может включать в себя, среди прочего, считывание, запись, добавление, выполнение, удаление, создание и поиск объекта. Облачный сервер 130 может анализировать запрос и, на основе базы 114 данных сопоставления правил, извлекать конкретный набор правил из множества заранее определенных правил 240, причем конкретный набор правил связан по меньшей мере с одним из субъекта и объекта.
[0088] Конкретный набор правил может в общем случае включать в себя проверку политики и других условий, которые позволяют выполнять действие над объектом. Облачный сервер 130 может выполнять конкретный набор правил последовательно, параллельно или по меньшей мере частично параллельно, в зависимости от того, как выполнен процессор 140 и/или облачный сервер 130. В общем случае, поскольку выполнение правила приводит к ОТРИЦАТЕЛЬНОМУ результату, облачный сервер 130 может автоматически остановить выполнение других правил из набора конкретных правил и отказать в выполнении действия субъектом, а также может уведомить субъект о том, что в запросе было отказано. В некоторых вариантах осуществления технологии, облачный сервер 130 может выполнять все правила из конкретного набора правил перед отказом в выполнении действия субъектом.
[0089] В некоторых вариантах осуществления технологии, облачный сервер 130 может использовать токены при запросах на авторизацию от пользователей-субъектов. В качестве неограничивающего примера, при авторизации запроса в первый раз, облачный сервер 130 может создавать токен, содержащий конкретный набор правил, связанных с пользователем-субъектом, который создает запрос. Облачный сервер 130 может переслать токен с конкретным набором правил клиентскому устройству (например, одному из клиентских устройств 104, 106, 108 и 110). Каждый новый запрос от пользователя-субъекта с помощью клиентского устройства может быть перехвачен облачным сервером 130 (например, путем перехвата сетевого трафика с помощью конкретных портов или перехвата конкретных пакетов запроса) и, на основе токена, облачный сервер 130 может пересылать запрос в пространство 147 ядра, которое может выполнять конкретный набор правил.
[0090] В общем случае, облачный сервер 130 может идентифицировать, авторизовать и давать доступ пользователям 103, 105, 107 и 109 на их клиентских устройствах 104, 106, 108 и 110, с помощью пользовательских учетных данных, предоставляемых каждым из пользователей 103, 105, 107 и 109. Способ, которым предоставляются пользовательские учетные данные и подтверждаются личности на облачном сервере 130, никак не ограничивается. В качестве неограничивающего примера, облачный сервер 130 может идентифицировать пользователей 103, 105, 107 и 109 с помощью ID пользователя (например, ID, имя пользователя, номер аккаунта) и авторизовать пользователей 103, 105, 107 и 109 с паролями, введенными через приложение или веб-ресурс, который доступен на соответствующих клиентских устройствах 104, 106, 108 и 110. В некоторых вариантах осуществления технологии, облачный сервер 130 может использовать однофакторную аутентификацию, двухфакторную аутентификацию, мультифакторную аутентификацию, строгую аутентификацию или непрерывную аутентификацию.
[0091] Облачный сервер 130 может получать первый запрос 202 от первого клиентского устройства 104, второго запроса 212 от второго клиентского устройства 108, третьего запроса 222 от третьего клиентского устройства 108 и четвертого запроса 232 от четвертого клиентского устройства 110 через сеть 102 передачи данных с помощью соответствующих линий 132, 134, 136, 138 передачи данных. Например, пользователь (например, один из пользователей 103, 105, 107 и 109) может получать доступ к терминальному приложению на пользовательском устройстве (например, одном из клиентских устройств 104, 106, 108 и 110) и вводить команду в командную строку для выполнения конкретного действия (например, удалять файл в папке), которое может быть переведено как запрос (например, первый запрос 202, второй запрос 212, третий запрос 222, четвертый запрос 232) и передано на облачный сервер 130 по сети 102 передачи данных.
[0092] Способ, в соответствии с которым выполняются первый запрос 202, второй запрос 212, третий запрос 222 и четвертый запрос 232, никак не ограничен. В качестве неограничивающего примера, запросы 202, 212, 222, 232 могут быть получены в виде заголовков фиксированного размера, и заранее определенные правила могут сопоставляться с индивидуальными байтами заголовков.
[0093] В представленном варианте осуществления технологии, первый запрос 202 может быть получен облачным сервером 130 от первого клиентского устройства 104 и может быть сформулирован как "СУБЪЕКТ=пользователь 1; ОБЪЕКТ=файл 1224; ДЕЙСТВИЕ=УДАЛИТЬ; ВРЕМЯ=2016-12-05Т15:54:09+00:00; IP=192.169.222.123" ("SUBJECT=user 1; OBJECT=file 1224; ACTION=DELETE; TIME=2016-12-05T15:54:09+00:00; IP=192.169.222.123").
[0094] Облачный сервер 130 может анализировать первый запрос 202 и, на основе СУБЪЕКТА и/или ОБЪЕКТА первого запроса 202, анализировать базу 114 данных сопоставления правил, которая содержит ссылку на правила, связанные с СУБЪЕКТОМ и/или ОБЪЕКТОМ первого запроса 202. Облачный сервер 130 может далее извлекать первый набор заранее определенных правил 252 из множества заранее определенных правил 240, первый набор заранее определенных правил 252, который связан с субъектом и/или объектом первого запроса 202. Процессор 140 облачного сервера 130 может далее выполнять каждое правило из первого набора заранее определенных правил 252. Правила могут выполняться, по меньшей мере частично параллельно, параллельно или последовательно процессором 140 облачного сервера 130. В качестве неограничивающего примера, первый набор заранее определенных правил 252 может содержать следующие правила для субъекта пользователь 1 и/или файл 1224: ДЕЙСТВИЕ=(ЧТЕНИЕ, ЗАПИСЬ, УДАЛЕНИЕ), ВРЕМЯ=(5:00-17:00), ДИАПАЗОН 1Р=(192.168.0.0-192.168.255.255). Процессор 140 облачного сервера 130 может выполнять каждое правило из первого набора заранее определенных правил 252, которые могут приводить к следующему результату: ПОЛОЖИТЕЛЬНО, ПОЛОЖИТЕЛЬНО, ПОЛОЖИТЕЛЬНО, ПОЛОЖИТЕЛЬНО. Облачный сервер 130 может далее авторизовать действие, которое предназначено для выполнения, поскольку выполнение первого набора заранее определенных правил 252 приводит только к ПОЛОЖИТЕЛЬНЫМ результатам, и ни к одному ОТРИЦАТЕЛЬНУ результату.
[0095] Второй запрос 212 может быть сформулирован как "СУБЪЕКТ=пользователь 2; УСТРОЙСТВО=клиентское устройство 2; ОБЪЕКТ=программа 412; ДЕЙСТВИЕ=ВЫПОЛНИТЬ; ВРЕМЯ=2016-12-05Т15:54:09+00:00; IP=192.168.192.192"
[0096] Облачный сервер 130 может анализировать второй запрос 212 и, на основе СУБЪЕКТА и/или ОБЪЕКТА второго запроса 212, анализировать базу 114 данных сопоставления правил, которая содержит ссылку на правила, связанные с СУБЪЕКТОМ и/или ОБЪЕКТОМ второго запроса 212. Облачный сервер 130 может далее извлекать второй набор заранее определенных правил 254 из множества заранее определенных правил 240, второй набор заранее определенных правил 254, который связан с субъектом и/или объектом второго запроса 212.
[0097] Процессор 140 облачного сервера 130 может далее выполнять каждое правило из второго набора заранее определенных правил 252. Правила могут выполняться, по меньшей мере частично параллельно, параллельно или последовательно процессором 140 облачного сервера 130. В качестве неограничивающего примера, второй набор заранее определенных правил 254 может содержать следующие правила для субъекта пользователь 2 и/или программа 412: ДЕЙСТВИЕ=ВЫПОЛНИТЬ, УСТРОЙСТВО=ЛЮБОЕ, ДАТА=(ОТ 2017-01-01Т00:00:00+00:00), ВРЕМЯ=(10:00-12:00), ДИАПАЗОН IP=(192.168.0.0-192.168.255.255). Процессор 140 облачного сервера 130 может выполнять каждое правило из второго набора заранее определенных правил 254, которые могут приводить к следующему результату: ПОЛОЖИТЕЛЬНО, ОТРИЦАТЕЛЬНО ПО УМОЛЧАНИЮ, ОТРИЦАТЕЛЬНО, ОТРИЦАТЕЛЬНО, ПОЛОЖИТЕЛЬНО.
[0098] Облачный сервер 130 может, тем самым, не авторизовать выполнение действия субъекта над объектом, поскольку выполнение второго набора заранее определенных правил 254 приводит по меньшей мере к одному ОТРИЦАТЕЛЬНОМУ результату. В некоторых вариантах осуществления настоящей технологии, процессор 140 облачного сервера 130 может остановить выполнение правил из второго набора заранее определенных правил 254 как только выполнение правила приводит к ОТРИЦАТЕЛЬНОМУ результату.
[0099] Третий запрос 222 может быть сформулирован как "СУБЪЕКТ=пользователь 3; УСТРОЙСТВО=ТЕЛЕФОНА; ОБЪЕКТ=облачный сервис 32; ДЕЙСТВИЕ=ЗАПИСАТЬ; ВРЕМЯ=2017-12-05Т15:54:09+00:00; IP=192.168.128.1".
[00100] Облачный сервер 130 может анализировать третий запрос 222 и, на основе СУБЪЕКТА и/или ОБЪЕКТА второго третьего 222, анализировать базу 114 данных сопоставления правил, которая содержит ссылку на правила, связанные с СУБЪЕКТОМ и/или ОБЪЕКТОМ третьего запроса 222.
[00101] Облачный сервер 130 может далее извлекать третий набор заранее определенных правил 256 из множества заранее определенных правил 240, третий набор заранее определенных правил 256, который связан с субъектом и/или объектом третьего запроса 222. Процессор 140 облачного сервера 130 может далее выполнять каждое правило из третьего набора заранее определенных правил 256. Правила могут выполняться, по меньшей мере частично параллельно, параллельно или последовательно процессором 140 облачного сервера 130.
[00102] В качестве неограничивающего примера, третий набор заранее определенных правил 256 может содержать следующие правила для субъекта пользователь 3 и/или облачный сервис 32: ДЕЙСТВИЕ=(ЧТЕНИЕ, ПЕРЕМЕЩЕНИЕ, ЗАПИСЬ), УСТРОЙСТВО=НОУТБУК, ВРЕМЯ=(5:00-17:00), ДИАПАЗОН IP=(192.168.0.0-192.168.255.255). Процессор 140 облачного сервера 130 может выполнять каждое правило из третьего набора заранее определенных правил 256, которые могут приводить к следующему результату: ПОЛОЖИТЕЛЬНО, ОТРИЦАТЕЛЬНО, ПОЛОЖИТЕЛЬНО, ПОЛОЖИТЕЛЬНО. Облачный сервер 130 может далее не авторизовать действие, которое предназначено для выполнения, поскольку выполнение третьего набора заранее определенных правил 256 приводит по меньшей мере к одному ОТРИЦАТЕЛЬНОМУ результату. В некоторых вариантах осуществления настоящей технологии, процессор 140 облачного сервера 130 может остановить выполнение правил из третьего набора заранее определенных правил 256 как только выполнение правила приводит к ОТРИЦАТЕЛЬНОМУ результату.
[00103] Четвертый запрос 232 может быть сформулирован как "СУБЪЕКТ=пользователь 4; УСТРОЙСТВО=клиентское устройство 3; ОБЪЕКТ=папка; ДЕЙСТВИЕ=ПЕРЕМЕСТИТЬ; ВРЕМЯ=2017-12-05Т15:54:09+00:00 IP=192.168.192.192".
[00104] Облачный сервер 130 может анализировать четвертый запрос 232 и, на основе СУБЪЕКТА и/или ОБЪЕКТА четвертого запроса 232, анализировать базу 114 данных сопоставления правил, и извлекать ссылку на правила, связанные с СУБЪЕКТОМ и/или ОБЪЕКТОМ четвертого запроса 232. Облачный сервер 130 может далее извлекать четвертый набор заранее определенных правил 258 из множества заранее определенных правил 240.
[00105] Облачный сервер 130 может далее извлекать четвертый набор заранее определенных правил 258 из множества заранее определенных правил 240, четвертый набор заранее определенных правил 258, который связан с субъектом и/или объектом первого запроса 202. Процессор 140 облачного сервера 130 может далее выполнять каждое правило из четвертого набора заранее определенных правил 258. Правила могут выполняться, по меньшей мере частично параллельно, параллельно или последовательно процессором 140 облачного сервера 130.
[00106] В качестве неограничивающего примера, первый набор заранее определенных правил 252 может содержать следующие правила для субъекта пользователь 4 и/или файл 1224: УСТРОЙСТВО=ЛЮБОЕ, ДЕЙСТВИЕ=ЛЮБОЕ, ВРЕМЯ=(5:00-17:00), ДИАПАЗОН IP=(192.168.0.0-192.168.255.255). Процессор 140 облачного сервера 130 может выполнять каждое правило из четвертого набора заранее определенных правил 258, которые могут приводить к следующему результату: ОТРИЦАТЕЛЬНО ПО УМОЛЧАНИЮ, ОТРИЦАТЕЛЬНО ПО УМОЛЧАНИЮ, ПОЛОЖИТЕЛЬНО, ПОЛОЖИТЕЛЬНО. Облачный сервер 130 может далее авторизовать действие, которое предназначено для выполнения, поскольку выполнение первого набора заранее определенных правил 252 приводит только к ПОЛОЖИТЕЛЬНЫМ или ОТРИЦАТЕЛЬНЫМ ПО УМОЛЧАНИЮ результатам, и ни к одному ОТРИЦАТЕЛЬНОМУ результату.
[00107] В некоторых вариантах осуществления настоящей технологии, облачный сервер 130 может быть выполнен с возможностью устанавливать приоритет выполнения конкретных заранее определенных правил перед другими, например, правило, относящееся к действию, может быть выполнено до правила, относящегося ко времени.
[00108] На Фиг. 3 показана блок-схема способа 300, выполняемого облачным сервером 130, представленном в соответствии с неограничивающими вариантами осуществления настоящей технологии.
[00109] Способ 300 начинается на этапе 302.
[00110] ЭТАП 302: получение запроса на доступ к электронному сервису, причем запрос включает в себя указание на пользователя-субъекта, на объект и на действие, которое пользователь-субъект желает выполнить над объектом в электронном сервисе.
[00111] На этапе 302, облачный сервер 130 может получать по меньшей мере один из первого запроса 202, второго запроса 212, третьего запроса 222 и четвертого запроса 232 от клиентских устройств 104, 106, 108 и 110. Каждый из первого запроса 202, второго запроса 212, третьего запроса 222 и четвертого запроса 232 может включать в себя указание на субъект, объект и действие, которое пользователь-субъект желает выполнить над объектом в облачном сервере 130.
[00112] Способ 300 далее переходит к этапу 304.
[00113] ЭТАП 304: на основе по меньшей мере одного указания на пользователь-субъект и объект, извлечение сервером, набора заранее определенных правил, связанных по меньшей мере с одним пользователем-субъектом и объектом из множества заранее определенных правил, и каждое заранее определенное правило было закодировано и сохранено сервером в виде соответствующей части байт-кода, причем заранее определенные правила были предварительно скомпилированы в части байт-кода.
[00114] На этапе 304, на основе по меньшей мере одного указания на пользователь-субъект и объект в первом запросе 202, втором запросе 212, третьем запросе 222 и четвертом запросе 232, облачный сервер 130 может анализировать базу 116 данных сопоставления правил и извлекать первый набор заранее определенных правил 252, второй набор заранее определенных правил 254, третий набор заранее определенных правил 246 и четвертый набор заранее определенных правил 258, связанных по меньшей мере с одним пользователем-субъектом и объектом из множества заранее определенных правил 240, и каждое правило 242 было закодировано и сохранено облачным сервером 130 в виде соответствующей части байт-кода, причем заранее определенные правила 240 были предварительно скомпилированы в части байт-кода.
[00115] Способ 300 далее переходит к этапу 306.
[00116] ЭТАП 306: выполнение сервером набора заранее определенных правил, причем набор заранее определенных правил включает в себя по меньшей мере одно из:
первое правило для проверки субъекта,
второе правило для проверки объекта, и
третье правило для проверки действия, которое хочет выполнить пользователь-субъект над объектом.
[00117] На этапе 306, облачный сервер 130 может выполнять по меньшей мере одно из первого набора заранее определенных правил 252, второго набора заранее определенных правил 254, третьего набора заранее определенных правил 256 и четвертого набора заранее определенных правил 258, причем каждый набор включает в себя по меньшей мере одно из: первое правило для проверки субъекта, второе правила для проверки объекта, и третье правило для проверки действия, которое пользователь-субъект желает выполнить над объектом.
[00118] Способ 300 далее переходит к этапу 308.
[00119] ЭТАП 308: анализ результата, полученного при выполнении каждого правила из набора заранее определенных правил.
[00120] На этапе 308, облачный сервер 130 может анализировать результат, полученный при выполнении каждого правила из по меньшей мере одного из первого набора заранее определенных правил 252, второго набора заранее определенных правил 254, третьего набора заранее определенных правил 256 и четвертого набора заранее определенных правил 258. Результат выполнения правила может быть: ПОЛОЖИТЕЛЬНЫМ, ОТРИЦАТЕЛЬНЫМ, ОТРИЦАТЕЛЬНЫМ ПО УМОЛЧАНИЮ.
[00121] Способ 300 далее переходит к этапу 310.
[00122] ЭТАП 310: в ответ на то, что результат указывает на позитивный результат, авторизация субъекта на выполнение действия над объектом.
[00123] На этапе 310, облачный сервер 130 может анализировать результат каждого выполненного правила из первого набора заранее определенных правил 252, второго набора заранее определенных правил 254, третьего набора заранее определенных правил 256 и четвертого набора заранее определенных правил 258. Если по меньшей мере одно правило из первого набора заранее определенных правил 252, второго набора заранее определенных правил 254, третьего набора заранее определенных правил 256 и четвертого набора заранее определенных правил 258 выдает отрицательный результат, облачный сервер 130 может запрос (например, первый запрос 202, второй запрос 212, третий запрос 222 и четвертый запрос 232). В другом случае, облачный сервер 130 может принимать запрос и авторизовать субъект выполнять действие над объектом.
[00124] Далее способ 300 завершается.
[00125] Несмотря на то, то настоящая технология была описана в контексте сервера облачного хранения, настоящая технология может быть реализована в любой среде, запрашивающей управление доступом. В качестве неограничивающего примера, настоящая технология может быть реализована для входа и авторизации на физическом устройстве, например, сервере или компьютере. В качестве другого примера, настоящая технология может быть реализована в локальной среде (например, сети LAN) для авторизации пользователей, например, работников компании для выполнения различных действий. Работники компании могут связываться с различными устройствами, например, сканнерами, принтерами и другими устройствами, соединенными с сетью, но обладают различными разрешениями и условиями для выполнения действий, например, работнику А можно использовать сканер между 9 утра и 5 вечера с понедельника по среду, а работнику В можно использовать сканеры и принтеры весь день, но только в конкретные месяцы.
[00126] Настоящая технология позволяет сохранить вычислительные ресурсы и время при авторизации запроса на выполнение действия пользователем-субъектом над объектом в электронном сервисе. Вычислительные ресурсы и время выполнения могут быть сэкономлены и/или оптимизированы с помощью правил предварительной компиляции, которые работают как условия для авторизации пользователя-субъекта на выполнение действия над объектом в электронном сервисе. Правила в общем случае заранее определяются системными администраторами и далее заранее компилируются, что позволяет минимизировать ресурсы, используемые сервером(ами).
[00127] В рамках приведенного описания следует иметь в виду, что в любой ситуации, которая включает в себя извлечение данных из любого клиентского устройства и/или из любого почтового сервера, может использоваться извлечение электронного или иного сигнала из соответствующего клиентского устройства (сервера, почтового сервера), а также отображение на экране устройства может быть реализовано как передача сигнала на экран, причем сигнал включает в себя конкретную информацию, которая далее может быть интерпретирована конкретным изображением и по меньшей мере частично отображена на экране клиентского устройства. Отправка и получение сигнала в некоторых случаях не упоминаются в настоящем описании для упрощения описания и с целью облегчения понимания. Сигналы могут быть переданы с помощью оптических средств (например, опто-волоконного соединения), электронных средств (проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры и/или другого подходящего параметра, посредством которого возможна передача сигнала).