What is SSO
Single sign-on is a technique that allows to login with a single ID and password to any of several related, yet independent, software systems. It is enough to log in only once in any application and the other related systems doesn't need any authentication. Benefits:
- minimize the risk of the multiple implemented login logic
- needs less subscription and activation from the user
- central user management
Architecture
Simple login
Unatuthorized login
SSO app needs to check the Client-ID in the request header, and should accept the request only from the registered clients
Matomo
Matomo is an analytics tool to follow the usage of the web sites. It is possible to check the used devices (OS, screen resolution), the visitors locations and so on.
Mysql
Matomo needs a database. In this case I choosed MySQL to store the analytics data.
Gatsby.js
Gatsby is an open source frontend framework. Its main advantages are:
- better performance
- higher security
- cheaper, easier scaling
Nginx
Nginx is a very popular and super fast open source web server. In the case of anulu nginx redirects the requests either to an anouther docker container, which executes another nginx instance to reach anulu portal, or it is redirects the requests to the matomo. The commincation is encrypted with ACME, to generate the renewable Let's Encrypt certificates for matomo and for anulu.