Delen via


Federatie en vertrouwen

In dit onderwerp worden verschillende aspecten behandeld met betrekking tot federatieve toepassingen, vertrouwensgrenzen en configuratie en het gebruik van uitgegeven tokens in Windows Communication Foundation (WCF).

Services, beveiligingstokenservices en vertrouwen

Services die federatieve eindpunten beschikbaar maken, verwachten doorgaans dat clients zich verifiëren met behulp van een token dat wordt geleverd door een specifieke verlener. Het is belangrijk dat de service is geconfigureerd met de juiste referenties voor de verlener; anders kan de client geen handtekeningen verifiëren via de uitgegeven tokens en kan de client niet communiceren met de service. Zie How to: Configure Credentials on a Federation Service (Referenties configureren voor een Federation-service) voor meer informatie over het configureren van referenties voor verleners in de service.

Als u symmetrische sleutels gebruikt, worden de sleutels ook versleuteld voor de doelservice, dus moet u de beveiligingstokenservice configureren met de juiste referenties voor de doelservice; anders kan de sleutel voor de doelservice niet worden versleuteld en kan de client niet communiceren met de service.

WCF-services gebruiken de waarde van de MaxClockSkew eigenschap op het SecurityBindingElement om klokverschil tussen de client en de service mogelijk te maken. In federatie is de MaxClockSkew instelling van toepassing op klokverschil tussen zowel de client als de beveiligingstokenservice van waaruit de client het uitgegeven token heeft verkregen. Daarom hoeven beveiligingstokenservices geen scheeftrekken van de klok te maken bij het instellen van de effectieve en verlooptijden van het uitgegeven token.

Notitie

Het belang van de klokverschil neemt toe naarmate de levensduur van het uitgegeven token korter wordt. In de meeste gevallen is scheeftrekken van de klok geen belangrijk probleem als de levensduur van het token 30 minuten of langer is. Scenario's met kortere levensduur of waarbij de exacte geldigheidsduur van het token belangrijk is, moeten worden ontworpen om rekening te houden met de klokverschil.

Federatieve eindpunten en time-outs

Wanneer een client communiceert met een federatief eindpunt, moet deze eerst een geschikt token verkrijgen van een beveiligingstokenservice. Als de beveiligingstokenservice een federatief eindpunt beschikbaar maakt, moet de client eerst een token verkrijgen van de verlener voor dat eindpunt. Elke tokenverwerving kost tijd en die tijd is onderhevig aan de algemene time-out voor het verzenden van het werkelijke bericht naar het uiteindelijke eindpunt.

De time-out op het kanaal aan de clientzijde is bijvoorbeeld ingesteld op 30 seconden. Twee tokenverleners moeten worden aangeroepen om tokens op te halen voordat het bericht naar het uiteindelijke eindpunt wordt verzonden. Het duurt 15 seconden om een token uit te geven. In dit geval mislukt de poging en wordt er een TimeoutException gegenereerd. Daarom moet u de OperationTimeout waarde op het clientkanaal instellen op een waarde die groot genoeg is om de tijd op te nemen die nodig is om alle uitgegeven tokens op te halen. In het geval dat een waarde niet is opgegeven voor de OperationTimeout eigenschap, moet de OpenTimeout eigenschap of de SendTimeout eigenschap (of beide) worden ingesteld op een waarde die groot genoeg is om de tijd op te nemen die nodig is om alle uitgegeven tokens op te halen.

Levensduur en verlenging van tokens

WCF-clients controleren het uitgegeven token niet bij het indienen van een eerste aanvraag bij een service. In plaats daarvan vertrouwt WCF de beveiligingstokenservice om een token uit te geven met de juiste effectieve en verlooptijden. Als het token wordt opgeslagen in de cache van de client en opnieuw wordt gebruikt, wordt de levensduur van het token gecontroleerd op volgende aanvragen en wordt het token indien nodig automatisch vernieuwd door de client. Zie Instructies voor het maken van een federatieve client voor meer informatie over het opslaan van tokens in cache.

Het opgeven van korte levensduur, op volgorde van 30 seconden of minder voor uitgegeven tokens of beveiligingscontexttokens, kan leiden tot onderhandelingstime-outs of andere uitzonderingen die worden gegenereerd door WCF-clients bij het aanvragen van uitgegeven tokens of bij het onderhandelen of vernieuwen van beveiligingscontexttokens.

Uitgegeven tokens en InclusionMode

Of een uitgegeven token wordt geserialiseerd in een bericht dat van een client naar een federatief eindpunt wordt verzonden of niet wordt beheerd door de InclusionMode eigenschap van de SecurityTokenParameters klasse in te stellen. Deze eigenschap kan worden ingesteld op een van de opsommingswaarden, maar is niet nuttig in de SecurityTokenInclusionMode meeste federatieve scenario's. De SecurityTokenInclusionMode.Never en SecurityTokenInclusionMode.AlwaysToInitiator waarden zorgen ervoor dat de client een verwijzing naar het token verzendt dat is uitgegeven door de beveiligingstokenservice naar de relying party. Tenzij de relying party een kopie van het uitgegeven token bezit, mislukt de verificatie omdat de tokenverwijzing niet kan worden omgezet. WCF wordt behandeld SecurityTokenInclusionMode.Once als gelijkwaardig aan SecurityTokenInclusionMode.AlwaysToRecipient.

Zie ook