Introduction

Parts of Viz Mosart can be run with encrypted transport (HTTPS) and user sign-in (OpenID Connect). This chapter describes how the security layers of a Mosart installation fit together, how to choose an authentication mode, and how to set everything up: the identity provider, the certificates, the Mosart Web Apps and the Mosart servers.

Note: Before taking your system into production, review the default security settings. Out of the box, neither HTTPS nor authentication is enabled, and the Mosart REST API accepts any caller that presents the shared REST API key.

The chapter has four sections:

What is secured, and by what

HTTPS and OIDC authentication secure the surfaces reachable from a browser or from another system: the Mosart Remote Controller Service, which serves the Mosart REST API and the SignalR hub, and the Mosart Web Apps with their proxy. These are the ways into a Mosart installation from outside the automation network, which is why authentication is implemented here first.

The rest of an installation is protected by other means:

  • The Viz Mosart desktop applications, meaning AV Automation, Manus Administrator, Media Administrator and the Mosart GUI, run inside the automation network and are protected by that network's isolation, together with the password-protected features described in this chapter. They do not take part in OIDC sign-in.

  • Links between Mosart components, such as Manus Administrator talking to the Remote Controller Service, use their own internal mechanisms rather than the OIDC path.

  • Device and newsroom protocols, meaning MOS, GPI/O, and serial or TCP device control, follow the specification of each protocol and device. Where a device offers a secured connection, Viz Mosart can be configured to use it: the Generic REST driver, for example, supports HTTPS with a choice of authentication types.

Note: Plan the automation network as a trusted zone. HTTPS and OIDC secure access into the installation, and the components inside it rely on that boundary together with the credentials described in this chapter.

How the layers fit together

In a full installation the browser, the proxy, the Web Apps server, the Mosart servers and the identity provider are all involved, and the settings are spread across them:

  1. The browser signs in against the identity provider, through the Web Apps server, and receives a session cookie.

  2. The Web Apps server reads the ID token to decide whether an app may open, and which controls that user sees.

  3. For calls that reach a Mosart server, the app fetches the access token and sends it as a bearer token on REST, or as an access_token query parameter on the SignalR hub.

  4. The Mosart server validates that access token against the same authority, and reads the role from it.

Security is therefore configured in two places, separately:

  • The Mosart servers, main and backup, in Mosart central settings under Remote Controller Service > Security. Described in this chapter, under Securing the Mosart Server.

  • The Mosart Web Apps, in the Web Apps Configuration Tool. Described in the Viz Mosart Web Apps Guide at the Vizrt Documentation Center, section Configuration Tool.

Enabling one without the other leaves you half secured, and some combinations do not work at all. Three rules apply throughout:

  1. Authentication requires HTTPS. You cannot enable sign-in over plain HTTP.

  2. Authentication requires your own certificate. The built-in certificate authority in the Mosart Web Proxy keeps the components behind it on plain HTTP, so the Configuration Tool only offers the Authentication section in custom certificate mode.

  3. Mosart server settings need a service restart. Nothing under Remote Controller Service > Security takes effect until you restart the Mosart Remote Control Service, and you must do it on each server.

Roles across Viz Mosart

Roles are assigned in your identity provider, never in Viz Mosart. The role names are fixed by Vizrt. The groups you assign them to are yours.

Role pair

Applies to

Enforced by

mosart-admin, mosart-viewer

Named Overlays Editor

the Mosart server, on its REST API

showmaker-admin, showmaker-viewer

Showmaker

the Mosart Web Apps server

smartpanel-admin, smartpanel-viewer

Smart Panel, including the Timing Display API

the Mosart Web Apps server

In each pair, -admin grants full control and -viewer grants read-only access. What the identity provider must put in the token, and how to configure it, is described in Identity Provider and Certificates.

Note: Assign roles before you enable authentication. A signed-in user with no role for an app does not get a read-only view, they get an unauthorized-access screen. An identity provider with no Mosart roles configured locks everybody out, which reads as a fault rather than as missing configuration.

Info: Roles are only enforced while authentication is enabled. With authentication off, every user is treated as an administrator. On the Mosart server, role enforcement currently covers the Named Overlays API; the playout surfaces accept any signed-in user, and role coverage there is tracked separately.

Setup at a glance

Four steps, in this order. The first two are usually done by your IT department, the last two in Viz Mosart.

