estrutura HTTP_REQUEST_AUTH_INFO (http.h)
A estrutura HTTP_REQUEST_AUTH_INFO contém o status de autenticação da solicitação com um identificador para o token de cliente que o processo de recebimento pode usar para representar o cliente autenticado.
Essa estrutura está contida na estrutura HTTP_REQUEST_INFO .
Sintaxe
typedef struct _HTTP_REQUEST_AUTH_INFO {
HTTP_AUTH_STATUS AuthStatus;
SECURITY_STATUS SecStatus;
ULONG Flags;
HTTP_REQUEST_AUTH_TYPE AuthType;
HANDLE AccessToken;
ULONG ContextAttributes;
ULONG PackedContextLength;
ULONG PackedContextType;
PVOID PackedContext;
ULONG MutualAuthDataLength;
PCHAR pMutualAuthData;
USHORT PackageNameLength;
PWSTR pPackageName;
} HTTP_REQUEST_AUTH_INFO, *PHTTP_REQUEST_AUTH_INFO;
Membros
AuthStatus
Um membro da enumeração HTTP_AUTH_STATUS que indica o status de autenticação final da solicitação.
Se o status de autenticação não for HttpAuthStatusSuccess, os aplicativos deverão ignorar os membros dessa estrutura, exceto AuthStatus, SecStatus e AuthType.
SecStatus
Um valor SECURITY_STATUS que indica a falha de segurança status quando o membro AuthStatus é HttpAuthStatusFailure.
Flags
Os sinalizadores de autenticação que indicam os seguintes atributos de autenticação:
Atributo | Significado |
---|---|
|
O token fornecido é para NTLM e baseia-se em uma credencial armazenada em cache de uma conexão KA (Keep Alive). |
AuthType
Um membro da enumeração HTTP_REQUEST_AUTH_TYPE que indica o esquema de autenticação tentado ou estabelecido para a solicitação.
AccessToken
Um identificador para o token de cliente que o processo de recebimento pode usar para representar o cliente autenticado.
O identificador para o token deve ser fechado chamando CloseHandle quando ele não for mais necessário. Esse token é válido apenas para o tempo de vida da solicitação. Os aplicativos podem regenerar o desafio inicial 401 para autenticar novamente quando o token expirar.
ContextAttributes
Os atributos de contexto do cliente para o token de acesso.
PackedContextLength
O comprimento, em bytes, do PackedContext.
PackedContextType
O tipo de contexto no membro PackedContext .
PackedContext
O contexto de segurança para o tipo de autenticação.
Os aplicativos podem consultar os atributos do contexto empacotado chamando a API QueryContextAttributes do SSPI. No entanto, os aplicativos devem adquirir um identificador de credencial para o pacote de segurança do AuthType indicado.
O aplicativo deve chamar a API FreeContextBuffer do SSPI para liberar o contexto serializado quando ele não for mais necessário.
MutualAuthDataLength
O comprimento, em bytes, do membro pMutualAuthData .
pMutualAuthData
Os dados de autenticação mútua codificados em Base64 usados no cabeçalho WWW-Authenticate.
PackageNameLength
pPackageName
Comentários
A partir da versão HTTP 2.0, a estrutura HTTP_REQUEST contém uma estrutura HTTP_REQUEST_INFO . O membro pVoid da estrutura HTTP_REQUEST_INFO aponta para o HTTP_REQUEST_AUTH_INFO quando o tipo de informação de solicitação é HttpRequestInfoTypeAuth.
Quando o aplicativo recebe uma solicitação com essa estrutura e a solicitação não foi autenticada, ele pode enviar o desafio inicial 401 com o conjunto desejado de cabeçalhos WWW-Authenticate na estrutura HTTP_MULTIPLE_KNOWN_HEADERS . Quando a API do servidor HTTP conclui o handshake de autenticação, ela preenche a estrutura HTTP_REQUEST_AUTH_INFO e a passa para o aplicativo com a solicitação novamente. O identificador para o token de acesso que representa a identidade do cliente é fornecido nessa estrutura pela API do servidor HTTP.
Atributos de contexto
O membro ContextAttributes é fornecido para esquemas baseados em SSPI. Por exemplo, os aplicativos SSPI podem determinar se ASC_RET_MUTUAL_AUTH está definido para uma sessão mutuamente autenticada.
A API do servidor HTTP não fornece o tempo de expiração para o contexto no membro PackedContext . Os aplicativos podem exigir o tempo de expiração em circunstâncias específicas, por exemplo, quando o cache de credenciais NTLM está habilitado e o aplicativo consulta o tempo de expiração para um contexto armazenado em cache. Se o aplicativo de servidor exigir o tempo de expiração para o contexto de cliente subjacente associado ao token de acesso, ele poderá receber o contexto empacotado e chamar QueryContextAttributes com o SECPKG_ATTR_LIFESPAN.
Dados de Autenticação Mútua
Por padrão, a API do servidor HTTP garante que os dados de autenticação mútua sejam adicionados à resposta final de 200; em geral, os aplicativos de servidor não são responsáveis por enviar os dados de autenticação mútua.
No entanto, os aplicativos podem receber os dados de autenticação mútua e enviá-los com a resposta final. Quando o membro ReceiveMutualAuth da estrutura HTTP_SERVER_AUTHENTICATION_INFO é definido como true, os aplicativos recebem as credenciais do servidor para autenticação mútua junto com a solicitação autenticada.
Os dados de autenticação mútua fornecidos no membro pMutualAuthData contêm o valor exato de WWW-Authenticate cabeçalho sem o nome do cabeçalho. Por exemplo, pMutualAuthData aponta para "Negociar ade02938481eca". O aplicativo cria o cabeçalho WWW-Authenticate acrescentando o pMutualAuthData fornecido como um valor de cabeçalho de resposta.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Cabeçalho | http.h |