Provedor de Segurança - SAML¶
A autenticação SAML Single Sign-On (SSO) é definida nos seguintes documentos:
- Asserções e protocolos para a linguagem de marcação de asserção de segurança OASIS (SAML) V2.0
- SAML Versão 2.0 Errata 05
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 cobre o provedor de segurança * SAML*, que é usado para a papel SP. Nesta papel, o Vinyl delega a autenticação a um IdP de externo. Os IdPs suportados incluem:
Para a papel do IdP, consulte o Provedor de identidade SAML.
Fluxos¶
A especificação SAML Single Sign-On (SSO) define vários fluxos. O provedor de segurança SAML 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 até o Vinyl e tenta acessar uma página restrita. O Vinyl redireciona o usuário para o Provedor de Identidade (IdP) por meio da ligação de redirecionamento SAML (HTTP GET
). Uma vez autenticado, o IdP redireciona o usuário de volta ao Vinyl usando a ligação SAML Post (HTTP POST
). O Vinyl valida a resposta SAML, mapeia o identificador do nome para uma conta de usuário local do Vinyl e concede os direitos associados à conta do usuário.
Observe que, antes de redirecionar o usuário para o IdP, o Vinyl registra a URL da página que o usuário tentou acessar. Depois que o usuário for autenticado, o Vinyl o redirecionará de volta à página solicitada originalmente. Isso permite links diretos.
Provedor de Identidade (idp) Iniciado¶
No fluxo do Provedor de Identidade (IdP), um usuário navega diretamente para o IdP. Uma vez autenticado, o usuário é redirecionado para o Vinyl através do SAML Post binding (HTTP POST
). Tal como acontece com o fluxo iniciado pelo SP, o Vinyl valida a resposta SAML, mapeia o identificador do nome para uma conta de usuário local do Vinyl e concede os direitos associados à conta do usuário.
Normalmente, o Vinyl redirecionará o usuário para sua página inicial após o login bem-sucedido. No entanto, o IdP pode realizar um deep link passando o URI no parâmetro SAML Response RelayState. Consulte o parâmetro AllowRelayStateRedirects abaixo.
Configuração¶
Fichas¶
- Emissor: o emissor da declaração SAML. O padrão é o público.
- Público: restrição de público de declaração SAML. O valor deve ser um URI sintaticamente válido.
- Destinatário: o destinatário da declaração SAML. Este valor deve ser um URI sintaticamente válido. O padrão é o URI do Assertion Consumer Service (por exemplo, SAML).
Cuidado
Por motivos legados, Audience usa como padrão o URL raiz do aplicativo (por exemplo, https://example.com/Vinyl/). É altamente recomendável que você defina explicitamente o Público em vez de confiar no padrão.
Endpoints¶
Tipo | Descrição |
---|---|
Endpoint de metadados | endpoint de metadados do serviço SAML Single Sign-On (SSO). Este parâmetro será necessário se os parâmetros Request Redirect Endpoint ou SigningCertificate forem indefinidos. |
URI do estado de relé | URI de redirecionamento RelayState permitido para uma solicitação iniciada pelo provedor de identidade SAML (IdP). Consulte o parâmetro AllowRelayStateRedirects para obter informações adicionais. |
Solicitar Endpoint de redirecionamento | endpoint de solicitação de autenticação SAML Single Sign-On (SSO) para a associação de redirecionamento. Este parâmetro será obrigatório se o Endpoint de metadados for indefinido. |
Certificados¶
Finalidade | Tipo | Formato | Descrição |
---|---|---|---|
Validação de Assinatura | Certificado X.509 |
| Certificado X.509 usado para validar assinaturas de resposta SAML Single Sign-On (SSO). O certificado de validação de assinatura será necessário se o Metadata Endpoint for indefinido. |
Propriedades¶
O provedor de segurança SAML define os seguintes parâmetros adicionais:
Parâmetro | Padrão | Descrição |
---|---|---|
AllowRelayStateRedirects | False | Indica se um logon iniciado por um provedor de identidade SAML (IdP) pode incluir um URI de redirecionamento no parâmetro RelayState. O URI de redirecionamento é o local para o qual o usuário será redirecionado após fazer login. Por padrão, o parâmetro RelayState não pode conter um URI de redirecionamento. Definido como True para permitir URIs de redirecionamento no parâmetro RelayState. Para se proteger contra ataques de retransmissão aberta, o URI deve corresponder ao endpoint_RelayState URI_. |
IgnorarTlsErrors | False | Indica se o Vinyl deve ignorar erros de certificado HTTPS ao fazer solicitações de back-channel para recuperar os metadados do serviço. Esta configuração é apenas para fins de configuração e teste. Não habilite esta configuração em um sistema em execução. |
Requisito de Assinatura | AssertionOrResponse | Indica se a resposta SAML, a asserção ou ambas devem ser assinadas. As opções incluem: - AssertionOrResponse - A afirmação ou a resposta devem ser assinadas. - Assertion - A afirmação deve ser assinada. - Response - Somente a resposta deverá ser assinada. A afirmação herda a assinatura da resposta. - AssertionAndResponse - Tanto a afirmação quanto a resposta devem ser assinadas. |
LogPII | False | Indica que as informações de identificação pessoal (PII) devem ser registradas. Esta configuração entra em vigor na inicialização. |
Reivindicações¶
As asserções SAML contêm atributos. Os atributos são pares chave/valor com vários valores. O Vinyl trata os atributos de asserção SAML como declarações. O nome do atributo é mapeado para um identificador de declaração.
Por exemplo, dada uma asserção SAML com o seguinte atributo:
<Attribute AttributeName="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name">
<AttributeValue>Arthur.Dent</AttributeValue>
</Attribute>
Mapeando o identificador http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
para o Name
propriedade definirá o nome de usuário como "Arthur.Dent" quando a conta do usuário for provisionada.
A tabela a seguir descreve os mapeamentos de declaração padrão:.
Identificador | Finalidade | Descrição |
---|---|---|
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier | Identificador de Nome | Identificador único e imutável usado para mapear a identidade de externo para um usuário do Vinyl. |
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name | Nome | Nome de usuário. |
http://schemas.xmlsoap.org/claims/Group | Grupo | Associação ao grupo de segurança. |
http://schemas.zudy.com/identity/claims/fullname | Nome Completo | Nome completo. |
http://schemas.zudy.com/identity/claims/displayname | Nome de exibição | Nome amigável. |
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress | Endereço de Email | Endereço Email. |
http://schemas.zudy.com/identity/claims/phonenumber | Número de telefone | Número de telefone. |
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/thumbprint | Impressão digital do certificado X.509. | |
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/x500distinguishedname | Nome distinto do certificado X.509. | |
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dns | Nome DNS do certificado X.509. |
Integração¶
Afirmação de Atendimento ao Consumidor¶
O provedor de segurança SAML expõe um único endpoint. O endpoint recebe respostas SAML. Isso é conhecido como Serviço de Asserção ao Consumidor. Um URL de serviço ao consumidor de declaração de vinil pode ser parecido com isto:
https://example.com/Vinyl/signin-SAML
A URL é composta pelas seguintes partes:
Componente | Descrição |
---|---|
https://example.com/Vinyl/ | URL absoluta do diretório raiz do aplicativo Vinyl. |
SAML | Nome do provedor de segurança SAML codificado em URL. O valor diferencia maiúsculas de minúsculas. |
Solução de Problemas¶
Erro "o AudienceRestrictionCondition Não Era Válido Porque o Público Especificado Não Está Presente em AudienceUris."¶
Este erro indica que o URI do público não corresponde. Certifique-se de que a propriedade Audience tenha sido definida explicitamente. Se não for definido, o padrão será o URL atual, que pode variar de acordo com o usuário. O valor diferencia maiúsculas de minúsculas.
Problemas Conhecidos e Limitações¶
O provedor de segurança Vinyl SAML Single Sign-On (SSO) tem as seguintes limitações:
- Apenas poderá ser validada uma única restrição de público.
- O protocolo de resolução de artefato não é compatível.
- O protocolo Logout não é suportado.