Häromdagen sprang jag på ett scenario där ADFS 2.0 skulle fungera som både en Identity Provider och en Claims Provider och där inga andra STS:er var inblandade.
Det var aktiv federering som gällde mha WCF + WIF-klient.
Ex:
Klient loggar in i AD via ADFS 2.0 och får en säkerhetstoken. Vid senare tillfälle kan klienten med hjälp av denna token, via samma ADFS-server erhålla nya tokens till olika RPs. Således behöver användaren endast logga in en gång och kan sedan erhålla nya tokens med olika claims för olika system och syften.
För att kunna åstadkomma detta behöver ADFS 2.0 i första läget skapa en token med sig själv som AudienceURI.
Det går i det läget inte att använda sig av ADFS ursprungliga identifierare, tex http://servernamn/adfs/services/trust
Tillvägagångssättet blir istället följande:
Skapa ett valfritt alias för ADFS-tjänsten, tex http://aliasURI/
Genom att
1. Öppna upp ett Powershellfönster i administratörsläge på ADFS-servern
2. Skriv kommandot Add-ADFSSnapin Microsoft.ADFS.Powershell (laddar snapin för ADFS)
3. Skriv kommandot Set-ADFSProperties –AcceptableIdentifier ”http://aliasURI/”
4. Öppna upp MMC-snapin för ADFS 2.0 och skapa en Relying Party Trust och skapa till denna en identifier som är satt till ovanstående alias (http://aliasURI/). För kryptering av token används ADFS-tjänstens certifikat för Token Decryption.
5. I klienten sätts egenskapen AppliesTo i anropet till ovanstående alias. Ex rst.AppliesTo = new EndpointAddress(“http://aliasURI/”)
KLART!
