BrowserStack Documentation
BrowserStack Documentation
Implementation of
BrowserStack
Licensing, Administration and Governance
7th November, 2014
2
Problem Statement
Licensing
Issues
The cause of this issue was that the application allows two different forms
of testing:
On accessing public URLs, it was observed that instead of using the firm’s
proxy gateway, the websites were being accessed through BrowserStack’s
remote proxy gateway. This resulted in users being able to access public
websites that are restricted by the firm’s firewall.
Issue Handling
3
request. Once this has been done, an account for the user will be created
on BrowserStack. User accounts are created through an administration
console accessible through the application, which are then added to
teams/sub-teams. User accounts can only be created, modified or deleted by
a DevTools administrator. The account for the requestor is created using
his/her Barclays email address. The requestor is then notified to join
BrowserStack via email where they must set up a password.
While requesting for a BrowserStack account, users will need to attest that
they will use BrowserStack in accordance with Barclays’ IT Security
Policies and Standards. A link to the security policies will be made
available as part of the request.
Once access has been granted, all users will access the BrowserStack login
page to connect. Once connected, inactivity of 5 minutes will lead to a
teardown of the connection (see Fig 4) and the user must re-connect.
On learning that a user has left the organisation or no longer requires use
of the BrowserStack application, a DevTools administrator will remove the
user’s account on the BrowserStack application through the user management
page within 24 hours. Users who haven’t been using the application over the
period of a month will also be removed from the system on the basis that
access to the application is no longer required. This will also be managed
by a DevTools administrator. As part of the request process, users will be
notified that access permissions will be recycled on a monthly basis, and
inactive user accounts will be removed as part of this process.
The DevTools administration team will work closely with the BrowserStack
team to ensure that user actions are correctly logged and audited at all
times. This includes user sign in information e.g. the date and time that a
user last logged in to the system etc.
4
Architecture
Internal Architecture
BrowserStack Architecture
5
TCP Level Proxy: This enables a TCP level connection between the
remote browser and local servers. This allows for testing of HTTPS
websites and technologies such as WebSockets.
HTTP Server: This applies to local folder testing only. When the user
wishes to test local HTML design files, BrowserStack Local starts an
HTTP Server within the app on a random unprivileged (>40000) port.
This HTTP server has read-only access to the folder mentioned by the
user.
BrowserStack Local makes a REST call using the user’s access key to
BrowserStack.com.
BrowserStack.com chooses a repeater for establishing a secure
connection for Local Testing. This repeater exists within the
BrowserStack Architecture.
BrowserStack.com supplies BrowserStack Local with the information
necessary to establish a connection to the repeater.
BrowserStack Local initiates a connection to the repeater on port
443, using our custom SSL-encrypted protocol.
A secure bi-directional and persistent connection is established
between the end user machine and the repeater. Secure WebSockets are
used as part of the communication framework.
6
Figure 3: Data Flow
7
BrowserStack.com confirms to BrowserStack Local that the virtual
machine has been disconnected.
BrowserStack Local closes any open connections it had established to
the local servers, ending the local testing session.
Recommended Setup
Figure 6: Setup
8
Type 1: HTTP(S) requests to BrowserStack.com in the form of web
requests (when the website is opened in the user’s browser) and AJAX
calls (for setting up Local Testing) at port 80 and 443.
Type 2: Secure WebSocket (WSS) connections to the repeater
(*.BrowserStack.com) at port 443.
The proxy server should support WebSockets and the CONNECT method to allow
TSL/SSL connections.