Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Distribuerade program (klient/server) använder säkerhetspaket för att hämta autentiserade anslutningar och utbyta meddelanden. Programmet anropar SSPI-funktioner (Security Support Provider Interface) som mappas till funktioner som implementeras av SSP/APsoch funktioner som implementeras av SSP/APs i användarläge. Den här mappningen utförs av säkerhetsproviderns DLL (Secur32.dll eller Security.dll), som kan läsas in i klient- och serverprocesserna dynamiskt. DLL:en kan också länkas statiskt med secur32.lib. Både DLL och LIB levereras med Microsoft Windows Software Development Kit (SDK).
Inläsning av säkerhetspaketet i klientens eller serverns process hanteras av systemet, om den SSP/AP DLL som innehåller säkerhetspaketet är korrekt registrerad.
Servern påbörjar processen med att hämta en säker anslutning till en klient genom att övervaka en port i väntan på att en klient ska skicka ett meddelande. Klienten påbörjar processen med att hämta en säker anslutning till servern genom att anropa SSPI-funktionen InitializeSecurityContext (Allmänt). Den här funktionen mappas till det anpassade säkerhetspaketets funktionen SpInitLsaModeContext. SpInitLsaModeContext returnerar en token till klienten, som vidarebefordrar den till servern.
När du tar emot token från klienten anropar servern SSPI-funktionen AcceptSecurityContext (Allmänt), som skickas till säkerhetspaketets SpAcceptLsaModeContext- funktion. Om funktionen SpAcceptLsaModeContext lyckas och ingen mer bearbetning krävs för att upprätta säkerhetskontexten, bör funktionen returnera STATUS_SUCCESS till anroparen. Om ytterligare bearbetning krävs ska funktionen returnera SEC_I_CONTINUE_NEEDED och returnera en token till servern. Servern vidarebefordrar token till klienten, som anropar InitializeSecurityContext (Allmänt) igen.
Den här samtalscykeln kan upprepas så ofta som nödvändigt tills en autentiserad anslutning upprättas eller misslyckas. Om funktionen SpAcceptLsaModeContext eller SpInitLsaModeCon text lyckas under den här processen och ingen ytterligare bearbetning krävs för att upprätta säkerhetskontext, bör funktionen returnera STATUS_SUCCESS till anroparen. Om ytterligare bearbetning krävs ska funktionen returnera SEC_I_CONTINUE_NEEDED och returnera en token till anroparen, som ansvarar för vidarebefordran av den.
Protokollet som implementeras av säkerhetspaketet avgör hur många gånger den här cykeln upprepas. I säkerhetspaket som stöder ömsesidig autentisering med tre ben är anropssekvensen till exempel följande:
- Klienten hämtar en token genom att anropa InitializeSecurityContext (Allmänt)och skickar den till servern. Servern anropar AcceptSecurityContext (Allmänt) första gången och hämtar tillbaka en svarstoken som den skickar till klienten.
- Klienten använder token som tagits emot från servern i ett andra anrop till InitializeSecurityContext (Allmänt)och hämtar tillbaka en slutlig token. Klienten skickar denna token till servern.
- Servern tar emot den token som genererats i ben 2 som den använder i det sista anropet till AcceptSecurityContext (Allmänt).
När SpAcceptLsaModeContext och SpInitLsaModeContext funktioner lyckas och ingen mer bearbetning krävs för att upprätta säkerhetskontexten, bör funktionerna returnera STATUS_SUCCESS till anroparen. Om det anpassade säkerhetspaketet dessutom stöder de funktioner som implementeras av SSP/APs i användarlägemåste SpAcceptLsaModeContext och SpInitLsaModeContext returnera TRUE via parametern MappedContext. Värdet MappedContext skickas inte tillbaka till programmet. den fångas upp av LSA.
När MappedContext är santanropar LSA funktionen SSP/AP DLL:n SpUsermodeInitialize. Den här funktionen tillhandahåller pekartabeller till de användarlägesfunktioner som implementeras av varje säkerhetspaket. Varje pakets funktion SpInstanceInit anropas med hjälp av funktionstabellerna som returneras av SpUsermodeInitialize. SpInstanceInit tar emot en tabell med pekare till LSA-funktioner som anropas av SSP/APs i användarläge.