OpenBankingProject创建自定义视图权限问题:找不到CanCreateCustomView角色
OBP API沙箱创建自定义视图遇OBP-20022权限错误,且找不到对应角色
问题概述
使用OBP API沙箱调用创建账户自定义视图接口时,返回400错误:
{code: 400, message: OBP-20022: View does not permit the access. You need the cancreatecustomview permission on any your views}
尝试为用户授予CanCreateCustomView角色时,API返回该角色不存在:
{code: 400, message: OBP-10007: Incorrect Role name:CanCreateCustomView. Possible roles are CanAddKycCheck, CanAddKycDocument, ..............., CanUseAccountFirehoseAtAnyBank, CanUseCustomerFirehoseAtAnyBank}
前置操作背景
已完成以下步骤且全部成功:
- 通过消费者应用用户ID获取直接登录令牌
- 执行
create a second bank user - 执行
create a customer - 为第二个用户执行
create a user-customer-link - 用第二个用户ID执行
create an account
相关请求与响应细节
创建自定义视图请求
- 请求URL:
https://obplite/obp/v5.1.0/banks/wl.1.uk/accounts/{USER_ID}/views - 请求体:
{"name":"_test","description":"This view is for family","metadata_view":"_test","is_public":true,"which_alias_to_use":"family","hide_metadata_if_alias_used":false,"allowed_actions":["can_see_transaction_this_bank_account", "can_see_transaction_other_bank_account", "can_create_standing_order"]}
- 响应:如问题概述所示的OBP-20022错误
尝试授予角色请求
- 请求URL:
https://obplite/obp/v5.1.0/users/db40238c-8109-41ff-a605-9559291a4f4b/entitlements - 请求体:
{"role_name":"CanCreateCustomView","bank_id":"wl.1.uk"}
- 响应:如问题概述所示的OBP-10007错误
可能的解决方案与排查方向
确认权限对应的正确角色名
OBP的权限与角色并非完全直接映射,cancreatecustomview权限对应的角色可能是其他名称(如CanCreateCustomViewAtBank等)。可调用GET /roles接口获取当前沙箱环境的所有可用角色列表,查找包含创建自定义视图权限的角色。检查用户对目标账户的视图权限
错误提示中的"You need the cancreatecustomview permission on any your views",指的是当前用户对该账户的某个现有视图需包含cancreatecustomview权限,而非全局角色。可调用GET /banks/{bank_id}/accounts/{account_id}/views查看用户拥有的视图及权限,确认是否有符合要求的视图。使用高权限用户操作
沙箱环境中普通用户可能被限制创建自定义视图,尝试使用管理员级别的用户令牌执行创建操作。验证账户归属与权限
确认创建视图时使用的账户ID属于第二个用户,且该用户拥有该账户的owner视图权限(默认创建账户后用户会获得该视图)。
内容的提问来源于stack exchange,提问作者user1409784
相关产品推荐
相关产品推荐

