Megosztás a következőn keresztül:


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.

  1. 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.
  2. Hívja meg IBackgroundCopyJob::SetProxySettingsBG_JOB_PROXY_USAGE_PRECONFIG.
  3. QueryInterface IBitsTokenOptions.
  4. Adja meg az NTLM-/Kerberos-hitelesítő adatokhoz használt felhasználói fiókot.
  5. Hívja SetHelperToken.
  6. SetHelperTokenFlags hívása BG_TOKEN_NETWORK.
  7. A megszemélyesítés visszaállítása.
  8. A feladat beállításának folytatása.
  9. 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.

  1. Adja meg az NTLM-/Kerberos-hitelesítő adatokhoz használt felhasználói fiókot.
  2. A felhasználói fiók IE-proxybeállításainak lekéréséhez hívja meg WinHttpGetIEProxyConfigForCurrentUser.
  3. A megszemélyesítés visszaállítása.
  4. 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.
  5. 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.
  6. Ha a 2. lépés nem hozott létre felhasználóspecifikus proxybeállításokat, hívja meg SetProxySettingsBG_JOB_USAGE_PRECONFIG.
  7. QueryInterface IBitsTokenOptions.
  8. Ismét megszemélyesíti a felhasználói fiókot.
  9. Hívja SetHelperToken.
  10. SetHelperTokenFlags hívása BG_TOKEN_NETWORK.
  11. A megszemélyesítés visszaállítása.
  12. A feladat beállításának folytatása.
  13. Hívja meg Önéletrajz a feladaton.