手动启用安全门户#
在凯睿德制造MES安装期间,可以将安全门户安装为禁用状态。在这种情况下,安全门户仍已安装在环境中,但未启用。为了启用它,您需要遵循本文档中定义的步骤。
为了启用安全门户,需要更新环境中已存在的Web.config 文件。
Note
以下步骤中给出的文件路径假设您位于安装凯睿德制造MES的磁盘文件夹中。例如,如果凯睿德制造MES安装在文件夹C:\Program Files\CriticalManufacturingSystem 中且本文件要求更改文件UI\api\Web.config, 则要更改的文件位于C:\Program Files\CriticalManufacturingSystem\UI\api\Web.config.
UI 配置文件#
UI\api\Web.config#
请打开文件UI\api\Web.config.在该文件中应该有一个名为“api”的规则,其中包含以下服务器变量:
<serverVariables>
<!--<set name="CMF_ALLOW_UNAUTHENTICATED" value="True" />-->
</serverVariables>
请从该文件中删除注释。该文件现在应该具有以下服务器变量定义:
<serverVariables>
<set name="CMF_ALLOW_UNAUTHENTICATED" value="True" />
</serverVariables>
保存并关闭该文件。
UI\discoveryservice\Web.config#
文件UI\discoveryservice\Web.config需要以与上一个UI\api\Web.config相同的方式进行更新。也就是说,“api”的服务器变量的规则需要从:
<serverVariables>
<!--<set name="CMF_ALLOW_UNAUTHENTICATED" value="True" />-->
</serverVariables>
变更为
<serverVariables>
<set name="CMF_ALLOW_UNAUTHENTICATED" value="True" />
</serverVariables>
保存并关闭该文件。
UI\messagebus\Web.config#
文件UI\messagebus\Web.config 需要以与上一个UI\api\Web.config相同的方式进行更新。也就是说,“api”的服务器变量的规则需要从:
<serverVariables>
<!--<set name="CMF_ALLOW_UNAUTHENTICATED" value="True" />-->
</serverVariables>
变更为
<serverVariables>
<set name="CMF_ALLOW_UNAUTHENTICATED" value="True" />
</serverVariables>
保存并关闭该文件。
UI\reportingservices\Web.config#
请打开文件UI\reportingservices\Web.config. 在该文件中应该有一个名为 ReportServer_MainInbound的规则, 使用以下服务器变量
<serverVariables>
<!--<set name="CMF_IS_REPORTSERVER" value="True" />-->
</serverVariables>
请从该文件中删除注释。该文件现在应该具有以下服务器变量定义:
<serverVariables>
<set name="CMF_IS_REPORTSERVER" value="True" />
</serverVariables>
保存并关闭该文件。
UI\Web.config#
文件UI\Web.config 的多处地方需要更改以正确启用安全门户.请打开文件UI\Web.Config. 在该文件中,您应该看到以下app设置:
<appSettings>
<!--<add key="CmfAuth_ClientId" value="..."/>-->
<!--<add key="CmfAuth_ClientSecret" value="..."/>-->
<!--<add key="CmfAuth_UserEndpoint" value="..."/>-->
<!--<add key="CmfAuth_ApiEndpoint" value="..."/>-->
<!--<add key="CmfAuthReports_ReportServerBaseUrl" value="..." />-->
<!--<add key="CmfAuthReports_HostEndpoint" value="..."/>-->
</appSettings>
这些应用程序设置的“值”取决于凯睿德制造MES安装期间所传递的值。
请从每个App设置中删除注释。该文件现在应具有以下App设置:
<appSettings>
<add key="CmfAuth_ClientId" value="..."/>
<add key="CmfAuth_ClientSecret" value="..."/>
<add key="CmfAuth_UserEndpoint" value="..."/>
<add key="CmfAuth_ApiEndpoint" value="..."/>
<add key="CmfAuthReports_ReportServerBaseUrl" value="..." />
<add key="CmfAuthReports_HostEndpoint" value="..."/>
</appSettings>
站点加载的IIS模块列表也需要更新。在该文件中,您应该可以看到模块CmfAuth 和 CmfAuthReports:
<modules>
<!-- <add name="CmfAuth" type="Cmf.Auth.IIS.Module.AuthenticationModule, Cmf.Auth.IIS.Module"/> -->
<!-- <add name="CmfAuthReports" type="Cmf.Auth.IIS.Module.ReportServer.ReportServerModule, Cmf.Auth.IIS.Module"/> -->
</modules>
请删除这些模块的注释。该文件现在应该具有以下模块:
<modules>
<add name="CmfAuth" type="Cmf.Auth.IIS.Module.AuthenticationModule, Cmf.Auth.IIS.Module"/>
<add name="CmfAuthReports" type="Cmf.Auth.IIS.Module.ReportServer.ReportServerModule, Cmf.Auth.IIS.Module"/>
</modules>
此外,还需要更新URL重写规则。在该文件中,您应该看到一个名为“Public Files”的规则:
<rules>
<!--<rule name="Public Files" patternSyntax="ECMAScript" stopProcessing="true">
<match url="manifest.json|clientaccesspolicy.xml|crossdomain.xml" />
<serverVariables>
<set name="CMF_ALLOW_UNAUTHENTICATED" value="True" />
</serverVariables>
</rule>-->
</rules>
请从URL重写规则“Public Files”中删除注释。该文件现在应具有以下规则:
<rules>
<rule name="Public Files" patternSyntax="ECMAScript" stopProcessing="true">
<match url="manifest.json|clientaccesspolicy.xml|crossdomain.xml" />
<serverVariables>
<set name="CMF_ALLOW_UNAUTHENTICATED" value="True" />
</serverVariables>
</rule>
</rules>
保存并关闭该文件。
配置报表服务器设置#
为了验证发送到报表服务器的请求,这些请求需要通过在凯睿德制造MES安装期间创建的特定IIS站点发送。该IIS站点的URL遵循以下模式$PROTOCOL/$IIS_SITE_URL:$PORT/$REPORT_INSTANCE/pages/ReportViewer.aspx 这里:
$PROTOCOL是“http”还是“https”,取决于环境是否在https中运行;$IIS_SITE_URL是安装了凯睿德制造MES的IIS实例的URL;$PORT是安装了凯睿德制造MES的IIS绑定的端口;$REPORT_INSTANCE是SQL Server报表实例的名称,其中包含凯睿德制造MES系统安装的报表。例如,如果要访问SQL Server报表网页的URL为http://vm-db3/ReportServer_ONLINE, 那么$REPORT_INSTANCE为ReportServer_ONLINE.
举个例子: 如果$PROTOCOL 为http, $IIS_SITE_URL 为 vm-qa-env, $PORT为 82 且 $REPORT_INSTANCE 为ReportServer_ONLINE 那么用于验证向报表服务器发出的请求的URL为 http://vm-qa-env:82/ReportServer_ONLINE/pages/ReportViewer.aspx.
需要将该IIS站点的URL/Cmf/System/Configuration/Reporting/Report Server/添加到GUI配置中。要更改此配置,请打开GUI,然后在“管理”部分中打开“配置”页面。使用配置页面设置配置的值/Cmf/System/Configuration/Reporting/Report Server/.
然后打开文件UI\Web.config确保appSetting CmfAuthReports_ReportServerBaseUrl 指向SQL报表服务器的真实URL。例如,如果报告的原始URL为http://vm-db3/ReportServer_ONLINE/CriticalManufacturingSystem/_History/Report_ABC那么appSetting的值CmfAuthReports_ReportServerBaseUrl 必需为http://vm-db3/ReportServer_ONLINE. 类似地appSetting中 CmfAuthReports_HostEndpoint 还应包含用于连接到业务层的IIS站点的URL。该URL的格式为$PROTOCOL/$IIS_SITE_URL:$PORT/api/ 这里:
$PROTOCOL是“http”还是“https”,取决于环境是否在https中运行;$IIS_SITE_URL是安装了凯睿德制造MES的IIS实例的URL;$PORT安装了凯睿德制造MES的IIS绑定的端口
举个例子:如果$PROTOCOL 为 http, $IIS_SITE_URL 为 vm-qa-env 且 $PORT 为 82, 那么appSetting CmfAuthReports_HostEndpoint的值应该是 http://vm-qa-env:82/api/.
另请参阅报表中的说明以了解安全门户访问报告需要哪些先决条件。