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