Quality of Service (RPC)
Clientprogramma's kunnen de functie RpcBindingSetAuthInfoEx gebruiken in plaats van de functie RpcBindingSetAuthInfo om een geverifieerde binding te maken. Als dat het gebeurt, geven ze een aanwijzer door aan een RPC_SECURITY_QOS structuur als de laatste parameter van RpcBindingSetAuthInfoEx-. Deze structuur bevat informatie over de kwaliteit van de service. Clientprogramma's kunnen ook het identiteitstraceringstype opgeven en het imitatietype selecteren.
Gebruik de Capabilities lid van de RPC_SECURITY_QOS-structuur om in te stellen welke delen van de client-/servertoepassing worden geverifieerd. Als RPC_C_QOS_CAPABILITIES_DEFAULT is geselecteerd, verifieert de RPC-runtimebibliotheek de client of server volgens de standaardwaarde voor de SSP. Standaard verifieert de Kerberos-protocol-SSP zowel de client als de server. De standaardinstelling voor alle andere SSP's die Microsoft biedt, is om de client te verifiëren bij de server, maar niet om de server te verifiëren bij de client.
Als de client en de server altijd met elkaar moeten worden geverifieerd, stelt u de Capabilities lid van de RPC_SECURITY_QOS-structuur in op RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH. Sommige beveiligingsproviders ondersteunen mogelijk geen wederzijdse verificatie. Als RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH is opgegeven voor dergelijke beveiligingsproviders, wordt er een fout geretourneerd wanneer een externe procedureaanroep wordt uitgevoerd. Wanneer u de SCHANNEL-SSP gebruikt, is het ook mogelijk om de Capabilities lid in te stellen op RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY. Deze constante geeft aan dat de SSP de externe procedure-aanroep valideert, zelfs als de certificeringsinstantie die het verificatiecertificaat van de client heeft uitgegeven, zich niet in het basiscertificaatarchief van de SSP bevindt. De standaardinstelling is om het certificaat te weigeren als de SSP de certificeringsinstantie niet herkent. De certificeringsinstantie is een onafhankelijk bedrijf of een onafhankelijke organisatie, zoals VeriSign, die verificatiecertificaten uitgeeft.
Toepassingen kunnen ook de identiteitstracering instellen die door de RPC-runtimebibliotheek wordt gebruikt. Programma's maken over het algemeen gebruik van statische identiteitstracering. Bij statische tracering worden de referenties van de client ingesteld wanneer de RpcBindingSetAuthInfo functie wordt aangeroepen. De RPC-runtimebibliotheek gebruikt deze referenties vervolgens voor alle RPC-aanroepen op de binding, ongeacht wijzigingen in de identiteit van de aanroepende thread of het aanroepende proces. Toepassingen kunnen ook dynamische identiteitstraceringselecteren. Met dynamische identiteitstracering wordt de RPC-runtimebibliotheek geïnstrueerd om de referenties van de aanroepende thread te gebruiken op het moment van elke aanroep, in plaats van de bindingsgreep. De standaardidentiteitstracering is statisch.
Als de identiteit van de client niet wordt gewijzigd, kan het bijhouden van statische identiteiten betere prestatiekenmerken hebben en kan de RPC-uitvoeringstijd worden opgeslagen om telkens te controleren of de identiteit op de aanroepende thread dezelfde is als de identiteit die aan het beveiligingssysteem is gegeven. Als de identiteit van de aanroepende thread kan veranderen tussen aanroepen en de server deze wijzigingen moet herkennen, is het raadzaam om dynamische identiteitstracering op te geven. De RPC-runtime houdt de identiteit voor u stil en efficiënt bij en beheert die wijziging namens u als de identiteit verandert.
Notitie
Voor ncalrpc--aanroepen hebben statische en dynamische identiteitstracering verschillende prestatiekenmerken, en afhankelijk van de omstandigheden kan beide sneller zijn.
Als onderdeel van de QOS-specificatie kan het clientprogramma ook het type imitatie instellen dat een serverprogramma namens het programma kan uitvoeren. Zie Clientimitatievoor meer informatie.
Het versienummerveld van de RPC_SECURITY_QOS-structuur moet altijd worden ingesteld op RPC_C_SECURITY_QOS_VERSION.