Esta aplicação contém um provedor de serviço (SP) ASP.NET Core que utiliza o protocolo SAML2 para realizar autenticação com diferentes provedores de login social que utilizam OAuth2 e OpenID Connect (OIDC): Facebook e Google.
.
├── saml2-social # configurações do proxy satosa
│ ├── internal_attributes.yaml
│ ├── metadata
│ │ ├── frontend_facebook.xml
│ │ ├── frontend_google.xml
│ │ └── sp.xml
│ ├── pki
│ │ ├── frontend.crt
│ │ └── frontend.key
│ ├── plugins
│ │ ├── facebook_backend.yaml
│ │ ├── google_backend.yaml
│ │ └── mirror_frontend.yaml
│ └── proxy_conf.yaml
├── sp # provedor de serviço
│ ├── appsettings.json
│ ├── AttributeMap
│ │ └── SamlUri.cs
│ ├── Certificates
│ │ ├── mycert.crt
│ │ ├── mykey.key
│ │ └── newcert.pfx
│ ├── Controllers
│ │ ├── HomeController.cs
│ │ ├── LogoutController.cs
│ │ └── UsersController.cs
│ ├── Program.cs
│ ├── saml-csharp.csproj
│ ├── saml-csharp.sln
│ └── Views
│ ├── Home
│ │ └── Index.cshtml
│ └── Users
└── └── Index.cshtml
-
Clone o repositório:
git clone https://github.com/luizakuze/satosa-proxy cd satosa-proxy
-
Configure os provedores de login social:
-
Google:
Acesse o Google Cloud Console, crie um novo OAuth Client ID e copie oclient_id
e oclient_secret
para o arquivosaml2-social/plugins/google_backend.yaml
-
Facebook:
Acesse o Facebook for Developers, registre um novo aplicativo e insira as credenciais no arquivosaml2-social/plugins/facebook_backend.yaml
-
-
Instalar dependência em ambiente virtual:
python3 -m venv .venv source .venv/bin/activate pip install --upgrade pip pip install "satosa[gunicorn]"
-
Execute a aplicação do SP (ASP.NET Core):
dotnet restore sp/saml-csharp.csproj dotnet run --project sp/saml-csharp.csproj
-
Inicie o SATOSA com Gunicorn usando o script de execução:
chmod +x run.sh ./run.sh
Caso deseje obter os metadados gerados pelo satosa para cada backend configurado, execute:
satosa-saml-metadata saml2-social/proxy_conf.yaml \
saml2-social/pki/frontend.key \
saml2-social/pki/frontend.crt \
--split-frontend \
--split-backend \
--dir saml2-social/metadata