Pular para o conteúdo principal

Questão de Segurança da Informação — SAML — VUNESP 2024

Segurança da InformaçãoSAML
Código
vu212351
Banca
VUNESP
Órgão
Pref SBC
Ano
2024
Cargo
Ana TIC ( )

No contexto do SAML 2.0, assinale a alternativa que indica o elemento que é emitido de um provedor de serviços para um provedor de identidade quando um principal (ou uma entidade agindo em seu nome) deseja obter uma asserção contendo uma declaração de autenticação (authentication statement). Considere que samlp é o prefixo que denota o namespace do SAML.

  1. A<samlp:Assertion>
  2. B<samlp:AttributeStatement>
  3. C<samlp:Conditions>
  4. D<samlp:GetId>
  5. E<samlp:AuthnRequest>
Revelar gabarito e comentário

GabaritoE — <samlp:AuthnRequest>

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

SAML 2.0 — AuthnRequest

Gabarito: letra E. No SAML 2.0, o elemento que o provedor de serviços (SP) envia ao provedor de identidade (IdP) para solicitar uma asserção de autenticação é o <samlp:AuthnRequest> — o prefixo samlp denota o namespace do protocolo SAML, que contém as mensagens de requisição/resposta, enquanto o prefixo saml (sem o "p") denota o namespace da asserção. É exatamente essa distinção de namespaces que a questão explora.

O SAML (Security Assertion Markup Language) é um padrão baseado em XML para troca de dados de autenticação e autorização entre sistemas, amplamente usado em soluções de Single Sign-On (SSO). No fluxo típico, o usuário tenta acessar um recurso no Service Provider (SP); o SP, então, redireciona o usuário para o Identity Provider (IdP) para que ele se autentique. Para iniciar esse processo, o SP envia uma mensagem de protocolo ao IdP — essa mensagem é o AuthnRequest. O IdP, após autenticar o usuário, responde com uma mensagem contendo a asserção SAML (elemento <saml:Assertion>), que carrega as declarações (statements) sobre o sujeito, como a AuthenticationStatement.

A pegadinha central está nos namespaces: o prefixo samlp (SAML Protocol) é usado para os elementos de protocolo, como AuthnRequest e Response; já o prefixo saml (SAML Assertion) é usado para os elementos de asserção, como Assertion, AttributeStatement e Conditions. A alternativa correta é a única que usa o prefixo samlp e nomeia corretamente o elemento de requisição. As demais alternativas ou usam o prefixo errado (deveriam usar saml), ou nomeiam elementos que não existem no padrão, ou descrevem elementos que não são emitidos pelo SP nesse contexto.

Para fixar: o SP solicita autenticação com um AuthnRequest (protocolo, samlp); o IdP responde com uma Response (protocolo, samlp) que contém a Assertion (asserção, saml). A Assertion é o "token" que o IdP emite, e dentro dela estão as declarações, como AuthenticationStatement e AttributeStatement. O Conditions é um elemento da asserção que define condições de validade (como prazo de expiração).

Guarde essa fronteira: quem pede é o SP, quem emite é o IdP; o pedido é AuthnRequest, a resposta é Assertion. É nessa distinção que as alternativas se dividem.

SAML 2.0 — fluxo SP ↔ IdP
  • 1SP pede (protocolo, samlp)
    • AuthnRequest
  • 2IdP responde (protocolo, samlp)
    • Response
  • 3IdP emite (asserção, saml)
    • Assertion
      • AuthenticationStatement
      • AttributeStatement
      • Conditions
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

<samlp:Assertion> — erro duplo. Primeiro, o prefixo está errado: Assertion pertence ao namespace de asserção (saml), não ao de protocolo (samlp). Segundo, a Assertion é emitida pelo IdP em resposta ao pedido, não pelo SP para solicitar autenticação. O elemento correto seria <saml:Assertion>.

Alternativa B — ❌ Incorreta

<samlp:AttributeStatement> — também usa o prefixo errado (samlp em vez de saml). Além disso, AttributeStatement é uma declaração que carrega atributos do usuário (como nome, e-mail, perfil) e fica dentro da Assertion emitida pelo IdP — não é uma mensagem de requisição enviada pelo SP.

Alternativa C — ❌ Incorreta

<samlp:Conditions> — mesmo erro de namespace: Conditions é um elemento da asserção (saml), não do protocolo (samlp). Ele define as condições de validade da asserção (ex.: período de validade, público-alvo) e é parte da Assertion emitida pelo IdP, não uma requisição do SP.

Alternativa D — ❌ Incorreta

<samlp:GetId> — esse elemento não existe no padrão SAML 2.0. É um distrator puro, inventado para confundir. Não há nenhuma mensagem de protocolo chamada "GetId" no SAML.

Alternativa E — ✅ Correta ⟵ GABARITO

<samlp:AuthnRequest> — é exatamente o elemento de protocolo (namespace samlp) que o Service Provider envia ao Identity Provider para solicitar uma asserção de autenticação. O AuthnRequest contém informações como o ID da requisição e a identificação do SP, e o IdP responde com uma Response contendo a Assertion.

NÃO CAIA NESSA!

A banca explora a confusão entre os dois namespaces do SAML: samlp (protocolo — mensagens de requisição/resposta) e saml (asserção — o token em si). O candidato que decora apenas os nomes dos elementos, sem saber a qual namespace pertencem, tende a marcar Assertion ou AttributeStatement — mas eles usam o prefixo saml, não samlp. Além disso, a alternativa D (GetId) é um elemento fictício, criado para testar se você conhece os nomes reais das mensagens.

PEGA ESSA DICA!

Para não errar, associe: P de samlp = Protocolo (mensagens de troca: AuthnRequest, Response); saml sem "p" = Asserção (o token: Assertion, AttributeStatement, Conditions). E lembre do fluxo: SP pede (AuthnRequest) → IdP emite (Assertion).

Gabarito: letra E

Link permanente: /questoes/vu212351