Настройка хранилища для разрешений (scopes)#

Настройки разрешений (scope) по умолчанию редактируются через вкладку OAuth 2.0 веб-консоли администрирования и хранятся в конфигурационном файле /usr/share/identityblitz/blitz-config. При необходимости можно хранить разрешения в отдельном файле. Для изменения способа хранения необходимо отредактировать блок blitz.prod.local.idp.scopes-source, где задается способ хранения:

  1. config - хранение в основном конфигурационном файле /usr/share/identityblitz/blitz-config. В этом случае поле file не используется.

  2. file - хранение в отдельном файле. Путь к файлу прописывается в поле file. Если его нет, то берется файл по пути по умолчанию $app-data-path/scope.json. Путь``app-data-path`` – это путь из конфигурационного файла boot.conf.

Если scopes-source не настроен, то по умолчанию конфигурационный файл читается из основного конфигурационного файла /usr/share/identityblitz/blitz-config. Пример настройки:

"scopes-source" : {
  "file" : "/home/test/work/blitz-idp/conf/scopes.json",
  "type" : "file"
}

Настройки хранилища отдельным файлом:

{
 "scope_1" : {
   "sysname" : "scope_1",
   "names" : {
    "default" : "scope_1"
   },
   "descriptions" : {
    "default" : "desc_1"
   },
   "client-level" : false,
   "enabled" : true,
   "depricated" : false,
   "allowedResponseTypes" : [ "code", "token", "id_token", "device_code" ],
   "allowedGrantTypes" : [ "client_credentials", "password", "authorization_code", "implicit", "refresh_token", "urn:ietf:params:oauth:grant-type:token-exchange", "urn:ietf:params:oauth:grant-type:device_code" ],
   "attrs" : [ "org_id" ]
  },
  "scope_2" : {
   "sysname" : "scope_2",
   "names" : {
    "default" : "scope_2"
   },
   "descriptions" : {
     "default" : "desc_2"
   },
   "client-level" : false,
   "enabled" : true,
   "depricated" : false,
   "allowedResponseTypes" : [ "code", "token", "id_token", "device_code" ],
   "allowedGrantTypes" : [ "password", "urn:ietf:params:oauth:grant-type:device_code", "urn:ietf:params:oauth:grant-type:token-exchange", "refresh_token", "implicit", "client_credentials", "authorization_code" ],
   "attrs" : [ "testClaim" ]
  }
}

Свойства разрешений (scopes):

Базовые:
  • sysname - системное имя scope;

  • names - название scope. Если имя не задано, то используется sysname. На данный момент используется только значение default.

  • desc - описание scope на разных языках. На данный момент используется только значение default.

Для OAuth:
  • clientLevel - является ли scope системным (true/false);

  • allowedResponseTypes - по умолчанию разрешено все: code, token, id_token, device_code;

  • allowedGrantTypes - по умолчанию разрешено все: authorization_code, implicit, password, client_credentials, refresh_token, urn:ietf:params:oauth:grant-type:token-exchange, urn:ietf:params:oauth:grant-type:device_code.

По доступу к данным:
  • attrs - атрибуты пользователя доступные для scope.

По жизненному циклу:
  • enbaled - активирован ли scope. Если false, то даже по ранее выданным токенам будет отказ. По умолчанию true;

  • deprecated - параметр указывает, что запрос scope больше недоступен, однако токены, полученные ранее с этим параметром, продолжают работать. По умолчанию false.