Разрешения (scopes)#
Настройки разрешений (scope) по умолчанию управляются через вкладку OAuth 2.0 в веб-консоли администрирования.
По умолчанию разрешения хранятся в конфигурационном файле /usr/share/identityblitz/blitz-config/blitz.conf. При необходимости их можно хранить в отдельном файле, это упрощает управление конфигурацией - изменения в разрешениях не затрагивают основную конфигурацию, есть возможность быстрого обновления и восстановления настроек. Для того чтобы хранить разрешения в отдельном файле, добавьте раздел blitz.prod.local.idp.scopes-source в конфигурационный файл blitz.conf. При этом необходимо указать значение file в параметре type. Путь к файлу указывается в параметре file. Если путь не указан, используется путь по умолчанию: $app-data-path/scope.json, где $app-data-path — это путь, заданный в конфигурационном файле boot.conf.
Пример настройки для хранения отдельным файлом:
"scopes-source" : {
  "file" : "/home/test/work/blitz-idp/conf/scopes.json",
  "type" : "file"
}
Если нужно обратно переключиться на основную конфигурацию, используйте значение config для параметра type в разделе конфигурационного файла blitz.prod.local.idp.scopes-source.
Пример настройки для хранения в основном конфигурационном файле:
"scopes-source" : {
  "file" : "/usr/share/identityblitz/blitz-config/blitz.conf",
  "type" : "config"
}
Настройки хранилища отдельным файлом:
{
 "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.
 
Примечание
Для настройки разрешений (scope) для доступа к сервисам REST API см. раздел REST API. В данном разделе описывается процесс изменения набора разрешений по умолчанию, а также настройка доступа к атрибутам, связанными с этими разрешениями.
