Saltar para o conteúdo

Single Sign-On

O Single Sign-On (SSO) autentica o operador em um provedor de identidade corporativo, cadastrado no cadastro da API (ssoProviders). O fluxo acontece no navegador, por redirecionamentos, e termina com um token Bearer entregue ao Riversoft Console Portal ou à sua aplicação.

Importante

Os retornos (/auth/api/v1/sso/saml2/acs e /auth/api/v1/sso/oauth2) são chamados pelo provedor de identidade durante o fluxo. A sua aplicação não deve simular essas chamadas.

    sequenceDiagram
    participant U as Navegador
    participant A as Riversoft STCP Gemini API
    participant P as Provedor de identidade
    U->>A: GET /auth/api/v1/sso/login?provider=<nome>
    A-->>U: 307 Redirecionamento ao provedor
    U->>P: Autenticação do operador
    P-->>U: Retorno com SAMLResponse (SAML 2.0) ou code (OAuth 2.0)
    U->>A: POST /saml2/acs ou GET /oauth2
    A-->>U: 303 para sso_login_redirect?token=...&token_type=Bearer&scope=...
  

Listar os provedores

GET /info/sso/providers lista os provedores habilitados, sem exigir token:

curl -s "$API_BASE/info/sso/providers"
[
  {"Name": "EntraID", "Type": "oauth2"},
  {"Name": "diretorio-corporativo", "Type": "ldap"}
]

Os provedores saml2 e oauth2 usam o fluxo desta página. Os provedores ldap usam o login com LDAP.

Iniciar o login

Abra no navegador a URL de login com o nome do provedor:

https://api.exemplo.com:33070/auth/api/v1/sso/login?provider=EntraID

A API responde 307 e encaminha o navegador ao provedor. Com um provedor inexistente ou de outro tipo, responde 400, em texto.

Retorno do provedor

Depois de autenticar o operador, o provedor devolve o navegador à API:

ProtocoloRetornoDados recebidos
SAML 2.0POST /auth/api/v1/sso/saml2/acsSAMLResponse e RelayState
OAuth 2.0 / OpenID ConnectGET /auth/api/v1/sso/oauth2code e state

Cadastre no provedor o endereço de retorno informado em ssoRedirectUrlOrEndpoint, no cadastro do provedor (esquema SsoProvider da Especificação OpenAPI).

A API valida a resposta, identifica o operador pelo nome recebido do provedor e redireciona o navegador (303) para o endereço de sso_login_redirect, com o token na query string:

https://console.exemplo.com/?token=<access_token>&token_type=Bearer&scope=<permissões em JSON, codificadas em Base64>
ParâmetroDescrição
tokenToken de acesso, usado como Bearer nas chamadas seguintes.
token_typeSempre Bearer.
scopePermissões do operador, em JSON codificado em Base64.

Em caso de falha, o redirecionamento leva o parâmetro error, com o motivo.

Nota

O operador precisa existir na Riversoft STCP Gemini API com o mesmo nome recebido do provedor. No login por SSO, a 2FA da API não é aplicada: os fatores de autenticação são os exigidos pelo provedor de identidade.

Logout federado

O logout usa a rota comum, DELETE /disconnect/api/v3/logout. Com sso_logout_end_session habilitado, a resposta traz em redirect o endereço de logout do provedor; redirecione o navegador para ele.

No SAML 2.0, o provedor conclui o logout chamando POST /auth/api/v1/sso/saml2/slo, e a API redireciona o navegador (303) para o destino final.

Cuidado

O token chega na query string do redirecionamento. Leia-o assim que a página carregar, remova-o da URL e não o registre em logs.

Próximos passos