struktur HTTP_REQUEST_AUTH_INFO (http.h)

Struktur HTTP_REQUEST_AUTH_INFO berisi status autentikasi permintaan dengan handel ke token klien yang dapat digunakan proses penerimaan untuk meniru klien yang diautentikasi.

Struktur ini terkandung dalam struktur HTTP_REQUEST_INFO .

Sintaks

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;

Anggota

AuthStatus

Anggota enumerasi HTTP_AUTH_STATUS yang menunjukkan status autentikasi akhir permintaan.

Jika status autentikasi bukan HttpAuthStatusSuccess, aplikasi harus mengacuhkan anggota struktur ini kecuali AuthStatus, SecStatus, dan AuthType.

SecStatus

Nilai SECURITY_STATUS yang menunjukkan status kegagalan keamanan ketika anggota AuthStatus adalah HttpAuthStatusFailure.

Flags

Bendera autentikasi yang menunjukkan atribut autentikasi berikut:

Atribut Makna
HTTP_REQUEST_AUTH_FLAG_TOKEN_FOR_CACHED_CRED
Token yang disediakan adalah untuk NTLM dan didasarkan pada kredensial cache koneksi Keep Alive (KA).

AuthType

Anggota enumerasi HTTP_REQUEST_AUTH_TYPE yang menunjukkan skema autentikasi yang dicoba atau ditetapkan untuk permintaan tersebut.

AccessToken

Handel ke token klien yang dapat digunakan proses penerima untuk meniru klien yang diautentikasi.

Handel ke token harus ditutup dengan memanggil CloseHandle ketika tidak lagi diperlukan. Token ini hanya berlaku untuk masa pakai permintaan. Aplikasi dapat meregenerasi tantangan 401 awal untuk mengotorisasi ulang ketika token kedaluwarsa.

ContextAttributes

Atribut konteks klien untuk token akses.

PackedContextLength

Panjangnya, dalam byte, dari PackedContext.

PackedContextType

Jenis konteks dalam anggota PackedContext .

PackedContext

Konteks keamanan untuk jenis autentikasi.

Aplikasi dapat mengkueri atribut konteks yang dikemas dengan memanggil API SSPI QueryContextAttributes . Namun, aplikasi harus memperoleh handel kredensial untuk paket keamanan untuk AuthType yang ditunjukkan.

Aplikasi harus memanggil SSPI FreeContextBuffer API untuk membebaskan konteks serial ketika tidak lagi diperlukan.

MutualAuthDataLength

Panjangnya, dalam byte, dari anggota pMutualAuthData .

pMutualAuthData

Data autentikasi timbal balik yang dikodekan Base64 yang digunakan di header WWW-Authenticate.

PackageNameLength

pPackageName

Keterangan

Dimulai dengan HTTP versi 2.0, struktur HTTP_REQUEST berisi struktur HTTP_REQUEST_INFO . Anggota pVoid dari struktur HTTP_REQUEST_INFO menunjuk ke HTTP_REQUEST_AUTH_INFO ketika jenis informasi permintaan adalah HttpRequestInfoTypeAuth.

Ketika aplikasi menerima permintaan dengan struktur ini dan permintaan belum diautentikasi, aplikasi dapat mengirim tantangan 401 awal dengan serangkaian header WWW-Authenticate yang diinginkan dalam struktur HTTP_MULTIPLE_KNOWN_HEADERS . Ketika HTTP Server API menyelesaikan jabat tangan autentikasi, API mengisi struktur HTTP_REQUEST_AUTH_INFO dan meneruskannya ke aplikasi dengan permintaan lagi. Handel ke token akses yang mewakili identitas klien disediakan dalam struktur ini oleh HTTP Server API.

Atribut Konteks

Anggota ContextAttributes disediakan untuk skema berbasis SSPI. Misalnya, aplikasi SSPI dapat menentukan apakah ASC_RET_MUTUAL_AUTH diatur untuk sesi yang saling diautentikasi.

HTTP Server API tidak memberikan waktu kedaluwarsa untuk konteks dalam anggota PackedContext . Aplikasi mungkin memerlukan waktu kedaluwarsa dalam keadaan tertentu, misalnya, ketika penembolokan kredensial NTLM diaktifkan dan kueri aplikasi untuk waktu kedaluwarsa untuk konteks yang di-cache. Jika aplikasi server memerlukan waktu kedaluwarsa untuk konteks klien yang mendasar yang terkait dengan token akses, aplikasi dapat menerima konteks yang dikemas dan memanggil QueryContextAttributes dengan SECPKG_ATTR_LIFESPAN.

Data Autentikasi Timbal Balik

Secara default, HTTP Server API memastikan bahwa data autentikasi bersama ditambahkan ke respons 200 akhir; secara umum, aplikasi server tidak bertanggung jawab untuk mengirim data autentikasi bersama.

Namun, aplikasi dapat menerima data autentikasi bersama dan mengirimkannya dengan respons akhir. Ketika anggota ReceiveMutualAuth dari struktur HTTP_SERVER_AUTHENTICATION_INFO diatur ke true, aplikasi menerima kredensial server untuk autentikasi timbal balik bersama dengan permintaan yang diautentikasi.

Data autentikasi timbal balik yang disediakan dalam anggota pMutualAuthData berisi nilai header WWW-Authenticate yang tepat tanpa nama header. Misalnya, pMutualAuthData menunjuk ke "Negosiasikan ade02938481eca". Aplikasi ini membangun header WWW-Authenticate dengan menambahkan pMutualAuthData yang disediakan sebagai nilai header respons.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Header http.h

Lihat juga

Struktur HTTP Server API Versi 2.0

HTTP_REQUEST_INFO

HTTP_REQUEST_V2