Step

Who

What

Described in

1. Identity provider

IT

Create the OIDC client, define the role names, and make sure the roles reach both tokens.

Identity Provider and Certificates

2. Certificates

IT

One PEM certificate with an RSA key, covering the Web Apps host and both Mosart servers.

Identity Provider and Certificates

3. Mosart Web Apps

Mosart administrator

HTTPS with that certificate, then authentication, in the Configuration Tool.

the Viz Mosart Web Apps Guide, section Configuration Tool, at the Vizrt Documentation Center; the essentials are summarized below

4. Mosart servers

Mosart administrator

HTTPS and OIDC on the main and the backup server, then restart the service on each.

Securing the Mosart Server

The Web Apps half is configured in the Web Apps Configuration Tool and documented in the Viz Mosart Web Apps Guide at the Vizrt Documentation Center, section Configuration Tool. Three things there matter to the rest of this chapter:

  1. In Server Configuration, HTTPS must use Custom certificate mode with your own certificate; the Authentication section only appears in that mode. Enter the Authority URL, Client ID and Client secret from step 1.

  2. On the Studios page, confirm the Mosart main and backup server ports read 55168 once the Mosart servers are on HTTPS.

  3. Add offline_access in the Scopes field. Without it an unattended screen, such as a Timing Display on the studio wall, ends up on a login page some hours after sign-in, once the session expires.

End to end verification

When all four steps are done:

  1. Sign-in works. Open any Mosart web app. You are redirected to your identity provider and returned signed in.

  2. The access token carries the roles. Do this before testing roles at all. Signed in, open the browser console and run:

    fetch('/auth/token').then(r => r.json()).then(d => console.log(JSON.parse(atob(d.accessToken.split('.')[1]))))

    Look for a flat "roles": [...] array, and check that aud matches the OIDC audience configured on the Mosart server. If the roles are missing here but the app opened correctly, they are in the ID token only. Fix that before going on.

  3. A viewer can read but not write. As a user holding only mosart-viewer, the Named Overlays Editor opens read-only, and a direct write to the named overlays API returns 403.

  4. An administrator can write. The same operation as mosart-admin succeeds.

  5. Repeat against the backup server. It is configured separately, so test it separately.

Troubleshooting

Symptom

Cause

403 on writes, 200 on reads

Correct behaviour for a viewer. The feature is working.

403 on reads as well, for a user who has a role

The role is not reaching the Mosart server. Check step 2 of Check it end to end: the roles are probably in the ID token only.

401 on every call, with a token that looks valid

The OIDC audience does not match the token's aud, or the Mosart Remote Control Service was not restarted after the settings changed.

401 from an integration that used to work

Expected, if it authenticates with the REST API key. See Choosing an Authentication Mode.

With authentication enabled, every call to a server returns 500

The Mosart server cannot reach the identity provider. The usual reasons are wrong DNS, a firewall, or an identity provider certificate that is not trusted on that machine. To check, open your Authority URL with /.well-known/openid-configuration appended in a browser on the Mosart server machine. Every OpenID Connect provider answers on that address. When it returns JSON with no certificate warning, the connection is good. Restart the Mosart Remote Control Service afterwards. An invalid token gives 401, never 500.

A signed-in user sees an unauthorized-access screen

That user holds no role for the app. Assign one in the identity provider.

Everything works until a failover

The backup server was not configured, or not restarted.

A Mosart server, main or backup, is red in all web apps, while the desktop applications on that machine look normal

The service cannot load the HTTPS certificate, so its web port never starts. Often the certificate paths are wrong on that particular machine, for example when settings are copied from another server and the paths do not exist locally. Check the Mosart server log for "Failed to load the certificate". Correct the paths under Remote Controller Service > Security and restart the service on that machine.

Certificate warnings, or a blank embedded plugin

The certificate is not trusted on that machine, or its host names do not match what was entered.

503 or 504 from a studio route

Not a security problem. No Mosart server in the pair is currently on air.

The Mosart server settings page opened from the Configuration Tool asks for sign-in, or reports that the administrator role is required

Expected while OIDC is enabled: the web settings editor has no browser sign-in. Edit the settings on that server from a Viz Mosart desktop application instead: in Manus Administrator type settings in the console, or in AV Automation use Devices > Settings.