跳转至

手动启用安全门户#

在凯睿德制造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模块列表也需要更新。在该文件中,您应该可以看到模块CmfAuthCmfAuthReports

<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_INSTANCEReportServer_ONLINE.

举个例子: 如果$PROTOCOLhttp, $IIS_SITE_URLvm-qa-env, $PORT82$REPORT_INSTANCEReportServer_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绑定的端口

举个例子:如果$PROTOCOLhttp, $IIS_SITE_URLvm-qa-env$PORT82, 那么appSetting CmfAuthReports_HostEndpoint的值应该是 http://vm-qa-env:82/api/.

另请参阅报表中的说明以了解安全门户访问报告需要哪些先决条件。