Hitelesítés (BITS)
A BITS támogatja az alapszintű hitelesítést, a Passport-hitelesítést és számos kihívás-válasz hitelesítési sémát. Ha a kiszolgáló vagy proxy felhasználói hitelesítést igényel, használja a IBackgroundCopyJob2::SetCredentials függvényt a felhasználó hitelesítő adatainak megadásához. A BITS a CryptoAPI használja a hitelesítő adatok védelmére.
Az alapszintű hitelesítés hitelesítő adatainak beállításához használja a Hitelesítő adatok beállítása függvényt a felhasználónév és a jelszó megadásához. Csak alapszintű hitelesítést kell használnia https:// védett biztonságos webhelyekkel; ellenkező esetben a felhasználónév és a jelszó látható lesz a felhasználók számára.
A felhasználónevet és a jelszót beágyazhatja az URL-címbe. Ez nem tekinthető megfelelő biztonsági gyakorlatnak, és az RFC 3986-ban elavult (3.2.1. szakasz).
A Passport hitelesítéshez a BITS csak a explicit hitelesítő adatokat támogatja, a fiókhoz kötött implicit hitelesítő adatokat nem.
A kihívások/válaszok hitelesítéséhez a BITS megszemélyesíti a felhasználót, és Snego használatával határozza meg, hogy melyik kihívás-válasz hitelesítést használja, például az NTLM-et vagy a Kerberos-protokollt. A BITS által támogatott kihívás-/válaszsémák listáját a BG_AUTH_SCHEMEcímű témakörben találja.
A BITS-feladatok meghiúsulhatnak, ha a kiszolgáló virtuális könyvtára névtelen hitelesítéssel és egy másik hitelesítési sémával rendelkezik, és ha az ACL-ek védik a virtuális könyvtárat vagy fájlokat töltenek le. Ha például egy feladat "hozzáférés megtagadva" állapotban meghiúsul, ha a virtuális könyvtárban engedélyezve van a névtelen és integrált hitelesítés, és a fájl tartalmaz egy ACL-t, amely lehetővé teszi, hogy csak Ben olvassa be a fájlt. Ez azért fordul elő, mert a virtuális könyvtár engedélyezi a névtelen hozzáférést, ezért az IIS nem hitelesíti explicit módon a Bent (Ben hitelesítő adatait nem használják a fájl eléréséhez, és a hozzáférés megtagadva).
Implicit hitelesítő adatok használata
Ha a felhasználó implicit (bejelentkezési) hitelesítő adatait szeretné használni az NTLM- vagy Kerberos-hitelesítéshez, hívja meg az IBackgroundCopyJob2::Credentials metódust, és állítsa be a UserName és JelszóBG_BASIC_CREDENTIALS NULL. Ha implicit hitelesítő adatokat ad meg egy proxyhoz, a BITS az implicit hitelesítő adatokat is használja a kiszolgálóhitelesítéshez, kivéve, ha explicit kiszolgálói hitelesítő adatokat ad meg.
További információ a szolgáltatásokról: Szolgáltatásfiókok és BITS.
Módosíthatja az LMCompatibilityLevel vagy UseLMCompat beállításjegyzék-értéket is; Ezeket az értékeket azonban csak akkor módosítsa, ha olyan meglévő alkalmazással rendelkezik, amely nem módosítható a Hitelesítő adatok beállítása metódus meghívásához.
A BITS implicit hitelesítő adatokat használ a hitelesítéshez, ha az LMCompatibilityLevel beállításjegyzék-értéke kettő vagy nagyobb, és nem hívta meg a Hitelesítő adatok beállítása metódust. Az LMCompatibilityLevel beállításjegyzék-értékének teljes elérési útja HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA\LmCompatibilityLevel.
Vegye figyelembe, hogy a LMCompatibilityLevel beállításjegyzék-értékének módosítása hatással lehet a számítógépen futó egyéb alkalmazásokra és szolgáltatásokra.
Ha a LMCompatibilityLevel beállításjegyzék-értékének beállítása probléma, akkor a UseLMCompat beállításjegyzék-értéket a HKEY_LOCAL_MACHINE\Szoftver\Microsoft\Windows\CurrentVersion\BITSalatt hozhatja létre. A beállításjegyzék értéke egy DWORD. Az alábbi táblázat a UseLMCompat lehetséges értékeit sorolja fel:
Érték | Leírás |
---|---|
0 | A BITS implicit hitelesítő adatokat küld, amikor a kiszolgáló NTLM- vagy Kerberos-hitelesítő adatokat kér. |
1 | A BITS csak akkor küld implicit hitelesítő adatokat, ha az ügyfélszámítógép LMCompatibilityLevel beállításjegyzék-értéke 2-nél nagyobb vagy egyenlő. |
2 | A BITS csak akkor küld implicit hitelesítő adatokat, ha az alkalmazás a Hitelesítő adatok beállítása metódust hívja meg. |
A BITS a "2" alapértelmezett értéket használja a UseLMCompat beállításjegyzék-értékhez, ha a beállításjegyzék értéke nem létezik.
Tanúsítványok használata ügyfél-/kiszolgálóhitelesítéshez
Az ügyfelek és kiszolgálók biztonságos kommunikációja során az ügyfelek és a kiszolgálók digitális tanúsítványokkal kölcsönösen hitelesíthetik egymást. A BITS automatikusan támogatja a tanúsítványalapú kiszolgálóhitelesítést a biztonságos HTTP-átvitelekhez. A BITS-nek a kölcsönös hitelesítéshez szükséges ügyféltanúsítvány megadásához hívja meg a IBackgroundCopyJobHttpOptions::SetClientCertificateByID vagy IBackgroundCopyJobHttpOptions::SetClientCertificateByName metódust.
Ha egy webhely elfogadja, de nem igényel SSL-ügyféltanúsítványt, és a BITS-feladat nem ad meg ügyféltanúsítványt, a feladat ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED (0x80072f0c) sikertelen lesz.
Felhasználóspecifikus beállításokat igénylő hitelesített proxyforgatókönyvek kezelése
Ha olyan környezetben használ BITS-t, amely proxyhitelesítést igényel, miközben a számítógép hálózati tartományában nem használható NTLM- vagy Kerberos-hitelesítő adatokkal rendelkező fiókként fut, további lépéseket kell tennie a megfelelő hitelesítéshez egy másik, a tartományban hitelesítő adatokkal rendelkező felhasználói fiók hitelesítő adataival. Ez egy tipikus eset, amikor a BITS-kód rendszerszolgáltatásként fut( például LocalService, NetworkService vagy LocalSystem), mivel ezek a fiókok nem rendelkeznek használható NTLM- vagy Kerberos-hitelesítő adatokkal.
A BITS-ben használt proxyészlelési logika a következőket teszi, ha egy hálózati segédjogkivonat (BG_TOKEN_NETWORK) be van állítva:
- Ha IBackgroundCopyJob::SetProxySettings volt meghívva BG_JOB_PROXY_USAGE_PRECONFIG, olvassa el a helyi IE proxybeállításokat a feladattulajdonosi jogkivonat környezetének megszemélyesítésével WinHttpGetIEProxyConfigForCurrentUser. A Windows 10 1809-es verziójától kezdve (10.0; Az 17763-os buildben a segítő jogkivonat identitása használatos ehhez a lépéshez.
- Ha IBackgroundCopyJob::SetProxySettingsBG_PROXY_USAGE_AUTODETECT volt meghívva, vagy ha a BG_JOB_PROXY_USAGE_PRECONFIG-eset IE-beállításai automatikus észlelést vagy automatikus konfigurációs URL-címet ad meg, akkor végezzen automatikus proxyészlelést vagy webes proxy automatikus észlelési protokollt (WPAD) a WinHttpGetProxyForUrlsegítségével.
Ezt követően a segédjogkivonat-megszemélyesítés a proxy- vagy kiszolgálóhitelesítéshez használható.
A Windows 10 1809-es verziójától kezdve (10.0; 17763-es build) a felhasználóspecifikus hitelesítő adatokkal rendelkező hitelesített proxyforgatókönyv egyszerűbb.
- A BITS-feladat Hitelesítő adatok beállítása metódusának meghívása BG_AUTH_SCHEME_NEGOTIATE, UserNameNULL, Jelszó beállítása NULL, Cél pedig BG_AUTH_TARGET_PROXY. Ez azt eredményezi, hogy a felhasználói fiók implicit hitelesítő adatait a proxyval és a kiszolgálóval történő NTLM- és Kerberos-hitelesítéshez kell használni.
- Hívja meg IBackgroundCopyJob::SetProxySettingsBG_JOB_PROXY_USAGE_PRECONFIG.
- QueryInterface IBitsTokenOptions.
- Adja meg az NTLM-/Kerberos-hitelesítő adatokhoz használt felhasználói fiókot.
- Hívja SetHelperToken.
- SetHelperTokenFlags hívása BG_TOKEN_NETWORK.
- A megszemélyesítés visszaállítása.
- A feladat beállításának folytatása.
- Hívja meg Önéletrajz a feladaton.
Windows 10 előtt, 1809-es verzió (10.0; Az 17763-es build) a megfelelő felhasználói identitást (a segítő jogkivonat identitását) használja a hálózatalapú proxyészleléshez (WPAD) és a proxyhitelesítéshez, de a helyi (IE) proxybeállítások tényleges észlelése mindig a feladat tulajdonosi jogkivonatával történik, még akkor is, ha egy segítő jogkivonat van konfigurálva. A hiányosság megkerüléséhez kövesse az alábbi lépéseket.
- Adja meg az NTLM-/Kerberos-hitelesítő adatokhoz használt felhasználói fiókot.
- A felhasználói fiók IE-proxybeállításainak lekéréséhez hívja meg WinHttpGetIEProxyConfigForCurrentUser.
- A megszemélyesítés visszaállítása.
- A BITS-feladat Hitelesítő adatok beállítása metódusának meghívása BG_AUTH_SCHEME_NEGOTIATE, UserNameNULL, Jelszó beállítása NULL, Cél pedig BG_AUTH_TARGET_PROXY. Ez azt eredményezi, hogy a felhasználói fiók implicit hitelesítő adatait a proxyval és a kiszolgálóval történő NTLM- és Kerberos-hitelesítéshez kell használni.
- Ha a 2. lépés bármilyen felhasználóspecifikus proxybeállítást eredményezett (például lpszProxy vagy lpszProxyBypass nem NULL), állítsa be manuálisan a megfelelő feladatbeállításokat a SetProxySettings a BG_JOB_PROXY_USAGE_OVERRIDE beállítással.
- Ha a 2. lépés nem hozott létre felhasználóspecifikus proxybeállításokat, hívja meg SetProxySettingsBG_JOB_USAGE_PRECONFIG.
- QueryInterface IBitsTokenOptions.
- Ismét megszemélyesíti a felhasználói fiókot.
- Hívja SetHelperToken.
- SetHelperTokenFlags hívása BG_TOKEN_NETWORK.
- A megszemélyesítés visszaállítása.
- A feladat beállításának folytatása.
- Hívja meg Önéletrajz a feladaton.