Toegangstokens
Een toegangstoken is een object dat de beveiligingscontext beschrijft van een proces of thread. De informatie in een token bevat de identiteit en bevoegdheden van het gebruikersaccount dat is gekoppeld aan het proces of de thread. Wanneer een gebruiker zich aanmeldt, verifieert het systeem het wachtwoord van de gebruiker door het te vergelijken met gegevens die zijn opgeslagen in een beveiligingsdatabase. Als het wachtwoord is geverifieerd, produceert het systeem een toegangstoken. Elk proces dat namens deze gebruiker wordt uitgevoerd, heeft een kopie van dit toegangstoken.
Het systeem gebruikt een toegangstoken om de gebruiker te identificeren wanneer een thread communiceert met een beveiligbaar object of probeert een systeemtaak uit te voeren waarvoor bevoegdheden zijn vereist. Toegangstokens bevatten de volgende informatie:
- De beveiligings-id (SID) voor het account van de gebruiker
- SID's voor de groepen waarvan de gebruiker lid is
- Een aanmeldings-SID- die de huidige aanmeldingssessie identificeert
- Een lijst met de bevoegdheden die worden bewaard door de gebruiker of de groepen van de gebruiker
- Een eigenaar-SID
- De SID voor de primaire groep
- De standaard-DACL- die het systeem gebruikt wanneer de gebruiker een beveiligbaar object maakt zonder een beveiligingsdescriptor op te geven
- De bron van het toegangstoken
- Of het token nu een primaire of imitatie- token is
- Een optionele lijst met het beperken van SID's
- Huidige imitatieniveaus
- Overige statistieken
Elk proces heeft een primaire token dat de beveiligingscontext beschrijft van het gebruikersaccount dat is gekoppeld aan het proces. Het systeem gebruikt standaard het primaire token wanneer een thread van het proces communiceert met een beveiligbaar object. Bovendien kan een thread een clientaccount imiteren. Met imitatie kan de thread communiceren met beveiligbare objecten met behulp van de beveiligingscontext van de client. Een thread die een client imiteert, heeft zowel een primair token als een imitatietoken.
Gebruik de functie OpenProcessToken om een ingang op te halen naar het primaire token van een proces. Gebruik de functie OpenThreadToken om een ingang op te halen voor het imitatietoken van een thread. Zie imitatievoor meer informatie.
U kunt de volgende functies gebruiken om toegangstokens te bewerken.
Functie | Beschrijving |
---|---|
AdjustTokenGroups | Hiermee wijzigt u de groepsgegevens in een toegangstoken. |
AdjustTokenPrivileges | Hiermee schakelt u de bevoegdheden in of uit in een toegangstoken. Er worden geen nieuwe bevoegdheden verleend of bestaande bevoegdheden ingetrokken. |
CheckTokenMembership- | Bepaalt of een opgegeven SID is ingeschakeld in een opgegeven toegangstoken. |
CreateRestrictedToken- | Hiermee maakt u een nieuw token dat een beperkte versie van een bestaand token is. Het beperkte token kan uitgeschakelde SID's, verwijderde bevoegdheden en een lijst met beperkte SID's hebben. |
DuplicateToken- | Hiermee maakt u een nieuw imitatietoken waarmee een bestaand token wordt gedupliceerd. |
DuplicateTokenEx- | Hiermee maakt u een nieuw primair token of imitatietoken waarmee een bestaand token wordt gedupliceerd. |
GetTokenInformation- | Haalt informatie over een token op. |
IsTokenRestricted- | Bepaalt of een token een lijst heeft met het beperken van SID's. |
OpenProcessToken- | Hiermee wordt een ingang opgehaald naar het primaire toegangstoken voor een proces. |
OpenThreadToken | Hiermee wordt een ingang opgehaald naar het toegangstoken voor imitatie voor een thread. |
SetThreadToken- | Hiermee wordt een imitatietoken voor een thread toegewezen of verwijderd. |
SetTokenInformation- | Hiermee wijzigt u de eigenaar, primaire groep of standaard-DACL van een token. |
De toegangstokenfuncties gebruiken de volgende structuren om de onderdelen van een toegangstoken te beschrijven.
Structuur | Beschrijving |
---|---|
TOKEN_CONTROL | Informatie die een toegangstoken identificeert. |
TOKEN_DEFAULT_DACL | De standaard-DACL die door het systeem wordt gebruikt in de beveiligingsdescriptors van nieuwe objecten die zijn gemaakt door een thread. |
TOKEN_GROUPS | Hiermee geeft u de SID's en kenmerken van de groeps-SID's in een toegangstoken. |
TOKEN_OWNER | De standaard-eigenaar-SID voor de beveiligingsdescriptors van nieuwe objecten. |
TOKEN_PRIMARY_GROUP | De standaard primaire groeps-SID voor de beveiligingsdescriptors van nieuwe objecten. |
TOKEN_PRIVILEGES | De bevoegdheden die zijn gekoppeld aan een toegangstoken. Bepaalt ook of de bevoegdheden zijn ingeschakeld. |
TOKEN_SOURCE | De bron van een toegangstoken. |
TOKEN_STATISTICS | Statistieken die zijn gekoppeld aan een toegangstoken. |
TOKEN_USER | De SID van de gebruiker die is gekoppeld aan een toegangstoken. |
De toegangstokenfuncties gebruiken de volgende opsommingstypen.
Opsommingstype | Hiermee geeft u |
---|---|
TOKEN_INFORMATION_CLASS | Identificeert het type informatie dat wordt ingesteld of opgehaald uit een toegangstoken. |
TOKEN_TYPE | Identificeert een toegangstoken als een primair of imitatietoken. |