SaToSa Training
SaToSa Training
SaToSa Training
Training by AARC
https://aarc-project.eu
Summary and Actions
✓ Training:
▪ What is SaToSa
▪ How to Install
▪ How to Configure
▪ directory
▪ Proxy_conf and internal_attributes
▪ Saml2
▪ OIDC
▪ Plugins & social
▪ How to extend (MS)
https://aarc-project.eu 2
Summary and Actions
✓ Training:
▪ What is SaToSa
▪ How to Install
▪ How to Configure
▪ directory
▪ Proxy_conf and internal_attributes
▪ Saml2
▪ OIDC
▪ Plugins & social
▪ How to extend (MS)
▪ How to start
https://aarc-project.eu 3
What is SaToSa
https://aarc-project.eu 4
Many to one
• Many SP to a single
IdP
https://aarc-project.eu 5
One to many
• One
• Multiple Idp
• Require a Discovery service
https://aarc-project.eu 6
SAML2 to Social Login
https://aarc-project.eu 7
Translator OIDC - SAML2
https://aarc-project.eu 8
What is SaToSa
Authentication protocols:
• SAML2
• OpenID Connect
• OAuth2
• Social Network (Facebook, Google, OrcID…)
Use Cases
• SAML2<->SAML2
• SAML2<->Social logins
• SAML2<->OIDC
• OIDC<->SAML2
https://aarc-project.eu 9
Summary and Actions
✓ Training:
▪ What is SaToSa
▪ How to Install
▪ How to Configure
▪ directory
▪ Proxy_conf and internal_attributes
▪ Saml2
▪ OIDC
▪ Plugins & social
▪ How to extend (MS)
▪ How to start
https://aarc-project.eu 10
How to install
• Two ways:
• Docker
• Manual installation
• Manual installation (First way)
i. Install dependencies: apt-get install libffi-dev libssl-dev xmlsec1
ii. Download the SATOSA proxy project as a compressed archive and unpack it to <satosa_path>.
iii. Install the application: “pip install <satosa_path>”
• Manual installation (“lazy” way)
• “Pip install satosa”
• Docker is the recommended way of running the proxy
• LINK: https://hub.docker.com/r/satosa/satosa/
https://aarc-project.eu 11
Docker command
https://aarc-project.eu 12
Summary and Actions
✓ Training:
▪ What is SaToSa
▪ How to Install
▪ How to Configure
▪ Directory
▪ Proxy_conf and internal_attributes
▪ Saml2
▪ OIDC
▪ Plugins & social
▪ How to extend (MS)
▪ How to start
https://aarc-project.eu 13
What is SaToSa / Example directory
•Proxy.conf
•Internal_attributes.yaml
• plugins/
• Backends/
• Saml2_backends.yaml
• Google_backends.yaml
• Facebook_backends.yaml
• ..._backends.yaml
• Frontends/
• Openid_connect_frontend.yaml
• saml2_frontend.yaml
• Microservices/
• Account_linking.yaml
• ldap_attributes.yaml
https://aarc-project.eu 14
File hierarchy
https://aarc-project.eu 15
Proxy_conf
https://aarc-project.eu 16
Internal Attributes
https://aarc-project.eu 17
Plugins
• Divided into:
• frontends, receiving requests from clients
• backends, sending requests to target providers
• Micro_services, allows the management and manipulation of attributes
• Require usually 3 parameters:
• Module, module file path
• Name, unique name to identify this plugin
• Config, provide variable to make plugin work correctly
• plugins are customizable
https://aarc-project.eu 18
Saml2 Plugin
https://aarc-project.eu 19
Saml2 Plugin\Parameters
https://aarc-project.eu 20
Saml2 Frontend - Backend Plugin\Metadata
https://aarc-project.eu 22
Saml2 Frontend Plugin\Example(2/3)
https://aarc-project.eu 23
Saml2 Frontend Plugin\Example(3/3)
https://aarc-project.eu 24
Saml2 backend Plugin\Example(1/2)
https://aarc-project.eu 25
Saml2 backend Plugin\Example(2/2)
https://aarc-project.eu 26
OIDC Plugin
• OpenID Connect backend acts as an OpenID Connect Relying Party (RP), making
authentication requests to OpenID Connect Provider (OP)
• supports discovery and dynamic client registration
• OpenID Connect frontend acts as and OpenID Connect Provider (OP), accepting requests
from OpenID Connect Relying Parties (RPs).
• this plugin is NOT stateless
https://aarc-project.eu 27
OpenID Frontend\Example
https://aarc-project.eu 28
OpenID Backend\Example
https://aarc-project.eu 29
Social login
• Social login plugins can be used as backends for the proxy, allowing the proxy to act as a
client to the social login services.
• Available social:
• Google
• Facebook
• Github
• Linkedin
• OrcID
• Oauth
https://aarc-project.eu 30
Summary and Actions
✓ Training:
▪ What is SaToSa
▪ Who is SaToSa
▪ How to Install
▪ How to Configure
▪ directory
▪ Proxy_conf and internal_attributes
▪ Saml2
▪ OIDC
▪ Plugins & social
▪ How to extend (MS)
▪ How to start
https://aarc-project.eu 31
Micro services
https://aarc-project.eu 32
Custom plugins
https://aarc-project.eu 33
Summary and Actions
✓ Training:
▪ What is SaToSa
▪ Who is SaToSa
▪ How to Install
▪ How to Configure
▪ directory
▪ Proxy_conf and internal_attributes
▪ Saml2
▪ OIDC
▪ Plugins & social
▪ How to extend (MS)
▪ How to start
https://aarc-project.eu 34
Generate metadata
https://aarc-project.eu 35
Running proxy application
• SATOSA proxy is a Python WSGI application and so it requires to be run using any WSGI
compliant web server.
• Different solutions:
• Using Gunicorn
• Using Apache HTTP Server and mod_wsgi
https://aarc-project.eu 36
Gunicorn
https://aarc-project.eu 37
Apache HTTP Server and mod_wsgi
https://aarc-project.eu 38
Thank you
Any Questions?
https://aarc-project.eu