Web Interfaces (also known as "Webview") provides a way to embed web content directly in the learner's workspace and reduces the need to context-switch between different browser tabs and windows.
Note: The content is loaded in the browser inside of an iframe HTML element which introduces separate challenges and limitations. See About iframes below.
The interface can be configured in three different ways depending on the type of content required to be displayed:
The web content is loaded directly by the user's browser.
This can be used to display any content that is accessible to the user. All web requests to the webserver are sent directly from the browser without Strigo's backend in its way.
To use this, enter the address of the web resource in the configuration popup:
This allows displaying content that is hosted on the user's lab instance.
The web content is proxied through Strigo's backend.
To configure this, use instance.autolab.strigo.io as the hostname in the URL:
In the above example we define two web interfaces for content hosted on the lab instance:
HTTP on port 8080
HTTPS on the default port (443)
This allows displaying any web content that is accessible to Strigo's backend.
Similarly to Lab-hosted, this is proxied through Strigo's backend.
Since Strigo's backend is accessing the web via a set of known IP addresses, this allows customers to restrict access to sensitive content via IP based access list.
More info about Strigo's IP addresses is available here.
Note: Strigo shares its backend IP(s) with all of its customers. This means that any IP based restrictions do not guarantee full privacy as the content will be accessible to any student that knows the URL.
To configure, append the proxy: prefix to the URL:
In the above example we define two web interfaces for content hosted by page.example.com:
HTTP on the default port (80)
HTTPS on port 8443
iframes allow embedding external content in any webpage. However, iframes introduce security concerns that result in some content on the web instructing the browsers to avoid embedding it in foreign websites.
When passing content via Strigo's backend (Lab-hosted or Proxy-accessible), the backend will attempt to remove the blocking instruction, but it cannot guarantee 100% success.
In practice, this works well enough for simple user-generated content. Avoid trying to embed public sites such as GitHub as this will most likely fail.
If you need to upload files via the web interfaces you use in your labs, keep in mind that the file upload limit is currently set at 120MB.