Ir para o conteúdo

Provedor de Segurança - Provedor de Identidade SAML

A autenticação SAML Single Sign-On (SSO) é definida nos seguintes documentos:

Em um cenário de SSO, existem três funções:

  • Principal - O usuário que acessa um serviço restrito.
  • Provedor de Serviços (SP) - Fornece acesso a serviços restritos.
  • Provedor de identidade (IdP) - Autentica usuários.

O Vinyl pode ser configurado como SP ou IdP usando o provedor de segurança apropriado. Este documento abrange o provedor de segurança * SAML IdP*. O provedor de segurança SAML IdP autentica usuários em nome de um SP de externo. Normalmente, o externo é outra instância do Vinil.

Para a papel SP, consulte o SAML provedor de segurança.

Fluxos

A especificação SAML Single Sign-On (SSO) define vários fluxos. O provedor de segurança SAML IdP oferece suporte aos seguintes fluxos SAML SSO:

  • Provedor de serviços (SP) iniciado
  • Provedor de identidade (IdP) iniciado

Provedor de Serviços (sp) Iniciado

No fluxo iniciado pelo Provedor de Serviços (SP), um usuário navega para um serviço de externo e tenta acessar um recurso restrito. O serviço de externo redireciona o usuário para o Vinyl por meio da ligação de redirecionamento SAML (HTTP GET). Se o usuário ainda não tiver se autenticado, o Vinyl redireciona o usuário para o formulário de login.

Depois que o usuário for autenticado, o Vinyl redirecionará o usuário de volta ao serviço de externo usando a ligação SAML Post (HTTP POST). O serviço de externo valida a resposta SAML, mapeia o identificador de nome para uma conta de usuário local e concede os direitos associados a essa conta de usuário.

No fluxo SP inicializado, o serviço de externo normalmente registra a URL que o usuário tentou acessar antes de executar o redirecionamento. Assim que o processo de SSO SAML for concluído, o SP redirecionará o usuário para esse URL. Isso permite links diretos.

Provedor de Identidade (idp) Iniciado

No fluxo iniciado pelo Provedor de Identidade (IdP), um usuário segue um link para o Serviço de Logon Único. Se o usuário ainda não tiver se autenticado, o Vinyl redireciona o usuário para o formulário de login.

Depois que o usuário for autenticado, o Vinyl redirecionará o usuário de volta ao serviço de externo usando a ligação SAML Post (HTTP POST). Tal como acontece com o fluxo iniciado pelo SP, o serviço de externo valida a resposta SAML, mapeia o identificador de nome para uma conta de usuário local e concede os direitos associados a essa conta de usuário.

Como o fluxo do IdP não é iniciado pelo SP de externo, o usuário normalmente é redirecionado para uma página padrão assim que o processo de SSO SAML for concluído. No entanto, alguns SPs permitirão que o IdP redirecione o usuário para um local arbitrário, passando uma URL no parâmetro RelayState.

Configuração

Fichas

  • Emissor: emissor de declaração SAML.
  • Público: restrição de público de declaração SAML. O valor deve ser um URI sintaticamente válido.
  • Destinatário: destinatário da declaração SAML. O valor deve ser um URI sintaticamente válido. O padrão é Assertion Consumer Service.
  • ID da entidade: identificador da entidade SAML. O valor deve ser um URI sintaticamente válido. O padrão é Emissor.
  • Assunto: NameId SAML. O padrão é o nome de usuário atual.

Endpoints

Tipo Descrição
Afirmação Atendimento ao Consumidor endpoint do provedor de serviços (SP) de terceiros que recebe mensagens de resposta SAML (SAMLResponse).
Serviço de logon único Endpoint que recebe mensagens de solicitação de autenticação (AuthNRequest). Padrões baseados no URL atual. Consulte Serviço de logon único abaixo.

Certificados

Finalidade Tipo Formato Descrição
Assinatura Certificado X.509 com Chave Privada PKCS#12 (PFX), protegido por senha, codificado em base64 Certificado X.509 com chave privada. Usado para assinar a resposta SAML Single Sign-On (SSO).

Conforme observado acima, o Vinyl requer um certificado de assinatura PKCS#12 codificado em base64 com chave privada. O processo para gerar um certificado está fora do escopo deste documento. No entanto, para fins ilustrativos, os comandos a seguir demonstram como gerar um certificado compatível usando o utilitário de linha de comando OpenSSL.

O comando a seguir gera uma chave privada (key.pem) e certificado autoassinado (cert.pem):

$ openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -nodes -days 1095 -subj "/CN=localhost/O=Vinyl"

O comando a seguir gera um arquivo PKCS#12 (cert.pfx) contendo a chave privada e o certificado:

$ openssl pkcs12 -export -in cert.pem -inkey key.pem -out cert.pfx

Você será solicitado a fornecer uma senha. O Vinyl precisará saber essa senha para descriptografar a chave privada.

Finalmente, o seguinte comando codifica em base64 o arquivo PKCS#12:

$ openssl base64 -in cert.pfx -out cert.txt -A

Copie e cole o conteúdo de cert.txt em Vinil.

Propriedades

O provedor de segurança SAML IdP define os seguintes parâmetros adicionais:

Parâmetro Padrão Descrição
AllowRelayStatePassthrough False Indica se valores RelayState arbitrários recebidos do cliente devem ser passados para o provedor de serviços SAML (SP).

Observe que isso se aplica apenas a um logon iniciado por um Provedor de Identidade (IdP): em um logon iniciado por SP, o SP determina o valor do parâmetro RelayState.

Por padrão, o IdP SAML não passará o valor RelayState para o SP. Definido como True para permitir que valores RelayState sejam passados para o SP.
CacheDuration Duração do cache de metadados SAML IdP em segundos.
RelayState Valor passado para o provedor de serviços SAML (SP) no parâmetro RelayState.

Observe que isso se aplica apenas a um logon iniciado por um Provedor de Identidade (IdP): em um logon iniciado por SP, o SP determina o valor do parâmetro RelayState.

Os valores aceitáveis variam de acordo com a implementação. Algumas implementações SAML SP aceitam um URI de redirecionamento.
VálidoAté Data de expiração dos metadados SAML IdP. Espera uma data formatada em ISO 8601, como:
  • 2025-06-09
  • 2025-06-09T16:13:52+00:00
  • 2025-06 -09T16:13:52Z

Reivindicações

O provedor de segurança SAML IdP mapeia as propriedades do usuário para declarações. As declarações são incorporadas na declaração SAML como atributos. O nome do atributo corresponde ao identificador da declaração.

Por exemplo, se a propriedade Name tiver sido mapeada para o identificador de declaração http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name, a asserção SAML conteria o seguinte atributo:

<Attribute AttributeName="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name">
  <AttributeValue>Arthur.Dent</AttributeValue>
</Attribute>

A propriedade Group pode ser usada para passar a associação ao grupo de segurança. Por padrão, as asserções SAML não incluem grupos. Você deve registrar explicitamente os grupos que devem ser incluídos.

Para incluir a associação ao grupo, crie um grupo de provedores de segurança e mapeie-o para um grupo Vinyl. Se o usuário for membro do grupo Vinyl, o grupo do provedor de segurança será adicionado à asserção. O identificador do grupo do provedor de segurança é usado. Se o identificador for nulo, o nome será usado.

Integração

O provedor de segurança SAML IdP expõe os seguintes endpoints:

  • Serviço de logon único
  • Endpoint de metadados

Serviço de Logon Único

O Serviço de Logon Único recebe mensagens de solicitação SAML (AuthNRequest). O URL do serviço de logon único terá o seguinte formato:

https://example.com/Vinyl/signin-SAMLIDP

A URL é composta pelas seguintes partes:

Componente Descrição
https://example.com/Vinyl/ URL absoluta do diretório raiz do aplicativo Vinyl.
SAMLIDP Nome do provedor de segurança IdP SAML codificado em URL. O valor diferencia maiúsculas de minúsculas.

Endpoint de Metadados

O Metadata Endpoint publica um documento de metadados (Metadados). O URL do Endpoint de metadados terá o seguinte formato:

https://example.com/Vinyl/metadata-SAMLIDP

A URL é composta pelas seguintes partes:

Componente Descrição
https://example.com/Vinyl/ URL absoluta do diretório raiz do aplicativo Vinyl.
SAMLIDP Nome do provedor de segurança IdP SAML codificado em URL. O valor diferencia maiúsculas de minúsculas.

Problemas Conhecidos e Limitações

O provedor de segurança Vinyl SAML IdP tem as seguintes limitações:

  • Somente poderá ser fornecida uma única restrição de público.
  • As respostas SAML não podem ser criptografadas.
  • As respostas SAML não podem ser assinadas.
  • As asserções SAML são sempre assinadas.
  • O protocolo de resolução de artefato não é compatível.
  • O protocolo Logout não é suportado.