问题
· 十一月 17, 2022

ensemble发布BS服务 访问需要用户名密码

环境是windows server2012 r2 standard+ensemble2016.

新搭建的环境,安装ensemble的时候,选的是正常模式,就是设置了密码,然后新建了命名空间,发布了bs服务(webservice服务),访问的时候需要用户密码,如果在安全里面的web应用程序里面设置为不需要密码,不勾选密码,就访问不了服务,production页面都进不去。这个还需要什么配置吗?期望的效果是,登录portal需要用户名密码,但是对应某些命名空间发布的web服务,不需要用户密码就能访问

产品版本: Ensemble 2016.1
$ZV: Cache for Windows (x86-64) 2016.2.3 (Build 907_11_20753U) Mon Apr 5 2021 19:51:59 EDT
讨论 (3)3
登录或注册以继续

您好,这个现象是由于采用命名空间的默认应用程序来发布SOAP服务引起。

通常我们建议将portal使用的web application和服务用的web application分开,用独立的Web application发布Web Service或RESTful服务,因为访问服务和访问portal的用户,用户角色不应该是一样的。
比如现在这样portal和服务共用一个web application,如果要让soap不用授权就需要取消对这个命名空间的默认程序的授权限制,意味着谁都能登录进portal甚至进行修改。

SOAP使用的独立web application尽量使用授权,不用授权意味着任何网络请求都可以通过接口执行代码消耗服务器资源。

您这个情况可以尝试取消Web Application的“必要的资源”设置看看

在系统管理-安全-应用程序-web应用程序下找到对应命名空间的路径,点进去在允许的身份验证方法下,把密码和委托的对勾去掉,把未验证的勾打上,再去系统管理-安全-用户 找到UnknownUser点进去在角色这里分配all的权限,保存。如果命名空间下的web服务打不开测试页面,在terminal下 切到%SYS执行Set ^SYS("Security", "CSP", "AllowPrefix", "/csp/ensemble/test/", "%SOAP.") = 1的/csp/ensemble/test/为命名空间test下的路径