Управление доступом

Конфигурационный файл управления доступом

Чтобы предоставить идентичность каждому пользователю, вы задаете конфигурационный файл управления доступом в формате JSON. Каждый единичный провайдер имеет различный конфигурационный файл, чтобы включить авторизацию. Именем по умолчанию для файла JSON для Директории Azure® Active является azure_ad.json.

Azure Активные параметры конфигурации Директории следующие:

  • (Необходимый) tenantId: Azure Активный ID арендатора Директории. Чтобы определить местоположение вашего ID арендатора, перейдите к https://portal.azure.com. На левой панели выберите Azure Active Directory, затем на панели Overview, выберите Properties. Шестнадцатеричный код под Directory ID является вашим ID арендатора.

  • (Необходимый) serverAppId: идентификатор приложения MATLAB® Production Server™, как указано в Azure Активная Директория. Чтобы определить местоположение вашего serverAppID, перейдите к https://portal.azure.com. На левой панели выберите Azure Active Directory, затем на панели Overview, выберите App registrations. Затем выберите MPS server, чтобы найти Application ID, который является вашим serverAppID.

  • jwksUri (Необязательно): Используемый, чтобы получить Azure Активная Директория веб-Набор ключей JSON, который используется, чтобы проверить маркерную подпись. Значением по умолчанию является https://login.microsoftonline.com/common/discovery/keys.

  • issuerBaseUri (Необязательно): Используемый с tenantId, чтобы подтвердить выпускающего лексемы. Для Azure Активная Директория значением по умолчанию является https://sts.windows.net/.

  • jwksTimeOut (Необязательно): Максимальному времени запрос jwks позволяют взять. Значением по умолчанию составляют 120 секунд.

Формат конфигурационного файла следующие:

{
  "tenantId": "54ss4lk1-8428-7256-5fvh-d5785gfhkjh6",
  "serverAppId": "j21n12bg-3758-3r78-v25j-35yj4c47vhmt",
  "jwksUri": "https://login.microsoftonline.com/common/discovery/keys",
  "issuerBaseUri": "https://sts.windows.net/",
  "jwksTimeOut": 120
}

Файл политики контроля доступа

Чтобы использовать управление доступом для MATLAB Production Server, администратор сервера должен задать файл политики контроля доступа в формате JSON. Именем по умолчанию для файла JSON является ac_policy.json.

Файл политики читается на запуске сервера. Если это не существует или содержит ошибки, сервер не запускается, и сообщение об ошибке записано в файл main.log, найденный в логарифмическом корневом каталоге.

Если сервер запустился, файл политики сканируется каждые пять секунд для изменений. Если файл политики удален или содержит ошибки, сервер продолжает запускаться, но все просьбы отклонены. Снова, сообщение об ошибке записано в файл main.log.

Файл JSON имеет один объект JSON, который задает версию схемы и Блок политики. Блок политики состоит из списка политик. Каждая политика содержит Блок Правила, который задает ряд правил и состоит из Подчиненного Блока, Блока Ресурса и Блока Действия.

Версия схемы имеет значение, которое является строкой JSON в формате <major#>.<minor#>.<patch#> с каждым номером, заданным как неотрицательное целое число.

Блок политики

Блок политики содержит список политик, требуемых для управления доступом. В настоящее время только одна политика может быть задана в файле политики.

"policy" : [
   {
     "id": "<policy_id>",
     "description": "<policy_description>",
     <rule_block>
   }
]

ID требуется для каждой политики. <policy_id> должен быть уникальным для каждой политики. Любое продвижение или конечный пробел удалены.

description является дополнительным для политики.

Управляйте блоком

Блок правила содержит список объектов правила.

"rule":[
  {  
    "id": "<rule_id>",
    "description": "<rule_description>",
    <subject_block>,
    <resource_block>,
    <action_block>
  }
]    

Несколько правил могут существовать в блоке правила, например: "rule": [<rule>, <rule>, ...].

ID требуется для каждого правила. <rule_id> должен быть уникальным для каждого правила. Любое продвижение или конечный пробел удалены.

description является дополнительным для правила.

Подчиненный блок

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

"subject" : {"groups": ["<group_id>", "<group_id>", ...]}

Для Azure Активная Директория список идентификаторов группы может быть задан, чтобы управлять, какие группы могут получить доступ к ресурсам, заданным в правиле.

Получите ID группы от Azure активная директория на основе имени отображения группы

  1. Открытый Azure Активный проводник графика Директории на https://graphexplorer.azurewebsites.net и вход в систему.

  2. Используйте запрашивают https://graph.windows.net/<tenant>/groups?$filter=startswith(displayName,'<groupname>'), где <tenant> является именем арендатора, и <groupname> является именем определенной группы.

  3. Ищите objectId определенной группы в ответе.

Получите все идентификаторы группы для определенного пользователя от Azure активная директория

  1. Открытый Azure Активный проводник графика Директории на https://graphexplorer.azurewebsites.net и вход в систему.

  2. Используйте запрашивают https://graph.windows.net/<tenant>//<tenant>/users/<username>@<tenant>/memberOf , где <tenant> является именем арендатора, и <username> является именем определенного пользователя.

  3. Для всех групп, где securityEnabled верен, поиск objectId в ответе.

Блок ресурса

Блок ресурса правила описывает получаемый доступ объект. В настоящее время к только файлу ctf можно получить доступ.

"resource" : {"ctf": ["<ctf_name>", "<ctf_name>", ...]}

Можно использовать ctf_name, чтобы получить доступ к нескольким файлам ctf при помощи подстановочного символа *. Например, если вы хотите получить доступ ко всем файлам ctf, имена которых запускаются или заканчиваются 'тестом', вы задали бы <ctf_name> как test* или *test, соответственно. Если вы используете * в качестве <ctf_name>, можно получить доступ ко всем файлам ctf.

Блок действия

Блок действия правила описывает действие, предпринимаемое на ресурсе. В настоящее время только действие execute поддерживается.

"action" : ["execute"]

Пример Файла политики JSON.  Следующий пример задает политику контроля доступа с тремя правилами.

  • Все пользователи, принадлежащие группе с ID aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa, могут выполнить файл ctf magic.

  • Все пользователи принадлежат группам с ID, aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa и bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb могут выполнить файлы ctf monteCarlo и fastFourier.

  • Все пользователи принадлежат Качественной Технической группе, cccccccc-cccc-cccc-cccc-cccccccccccc может выполнить весь ctf s начиная с теста.

Доступ запрещен для всех других запросов.

{
  "version": "1.0.0",
  "policy" : [
    {
      "id": "policy1",
      "description": "MPS Access Control policy for XYZ Corp.",
      "rule": [
        {
          "id": "rule1",
          "description": "group A can execute ctf magic",
          "subject": { "groups": ["aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"] },
          "resource": { "ctf": ["magic"] },
          "action": ["execute"]
        },
        {
          "id": "rule2",
          "description": "group A and group B can execute ctf monteCarlo and fastFourier",
          "subject": { "groups": ["aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"]  },
          "resource": { "ctf": ["monteCarlo", "fastFourier"] },
          "action": ["execute"]
        },
        {
          "id": "rule3",
          "description": "QE group C can execute any ctf starts with test",
          "subject": { "groups": ["cccccccc-cccc-cccc-cccc-cccccccccccc"] },
          "resource": { "ctf": ["test*"] },
          "action": ["execute"] 
        }
      ]
    }
  ]
}

Смотрите также

Внешние веб-сайты