Provedor de Segurança - SAML
A autenticação SAML Single Sign-On (SSO) é definida nos seguintes documentos:
- Afirmaçõ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 SSO, há três funções:
- Principal - O usuário que acessa um serviço restrito.
- Service Provider (SP) - Fornece acesso a serviços restritos.
- Identity Provider (IdP) - Autentica usuários.
App Builder pode ser configurado como um SP ou IdP usando o provedor de segurança apropriado. Este documento abrange o provedor de segurança * SAML*, que é usado para a papel SP. Nesta papel, App Builder delega autenticação a um IdP de externo. Os IdPs suportados incluem:
Para a papel 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 para App Builder e tenta acessar uma página restrita. App Builder redireciona o usuário para o Provedor de Identidade (IdP) por meio da vinculação de redirecionamento SAML (HTTP GET
). Uma vez autenticado, o IdP redireciona o usuário de volta para App Builder usando a ligação SAML Post (HTTP POST
). App Builder valida a resposta SAML, mapeia o identificador de nome para um local App Builder conta de usuário e concede os direitos associados à conta de usuário.
Observe que, antes de redirecionar o usuário para o IdP, App Builder registra a URL da página que o usuário tentou acessar. Depois que o usuário for autenticado, App Builder redireciona o usuário de volta para a página originalmente solicitada. Isso permite deep linking.
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 App Builder por meio da ligação SAML Post (HTTP POST
). Assim como no fluxo SP Iniciado, App Builder valida a resposta SAML, mapeia o identificador de nome para um local App Builder conta de usuário e concede os direitos associados à conta de usuário.
Normalmente, App Builder redirecionará o usuário para sua página inicial após o login bem-sucedido. No entanto, o IdP pode executar um deep link passando o URI no parâmetro RelayState da resposta SAML. Veja o parâmetro AllowRelayStateRedirects abaixo.
Configuração
Fichas
- Issuer: O emissor da asserção SAML. O padrão é o público.
- Audience: restrição de audiência de asserção SAML. O valor deve ser um URI sintaticamente válido.
- Recipient: O destinatário da asserção SAML. Este valor deve ser um URI sintaticamente válido. O padrão é o URI do Assertion Consumer Service (por exemplo, https://example.com/App Builder/signin- SAML).
Cuidado
Por motivos de legado, Audience usa como padrão a URL raiz do aplicativo (por exemplo, https://example.com/App Builder/). É altamente recomendável que você defina explicitamente o Audience 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 é necessário se os parâmetros Request Redirect Endpoint ou SigningCertificate não estiverem definidos. |
URI RelayState | URI de redirecionamento RelayState permitido para uma solicitação iniciada pelo SAML Identity Provider (IdP). Consulte o parâmetro AllowRelayStateRedirects para obter informações adicionais. |
Request Redirect Endpoint | endpoint de solicitação de autenticação SAML Single Sign-On (SSO) para a associação de redirecionamento. Este parâmetro é necessário se o Metadata Endpoint não estiver definido. |
Certificados
| Objetivo | Tipo | Formato | Descrição |TABLEROWEND
| ...TABLEROWEND
| Validação de Assinatura | Certificado X.509 |
- PEM (
CERTIFICATE
) - PKCS#12 (PFX), codificado em base64
O certificado de validação de assinatura é necessário se o Metadata Endpoint não estiver definido. |
Propriedades
O provedor de segurança SAML define os seguintes parâmetros adicionais:
Parâmetro | Padrão | Descrição |
---|---|---|
PermitirRedirecionamentosDeEstadoDeRetransmissão | False | Indica se um sign-on iniciado pelo SAML Identity Provider (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 o login. Por padrão, o parâmetro RelayState pode não conter um URI de redirecionamento. Defina como True para permitir URIs de redirecionamento no parâmetro RelayState. Para proteger contra ataques de retransmissão aberta, o URI deve corresponder ao endpoint_RelayState URI_. |
Ignorar ErrosTls | False | Indica se App Builder 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 resposta deve ser assinada. - Assertion - A afirmação deve ser assinada. - Response - Somente a resposta deve ser assinada. A asserção herda a assinatura da resposta. - AssertionAndResponse - Tanto a afirmação quanto a resposta devem ser assinadas. |
LogPII | False | Indica que informações pessoalmente identificáveis (PII) devem ser registradas. Esta configuração entra em vigor na inicialização. |
Reivindicações
Asserções SAML contêm atributos. Atributos são pares chave/valor multivalorados. App Builder trata atributos de asserção SAML como claims. O nome do atributo mapeia para um identificador de claim.
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 de usuário for provisionada.
A tabela a seguir descreve os mapeamentos de reivindicaçã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 an App Builder usuário. |
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 de 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 Serviço ao Consumidor
O provedor de segurança SAML expõe um único endpoint. O endpoint recebe Respostas SAML. Isso é chamado de Assertion Consumer Service. {{ no such element: dict object['a_ab_uc'] }} o URL do serviço de declaração ao consumidor pode ser parecido com este:
https://example.com/App Builder/signin-SAML
A URL é composta das seguintes partes:
Componente | Descrição |
---|---|
https://example.com/App Builder/ | URL absoluta do App Builder diretório raiz do aplicativo. |
SAML | Nome do provedor de segurança SAML codificado em URL. O valor diferencia maiúsculas de minúsculas. |
Solução de Problemas
Erro "a AudienceRestrictionCondition Não Era Válida 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 definida, 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 e Limitações Conhecidos
O App Builder o provedor de segurança SAML Single Sign-On (SSO) tem as seguintes limitações:
- Somente uma única restrição de público pode ser validada.
- O protocolo de resolução de artefatos não é suportado.
- O protocolo Logout não é suportado.