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 |
---|---|
|
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 |