Beveiligingsdekenonderhandeling
Een beveiligingsdeken is een groep waarden die de beveiligingsinstellingen beschrijven die van toepassing zijn op alle proxy's in een proces of alleen op een bepaalde interfaceproxy. Een beveiligingsdeken bestaat uit de volgende waarden:
- Verificatieservice
- Autorisatieservice
- Principal-naam
- Verificatieniveau
- Imitatieniveau
- Verificatie-identiteit
- Mogelijkheden
- Een toegangsbeheerlijst (ACL) (alleen servers)
Beveiligingsdekenonderhandeling is het proces dat COM gebruikt om de beveiligingsinstellingen voor een proxy te kiezen wanneer deze wordt gemaakt. Dit proces omvat het vergelijken van de beveiligingsdeken van de server met de beveiligingsdeken van de client en het gebruik van deze waarden om een geschikte standaardbeveiligingsdeken voor de proxy te maken. In de volgende alinea's wordt uitgelegd waar de beveiligingsdekens van de client en de server afkomstig zijn en wordt beschreven hoe COM onderhandelt over de beveiligingsdeken voor de proxy met behulp van de beveiligingsdekens van de client en de server.
De client en de server kunnen elke aanroep CoInitializeSecurity om hun respectieve beveiligingsdekens op te geven. Als een toepassing niet expliciet CoInitializeSecurity aanroept, roept COM deze impliciet aan voor de toepassing, met behulp van de juiste standaardwaarden. Zie COM-beveiligingsstandaardenvoor meer informatie over deze standaardwaarden.
Sommige parameters voor CoInitializeSecurity van toepassing wanneer de toepassing een server is en sommige zijn van toepassing wanneer de toepassing een client is. Wanneer de toepassing als een server fungeert, zijn deze parameters relevant: een ACL, een lijst met tuples voor verificatieservice/autorisatieservice/principal-naam en een verificatieniveau. De aanroep van een server om CoInitializeSecurity, impliciet of expliciet, bepaalt de beveiligingsdeken van de server, die vast blijft.
Wanneer de toepassing als client fungeert, zijn de volgende waarden die worden doorgegeven aan CoInitializeSecurity relevant: een verificatieniveau, een imitatieniveau, de verificatie-identiteit en mogelijkheden. De impliciete of expliciete aanroep van een client naar CoInitializeSecurity geeft de beveiligingsdeken aan die de client wil.
Wanneer een proxy wordt gemaakt, gebruikt COM de waarden die zijn opgegeven door de beveiligingsdeken van de server en de beveiligingsdeken van de client om te onderhandelen over een standaardbeveiligingsdeken die geschikt is voor de proxy. COM kiest een verificatieservice die zowel op de client als op de server werkt. De autorisatieservice en principal-naam worden gekozen om te werken met de verificatieservice. Voor het verificatieniveau kiest COM de hogere verificatieniveaus die door de client en de server zijn opgegeven. Het imitatieniveau en de mogelijkheden die door COM worden gekozen, zijn de mogelijkheden die door de client zijn opgegeven. De verificatie-identiteit is de identiteit die is opgegeven door de client voor de gekozen verificatieservice.
Zodra de standaardbeveiligingsdeken is berekend, worden de waarden toegewezen aan de zojuist gemaakte proxy. De client kan de beveiligingsinstellingen voor de proxy overschrijven door IClientSecurity::SetBlanketaan te roepen. De waarden die zijn opgegeven voor SetBlanket worden niet onderhandeld; ze worden gewoon toegewezen aan de opgegeven proxy. Als standaardparameters (zoals RPC_C_IMP_LEVEL_DEFAULT) echter worden doorgegeven aan SetBlanket-, gebruikt COM het eerder beschreven algoritme voor beveiligingsdekenonderhandeling om de standaardparameters te berekenen.
Verwante onderwerpen