Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Služba BITS podporuje základní ověřování, ověřování Passportem a několik schémat ověřování typu challenge/response. Pokud server nebo proxy server vyžadují ověření uživatele, pomocí funkce IBackgroundCopyJob2::SetCredentials zadejte přihlašovací údaje uživatele. Služba BITS používá k ochraně přihlašovacích údajů CryptoAPI.
K nastavení přihlašovacích údajů pro základní ověřování použijte funkci SetCredentials k zadání uživatelského jména a hesla. Základní ověřování byste měli používat pouze s https:// chráněnými zabezpečenými weby; jinak bude uživatelské jméno a heslo viditelné pro uživatele.
Do adresy URL je možné vložit uživatelské jméno a heslo. To se nepovažuje za dobrý postup zabezpečení a je zastaralý v dokumentu RFC 3986 (oddíl 3.2.1).
Pro ověřování Passport služba BITS podporuje pouze explicitní přihlašovací údaje, nikoli implicitní přihlašovací údaje vázané na účet.
V případě ověřování výzvy a odpovědi služba BITS zosobňuje uživatele a používá Snego k určení, které ověřování výzvy a odpovědi se má použít, jako je NTLM nebo protokol Kerberos. Seznam schémat úkolů a odpovědí, která bits podporuje, najdete v tématu BG_AUTH_SCHEME.
Úlohy BITS můžou selhat, pokud má virtuální adresář na serveru povolené anonymní ověřování a jiné schéma ověřování a pokud seznamy ACL chrání virtuální adresář nebo stahují soubory. Například úloha selže s chybou "Přístup odepřen", pokud má virtuální adresář povolené anonymní a integrované ověřování a soubor obsahuje seznam ACL, který umožňuje čtení souboru pouze Ben. K tomu dochází, protože virtuální adresář umožňuje anonymní přístup, takže služba IIS explicitně neověřuje Ben (přihlašovací údaje Benu se nepoužívají pro přístup k souboru a přístup je odepřen).
Použití implicitních přihlašovacích údajů
Pokud chcete pro ověřování protokolem NTLM nebo Kerberos použít implicitní přihlašovací údaje uživatele, zavolejte metodu IBackgroundCopyJob2::SetCredentials a nastavte uživatelské jméno a heslo členy struktury BG_BASIC_CREDENTIALS tak, aby null. Pokud pro proxy server zadáte implicitní přihlašovací údaje, služba BITS použije implicitní přihlašovací údaje pro ověřování serveru, pokud nezadáte explicitní přihlašovací údaje serveru.
Další informace o službách naleznete v tématu Účty služeb a služba BITS.
Můžete také změnit hodnotu registru LMCompatibilityLevel nebo UseLMComp at; Tyto hodnoty byste však měli změnit pouze v případě, že máte existující aplikaci, kterou nelze změnit pro volání SetCredentials metoda.
BitS použije k ověřování implicitní přihlašovací údaje, pokud je hodnota registru LMCompatibilityLevel dvě nebo vyšší a nepovolili jste metodu SetCredentials. Úplná cesta k hodnotě registru LMCompatibilityLevel je HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA\LmCompatibilityLevel.
Všimněte si, že změna hodnoty registru LMCompatibilityLevel může ovlivnit jiné aplikace a služby spuštěné v počítači.
Pokud je nastavením hodnoty registru LMCompatibilityLevel problém, můžete vytvořit hodnotu registru UseLMCompat v části HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\BITS. Hodnota registru je DWORD. Následující tabulka uvádí možné hodnoty pro useLMCompat:
| Hodnota | Popis |
|---|---|
| 0 | Služba BITS odešle implicitní přihlašovací údaje pokaždé, když server vyzve k zadání přihlašovacích údajů PROTOKOLU NTLM nebo Kerberos. |
| 1 | Služba BITS odešle implicitní přihlašovací údaje pouze v případě, že hodnota registru LMCompatibilityLevel je větší nebo rovna 2 klientskému počítači. |
| 2 | BitS odešle implicitní přihlašovací údaje pouze v případě, že aplikace volala metodu SetCredentials. |
BitS použije výchozí hodnotu 2 pro UseLMCompat hodnotu registru, pokud hodnota registru neexistuje.
Použití certifikátů pro ověřování klientů a serverů
Při zabezpečené komunikaci klienta/serveru můžou klienti a servery používat digitální certifikáty k vzájemnému ověření. Služba BITS automaticky podporuje ověřování serveru založeného na certifikátech pro zabezpečené přenosy HTTP. Chcete-li poskytnout bits klientský certifikát potřebný pro vzájemné ověřování, volejte buď IBackgroundCopyJobHttpOptions::SetClientCertificateByID nebo IBackgroundCopyJobHttpOptions::SetClientCertificateByName metoda.
Když web přijme, ale nevyžaduje certifikát klienta SSL a úloha BITS nezadá klientský certifikát, úloha selže s ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED (0x80072f0c).
Zpracování ověřených scénářů proxy serveru, které vyžadují nastavení specifické pro uživatele
Pokud používáte službu BITS v prostředí, které vyžaduje ověření proxy serveru při spuštění jako účet bez použitelných přihlašovacích údajů NTLM nebo Kerberos v síťové doméně počítače, musíte provést další kroky k ověření pomocí přihlašovacích údajů jiného uživatelského účtu, který má přihlašovací údaje v doméně. Jedná se o typický scénář, kdy je váš kód BITS spuštěný jako systémová služba, jako je LocalService, NetworkService nebo LocalSystem, protože tyto účty nemají použitelné přihlašovací údaje NTLM nebo Kerberos.
Logika detekce proxy serveru používaná v BITS provede následující kroky, pokud je nastavený pomocný token sítě (BG_TOKEN_NETWORK):
- Pokud IBackgroundCopyJob::SetProxySettings byl volán pomocí BG_JOB_PROXY_USAGE_PRECONFIG, přečtěte si místní nastavení proxy serveru IE pomocí zosobnění kontextu tokenu vlastníka úlohy prostřednictvím WinHttpGetIEProxyConfigForCurrentUser. Počínaje Windows 10 verze 1809 (10.0; Build 17763), identita pomocného tokenu se používá pro tento krok.
- Pokud IBackgroundCopyJob::SetProxySettings byl volán pomocí BG_PROXY_USAGE_AUTODETECT nebo pokud nastavení IE z BG_JOB_PROXY_USAGE_PRECONFIG případu určete automatickou detekci nebo adresu URL automatické konfigurace, pak proveďte automatickou detekci proxy serveru nebo protokol WPAD (Web Proxy Autodiscovery Protocol), pomocí zosobnění pomocného tokenu prostřednictvím WinHttpGetProxyForUrl.
Potom se pomocná zosobnění tokenu použije pro ověřování proxy serveru nebo serveru v celém procesu.
Počínaje Windows 10 verze 1809 (10.0; Build 17763), scénář ověřeného proxy serveru s přihlašovacími údaji specifických pro uživatele je zjednodušený.
- Volání metody SetCredentials úlohy BITS pomocí BG_AUTH_SCHEME_NEGOTIATE, UserName nastavena na NULL, Heslo nastavena na NULLa Target nastavena na BG_AUTH_TARGET_PROXY. To způsobí, že se implicitní přihlašovací údaje uživatelského účtu použijí pro ověřování protokolem NTLM a Kerberos s proxy serverem a serverem.
- Volání IBackgroundCopyJob::SetProxySettings pomocí BG_JOB_PROXY_USAGE_PRECONFIG.
- QueryInterface pro IBitsTokenOptions.
- Zosobnit uživatelský účet, který používáte pro přihlašovací údaje NTLM/Kerberos.
- Volání SetHelperToken.
- Volání SetHelperTokenFlags pomocí BG_TOKEN_NETWORK.
- Vraťte se zosobnění.
- Pokračujte v nastavení úlohy.
- Volejte Pokračovat úlohy.
Před Windows 10 verze 1809 (10.0; Build 17763), správná identita uživatele (identita pomocného tokenu) se používá pro detekci proxy serveru na základě sítě (WPAD) a pro ověřování proxy serveru, ale skutečná detekce místních nastavení proxy serveru (IE) se vždy provádí pomocí tokenu vlastníka úlohy, i když je nakonfigurovaný pomocný token. Pokud chcete tento nedostatek obejít, můžete postupovat podle těchto kroků.
- Zosobnit uživatelský účet, který používáte pro přihlašovací údaje NTLM/Kerberos.
- Načtení nastavení proxy serveru IE uživatelského účtu voláním WinHttpGetIEProxyConfigForCurrentUser.
- Vraťte se zosobnění.
- Volání metody SetCredentials úlohy BITS pomocí BG_AUTH_SCHEME_NEGOTIATE, UserName nastavena na NULL, Heslo nastavena na NULLa Target nastavena na BG_AUTH_TARGET_PROXY. To způsobí, že se implicitní přihlašovací údaje uživatelského účtu použijí pro ověřování protokolem NTLM a Kerberos s proxy serverem a serverem.
- Pokud krok 2 přinesl jakékoli nastavení proxy serveru specifického pro uživatele (tj. lpszProxy nebo lpszProxyBypass nejsou NULL), nastavte odpovídající nastavení úlohy ručně pomocí SetProxySettings s nastavením BG_JOB_PROXY_USAGE_OVERRIDE.
- Pokud krok 2 nezvedal žádné nastavení proxy serveru specifického pro uživatele, zavolejte SetProxySettings s BG_JOB_USAGE_PRECONFIG.
- QueryInterface pro IBitsTokenOptions.
- Zosobnit uživatelský účet znovu.
- Volání SetHelperToken.
- Volání SetHelperTokenFlags pomocí BG_TOKEN_NETWORK.
- Vraťte se zosobnění.
- Pokračujte v nastavení úlohy.
- Volejte Pokračovat úlohy.