Jwt openid隐式流授权用户无法从syncgateway couchbase提取
大家好,我在本文档中使用openid implisit flow对我的用户进行授权,syncgateway获得此响应Jwt openid隐式流授权用户无法从syncgateway couchbase提取,jwt,couchbase,openid,couchbase-lite,couchbase-sync-gateway,Jwt,Couchbase,Openid,Couchbase Lite,Couchbase Sync Gateway,大家好,我在本文档中使用openid implisit flow对我的用户进行授权,syncgateway获得此响应 { "authentication_handlers": [ "default", "cookie" ], "ok": true, "userCtx": { "channels":
{
"authentication_handlers": [
"default",
"cookie"
],
"ok": true,
"userCtx": {
"channels": {
"!": 1
},
"name": "staging-dialysiscloud.icdgroup.org%2Fids_00000000-0000-0000-0000-100000000000"
}
}
“1”在“!”前面是什么意思?我如何访问我不希望我的用户限制从公共频道使用的其他频道。我应该向jwt令牌或同步配置文件添加什么?
我可以推到我的存储桶,但我不能通过这个
sessionId从中提取数据值1
表示映射到公共频道的序列(即,添加频道时的序列值)。当同步网关启动时,将自动创建公共通道。OpenID Connect身份验证在您的情况下是成功的,但用户只能访问公共通道。更新文档时,您可以通过管理员REST API、配置文件或通过同步功能授予用户/角色对特定频道集或*频道的访问权限
要通过Admin REST API授予用户访问特定通道集的权限,请从运行同步网关的终端发出如下命令:
http --verbose PUT http://localhost:4985/default/_user/alice admin_channels:='["channel-1", "channel-2"]'
这将允许用户alice
访问channel-1
和channel-2
如果希望用户访问数据库中的所有文档,可以授予用户对*
频道的访问权限。例如,下面的命令将授予用户bob
对*
频道的访问权,他将能够访问数据库中的所有文档
http --verbose PUT http://localhost:4985/default/_user/bob admin_channels:='["*"]'
您可能希望使用您的用户名更改用户名bob
,即登台dialysiscloud.icdgroup.org%2Fids_u00000000-0000-0000-10000000000
注意:您需要安装httpie
才能从运行http命令
终点站。如果您还没有,并且正在使用MacOSX,只需发布
brew安装httpie
如果您想阅读更多关于访问控制和同步网关通道的信息,这是一个很好的文档。我不定义staging dialysiscloud.icdgroup.org%2Fids_00000000-0000-0000-0000-10000000000 user.syncgateway从jwt令牌内部的数据定义它。我不定义任何用户,我想使用jwt令牌登录到syncgateway,但仅此用户访问公共频道。我有一个问题,syncgateway是否支持使用access token而不是idtoken登录,syncgateway是否支持在token中定义角色?答案是否!同步网关仅支持使用ID令牌的OIDC身份验证,ID令牌应为有效的JSON Web令牌。