Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In Windows Vista kan een toepassing met de BITS-service (Background Intelligent Transfer Service) één beveiligingstoken koppelen aan een BITS-overdrachtstaak. De BITS-overdrachtstaak gebruikt dit token vervolgens voor verificatie en voor toegang tot lokale en externe resources.
In Windows 7 koppelt de BITS-service een extra token aan een BITS-overdrachtstaak. De BITS-overdrachtstaak kan worden geconfigureerd met een extra beveiligingstoken. Dit is een imitatietoken dat is gemaakt door een toepassing die de BITS COM-API aanroept. Met dit helpertokenmodel kunnen toepassingen tegelijkertijd twee verschillende beveiligingstokens gebruiken voor toegang tot lokale bestanden, certificaten aan de clientzijde, externe bestanden en proxy's. Er wordt bijvoorbeeld een BITS-overdrachtstaak gemaakt die de gedownloade gegevens naar een bevoegde lokale map schrijft en vervolgens een domeinidentiteit met lage rechten presenteert aan de HTTP-server en proxyserver.
Een toepassing, meestal een Windows-service, geeft een helper-token op met behulp van de nieuwe interface IBitsTokenOptions. Deze interface wordt geïmplementeerd door het BITS-taakobject. De toepassing roept IBackgroundCopyJob::QueryInterface aan om de interfaceaanwijzer op te halen. De toepassing imiteert de helper-identiteit en roept IBitsTokenOptions::SetHelperToken het token door te geven aan de BITS-service. Vervolgens geeft de toepassing de resources op waarop het token van toepassing is door een set bitvlagken door te geven met behulp van IBitsTokenOptions::SetHelperTokenFlags. De toepassing wist alle vlaggen (met behulp van SetHelperTokenFlags) om het gedrag te herstellen. De BITS-service slaat de bitvlagken en het token op in de BITS-overdrachtstaak.
Wanneer de eigenaar van de BITS-overdrachtstaken is uitgeschakeld, verwijdert de BITS-service alle helpertokens die zijn gekoppeld aan de overdrachtstaak. Als de overdracht niet is voltooid, plaatst de BITS-service de taak in een foutstatus met de BG_E_TOKEN_REQUIRED foutcode en wordt het helpertoken verwijderd. De clienttoepassing kan het token vernieuwen door IBitsTokenOptions::SetHelperToken aan te roepen en vervolgens de BITS-overdrachtstaak te hervatten. De clienttoepassing kan ook de helper-tokenvlagken wissen met behulp van IBitsTokenOptions::SetHelperTokenFlags en vervolgens de overdrachtstaak hervatten zonder een helpertoken.
Op dezelfde manier moet de BITS-service, wanneer de eigenaar van een Terminal Services-sessie zich afmeldt, alle helpertokens van die sessie negeren en de betrokken overdrachtstaken in een foutstatus plaatsen met de foutcode BG_E_TOKEN_REQUIRED.
Voor het helper-tokenmodel is een wijziging in het BITS-toegangsbeheerbeleid vereist. In eerdere versies van BITS zijn toegangscontroles geïmplementeerd voor elke methode-aanroep. Vanaf Windows 7 moet de toegangscontrole worden uitgevoerd in de IBackgroundCopyJob::QueryInterface aanroep; anders heeft het helpertoken mogelijk geen toegang tot de overdrachtstaak.
Notitie
Oudere implementaties vereist effectief dat BITS-gebruikers beheerdersbevoegdheden hebben om helpertokens in te stellen. Vanaf Windows 10 versie 1607 kunnen niet-beheerders BITS-gebruikers IBitsTokenOptions::SetHelperToken instellen voor niet-beheerdershelpertokens voor BITS-taken die ze bezitten. Met deze wijziging kunnen niet-beheerders BITS-gebruikers (zoals achtergronddownloaderservices die worden uitgevoerd onder het NetworkService-account) helpertokens instellen.
De implementatie is gewijzigd zodat gebruikers zonder beheerdersbevoegdheden helpertokens kunnen instellen, zolang aan de volgende voorwaarden wordt voldaan:
- tijdens de IBackgroundCopyJob::QueryInterface aanroep, is de SID van het token van de thread van de beller hetzelfde als de SID van het gebruikersaccount van de taakeigenaar en
- wanneer IBitsTokenOptions::SetHelperToken wordt aangeroepen, is de beheerders-SID (DOMAIN_ALIAS_RID_ADMINS) niet ingeschakeld voor het helpertoken.
Verwante onderwerpen