AD FS 2.0: Home Realm Discovery Authentifizierungsarten

Beispiel URL’s von verschiedenen Login Methoden bei Benutzung eines AD FS Servers:

  • Integrated Windows Authentication (IWA)
    https://contosoadfs2.contoso.com/adfs/ls/auth/integrated/?
    wa=wsignin1.0&wtrealm=https%3a%2f%2fclaimsweb.contoso.com&wctx=rm%3d0%26id%3dpassive%26ru%3d%252f&wct=2012-09-27T22%3a54%3a57Z
  • Forms Based Authentication (FBA)
    https://contosoadfs2.contoso.com/adfs/ls/FormsSignIn.aspx/?
    wa=wsignin1.0&wtrealm=https%3a%2f%2fclaimsweb.contoso.com&wctx=rm%3d0%26id%3dpassive%26ru%3d%252f&wct=2012-09-27T22%3a54%3a57Z
  • Transport Layer Security Client Authentication (TLSClient)
    https://contosoadfs2.contoso.com/adfs/ls/auth/sslclient/?wa=wsignin1.0&wtrealm=https%3a%2f%2fclaimsweb.contoso.com&wctx=rm%3d0%26id%3dpassive%26ru%3d%252f&wct=2012-09-27T22%3a54%3a57Z
  • Basic Authentication
    https://contosoadfs2.contoso.com/adfs/ls/auth/basic/?
    wa=wsignin1.0&wtrealm=https%3a%2f%2fclaimsweb.contoso.com&wctx=rm%3d0%26id%3dpassive%26ru%3d%252f&wct=2012-09-27T22%3a54%3a57Z

Bei Nutzung eines ADFS 2.0 Proxy-Servers kann die “Integrated Windows Authentication” nicht angewandt werden, da ein solcher Proxy-Server unter normalen Umständen nicht Mitglied einer Domäne ist.

Konfiguration SharePoint Claim Mappings

Die nachfolgende Übersicht zeigt die Schritte innerhalb SharePoint 2010, die notwendig sind um eine SharePoint Applikation Claims-Based fähig zu machen.

1. Erstellen SharePoint Trusted Root Authority
Mit dem folgenden PowerShell Code (SharePoint 2010 Management Shell Konsole) wird das Signing Zertifikat des Partners innerhalb SharePoint als Trusted Root Authority definiert. Damit wird der Trust zwischen SharePoint und dem Partner (Identity Provider (IdP), ADFS etc.) aufgebaut.

$certPath = "c:\contosotokensign.cer"
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("$certPath")
New-SPTrustedRootAuthority -Name "Contoso ADFS Token Signing Root Authority" -Certificate $cert

2. Zuweisung Claims
Anschliessend erfolgt die Zuweisung der einzelnen Claims. Dafür müssen innerhalb der SharePoint 2010 Management Shell Konsole die Claims (in diesem Beispiel sind es deren zwei: Emailadresse und Rolle) den entsprechenden Variablen zugewiesen werden. Diese Variablen $map1 und $map2 werden dann in Schritt 4 für die Erstellung des Providers benötigt:

$map1 = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -
IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
$map2 = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" -
IncomingClaimTypeDisplayName "Role" -SameAsIncoming

3. Definition Realm und Sign-In URL
In diesem Schritt wird der Applikations-Realm und die Sign-In URL (für die Login-Seite) definiert.

$realm = "urn:contoso:sharepoint:portal"
$signinurl = "https://contosoadfs2.contoso.com/adfs/ls"
$certPath = "c:\contosotokensign.cer"
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("$certPath")

4. Erstellen des Trusted Identity Token Issuers (Claims Provider)
Mit dem nächsten Befehl wird der eigentliche Claims Provider erstellt. Wichtig in diesem Zusammenhang ist die Definition des IdentifierClaim Attributes. Dieses definiert welches der Attribute zur Identifikation von Benutzern verwendet wird.

$ap = New-SPTrustedIdentityTokenIssuer -Name "Contoso ADFS 2.0" -Description "Contoso ADFSv2 Token Issuer" -realm $realm -ImportTrustCertificate $cert -
ClaimsMappings $map1,$map2 -SignInUrl $signinurl -IdentifierClaim $map1.InputClaimType

http://blogs.msdn.com/b/spidentity/archive/2010/01/23/claims-based-authentication-cheat-sheet-part-2.aspx

5. Erstellen/Konfiguration der SharePoint Webapplikation
Damit eine Webapplikation Claims-fähig ist muss diese über die “Claims Based” Authentication Option verfügen.

Das Erstellen kann entweder per GUI (mit Hilfe der Central Administration) oder mittels PowerShell Script vorgenommen werden.