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.
Gedistribueerde toepassingen (client/server) maken gebruik van beveiligingspakketten om geverifieerde verbindingen te verkrijgen en berichten uit te wisselen. De toepassing roept SSPI-functies (Security Support Provider Interface) aan die zijn toegewezen aan functies die zijn geïmplementeerd door SSP/APs-en functies die zijn geïmplementeerd door SSP/APs in de gebruikersmodus. Deze toewijzing wordt uitgevoerd door het DLL-bestand van de beveiligingsprovider (Secur32.dll of Security.dll), dat dynamisch kan worden geladen in de client- en serverprocessen. Het DLL-bestand kan ook statisch worden gekoppeld met Secur32.lib. Zowel het DLL-bestand als het LIB-bestand wordt geleverd met de Microsoft Windows Software Development Kit (SDK).
Het laden van het beveiligingspakket in het proces van de client of server wordt verwerkt door het systeem, als de SSP/AP DLL die het beveiligingspakket bevat, correct is geregistreerd.
De server begint het proces van het verkrijgen van een beveiligde verbinding met een client door een poort te bewaken, te wachten tot een client een bericht verzendt. De client begint het proces van het verkrijgen van een beveiligde verbinding met de server door de SSPI-functie aan te roepen InitializeSecurityContext (Algemeen). Deze functie is toegewezen aan de functie SpInitLsaModeContext van het aangepaste beveiligingspakket. SpInitLsaModeContext een token retourneert naar de client, die het doorstuurt naar de server.
Na ontvangst van het token van de client roept de server de SSPI-functie aan AcceptSecurityContext (Algemeen), die wordt verzonden naar de spAcceptLsaModeContext-functie van het beveiligingspakket. Als de functie SpAcceptLsaModeContext slaagt en er geen verwerking meer nodig is om de beveiligingscontext tot stand te brengen, moet de functie STATUS_SUCCESS retourneren aan de aanroeper. Als extra verwerking is vereist, moet de functie SEC_I_CONTINUE_NEEDED retourneren en een token naar de server retourneren. De server stuurt het token door naar de client, die InitializeSecurityContext (Algemeen) opnieuw aanroept.
Deze aanroepcyclus kan zo vaak als nodig worden herhaald totdat een geverifieerde verbinding tot stand is gebracht of mislukt. Tijdens dit proces, als de functie SpAcceptLsaModeContext of SpInitLsaModeContext slaagt en er geen verwerking meer nodig is om de beveiligingscontext tot stand te brengen, moet de functie STATUS_SUCCESS retourneren aan de aanroeper. Als extra verwerking is vereist, moet de functie SEC_I_CONTINUE_NEEDED retourneren en een token retourneren aan de beller die verantwoordelijk is voor het doorsturen ervan.
Het protocol dat door het beveiligingspakket wordt geïmplementeerd, bepaalt het aantal keren dat deze cyclus wordt herhaald. In beveiligingspakketten die wederzijdse verificatie van drie been ondersteunen, is de aanroepvolgorde bijvoorbeeld als volgt:
- Client verkrijgt een token door InitializeSecurityContext (Algemeen)aan te roepen en naar de server te verzenden. De server roept AcceptSecurityContext (Algemeen) de eerste keer aan en haalt een antwoordtoken op dat naar de client wordt verzonden.
- De client gebruikt het token dat is ontvangen van de server in een tweede aanroep om te InitializeSecurityContext (Algemeen)en haalt een definitief token terug. De client verzendt dit token naar de server.
- De server ontvangt het token dat is gegenereerd in leg 2 die wordt gebruikt in de laatste aanroep voor AcceptSecurityContext (Algemeen).
Wanneer de functies SpAcceptLsaModeContext en SpInitLsaModeContext zijn geslaagd en er geen verwerking meer nodig is om de beveiligingscontext vast te stellen, moeten de functies STATUS_SUCCESS retourneren aan de aanroeper. Als het aangepaste beveiligingspakket bovendien de -functies ondersteunt die zijn geïmplementeerd door SSP/APs in de gebruikersmodus, moet SpAcceptLsaModeContext- en SpInitLsaModeContext-TRUE- retourneren via de parameter MappedContext. De MappedContext--waarde wordt niet teruggegeven aan de toepassing; het wordt onderschept door de LSA.
Wanneer MappedContext- is waar, roept de LSA de SpUsermodeInitialize-functie van de SSP/AP DLL aan. Deze functie biedt tabellen met aanwijzers voor de gebruikersmodusfuncties die door elk beveiligingspakket worden geïmplementeerd. De functie SpInstanceInit van elk pakket wordt aangeroepen met behulp van de functietabellen die worden geretourneerd door SpUsermodeInitialize. SpInstanceInit ontvangt een tabel met aanwijzers voor LSA-functies die worden aangeroepen door SSP/APs-in de gebruikersmodus.