Configure Security Portal to authenticate access to reports#
The Critical Manufacturing MES installation can configure the Security Portal to authenticate access to SQL Server Reporting Services reports. This page describes how the Security Portal connects to the report server.
Report Server Access#
During the installation, DevOps Center asks for the address and an account of SQL Server Reporting Services: Web Portal URL, Web Service URL, Username, and Password. The Security Portal Forward Auth service requests the reports from the report server with this account on behalf of every user, so the account must have access to all the reports that users can open. To configure report permissions in SQL Server Reporting Services, see Analytics Security.
When a user opens a report, the request is routed to the Forward Auth service, which:
- Checks with the MES Host whether the user has access to the requested report.
- Returns
403 Forbiddenif the user doesn't have access. - Otherwise, requests the report from the report server with the configured account and returns it to the user.
Supporting files of the report page, such as stylesheets and icons, are forwarded without the access check.
Integration with Report Folder functionality#
When the Security Portal checks with the MES Host whether the user has access to a report, the MES Host takes into account the configuration of the Report Folders of the system, which allows users with certain Roles to access the reports inside specific report folders.
Because only one user is used to perform the HTTP requests to the report server, the security access features of SQL Server Reporting Services cannot be used to control what reports each specific user can access. Those access controls need to implemented as Roles in the Critical Manufacturing MES and then the Report Folders can be configured to allow only users with a certain Role to access the reports that are inside them.
For more information, see Report Folders.
Sequence Flow#
The following diagram shows how a report request is authenticated, both when the user has access to the report and when they don't.
sequenceDiagram
participant User as Browser
participant Traefik
participant FA as Forward Auth
participant Host as MES Host
participant SSRS as SQL Server Reporting Services
User->>Traefik: Open report
Traefik->>FA: Route request to the report fetch endpoint
FA->>Host: Check user access to the report
alt User has access
Host-->>FA: Access granted
FA->>SSRS: Request report with the configured account
SSRS-->>FA: Report
FA-->>User: 200 OK with the report
else User doesn't have access
Host-->>FA: Access denied
FA-->>User: 403 Forbidden
end