Identity Management

  • {{ layer1.title }}
    • {{ layer2.title }}
      • {{ layer3.title }}
        • {{ layer4.title }}
  1. Home

ADFS als SWITCH edu-ID Proxyserver

View in Confluence Edit Page Log In Log Out

Description

ADFS soll als zentraler Identity Server dienen, dem Benutzer allerdings erlauben, sich mit seiner SWITCH edu-ID an einem Relying Party Trust anzumelden.
Die SWITCH edu-ID muss dazu als Claims Provider Trust eingerichtet werden wodurch ADFS zu deren Identity Proxy wird.

 

On this page

Voraussetzungen

  • ADFS 4.x Windows Server 2016

    Die Verbindung ist auch mit einer früheren Version von ADFS möglich, dann wird allerdings ein Server benötigt, welcher die Metadaten von SWITCH in ein ADFS <= 3.0 kompatibles Format umwandelt.



Die Home Organization ID des SWITCH edu-ID IdPs eruieren

Jeder Identity Provider bei SWITCH wird mit einer eindeutigen Kennung versehen.
Diese numerische Kennung ist für den Betreiber selbst über die Switch Ressource Registry abrufbar, für fremde IdPs muss allerdings der Weg über die Metadaten genommen werden.

  1. Öffnen Sie die Metadaten xml: http://metadata.aai.switch.ch/metadata.switchaai.xml
  2. Suchen Sie nach der Entity Description "eduid.ch"
  3. Öffnen Sie die Entity Description URL in einem Browser, in diesem Fall: https://eduid.ch/idp/shibboleth
  4. Notieren Sie sich Homeorg Nummer bzw. die Metadata URL der Homeorg, im Falle der eduid.ch Homeorg: "https://rr.aai.switch.ch/entity/homeorg/21781/metadata.xml"

Einen neuen Claims Provider Trust einrichten

Nun, da die Metadata URL der SWITCH edu-ID bekannt ist, kann in ADFS ein neuer Claims Provider Trust eingerichtet werden.

  1. Wechseln Sie auf Ihren ADFS Master Server und fügen Sie einen neuen Claims Provider Trust hinzu

  2. Geben Sie beim Punkt "Select Data Source" die "Federation metadata address" an, welche wir im vorherigen Schritt eruiert haben, also https://rr.aai.switch.ch/entity/homeorg/21781/metadata.xml

  3. Sie werden eine Information erhalten, dass ADFS nicht alle Einträge übernehmen konnte. Bestätigen Sie dies.
  4. Geben Sie nun einen eindeutigen Namen sowie eine kurze Beschreibung für diesen Claims Provider Trust ein. Der Name wird dem Benutzer in der späteren Provider-Auswahlliste angezeigt.

  5. Sämtliche Einstellungen und Zertifikate wurden automatisch aus den Metadaten übernommen und werden ab diesem Zeitpunkt laufend aktualisiert.
    Sie können den Erstellungsvorgang also ohne weitere Anpassungen beenden.

Claim Rules einrichten

Folgende Regeln werden benötigt, um den bei edu-ID verwendete Syntax, in ADFS-Claims umzuwandeln.

AcceptanceTransformanceRules
		
    @RuleTemplate = "PassThroughClaims"
@RuleName = "Pass trough Name ID"
c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] == "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"] => issue(claim = c);
@RuleName = "principalName to UPN"
c:[Type == "urn:oid:2.16.756.1.2.5.1.1.1"] => issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType);
@RuleName = "givenname to Given Name"
c:[Type == "urn:oid:2.5.4.42"] => issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType);
@RuleName = "sn to Surname"
c:[Type == "urn:oid:2.5.4.4"] => issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType);
@RuleName = "displayName to Display Name"
c:[Type == "urn:oid:2.16.840.1.113730.3.1.241"] => issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/displayname", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType);
@RuleName = "mail to E-Mail Address"
c:[Type == "urn:oid:0.9.2342.19200300.100.1.3"] => issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType);

Die hier aufgezeigten Regeln sind nur als Beispiel zu verstehen und müssen gegebenenfalls erweitert werden.
Der einfachste Weg diese Regeln einzufügen führt über PowerShell. Alternativ können diese auch über das GUI eingegeben werden. Das ist aber fehleranfällig und viel überflüssige Arbeit.

Bleiben wir also bei Powershell:

  1. Als Erstes die obigen Regeln kopieren und in eine Textdatei speichern. Hier "ExampleRules.txt".
  2. Anschliessend mit folgendem PowerShell Befehl die Regeln importieren.

    Insert Rules to ClaimProviderTrust
    		
        Set-AdfsClaimsProviderTrust -TargetName "SWITCH edu-ID" -AcceptanceTransformRulesFile .\ExampleRules.txt
    
  3. Prüfen Sie in der ADFS GUI, ob alle Claim-Rules importiert wurden.

Den ADFS Server in der AAI Ressource Registry erfassen

Damit der ADFS Server Anfragen an den SWITCH edu-ID Identity Provider weitergeben kann, muss er in der AAI Ressource Registry als Service Provider erfasst werden.

  1. Melden Sie sich als IdP Administrator an der AAI Ressource Registry an.
    https://rr.aai.switch.ch/
  2. Wechseln Sie zu den Ressourcen und fügen Sie eine neue "Resource Description" hinzu

  3. Der SAML 2 Metadata wizard kann mit den Metadaten des ADFS Servers nicht umgehen, wir werden den Eintrag daher manuell erfassen.

Basic Resource Information

  1. Tragen Sie hier als "Entity ID" die Trust-URL Ihres ADFS Servers ein, bspw.
    https://ADFS_SERVER/adfs/services/trust
  2. Als Home Organization wählen Sie Ihre eigene Homeorg aus, nicht etwa die SWITCH edu-ID
  3. Als Home URL tragen Sie den Basispfad des ADFS Servers ein, bspw.
    https://ADFS_SERVER/adfs/ls
  4. Füllen Sie die restlichen Informationen aus und klicken Sie auf "Save and continue"

Service Locations

  1. Tragen Sie, die zuvor gesetzte Home URL bei folgenden Bindings ein.
    SAML2 HTTP POST binding:https://ADFS_SERVER/adfs/ls
    SAML2 HTTP Artifact binding:https://ADFS_SERVER/adfs/ls
  2. Die restlichen Pfade müssen leer sein

Certificates

  1. Auch hier kann der Assistent nicht genutzt werden, navigieren Sie daher zur ADFS Metadata URL bspw.
    https://ADFS_SERVER/federationmetadata/2007-06/federationmetadata.xml

  2. Stellen Sie sicher, dass die Entity ID mit derjenigen übereinstimmt, welche Sie zuvor eingetragen haben und suchen Sie danach in den Metadaten nach "KeyDescriptor use="encryption""

  3. Im nachfolgenden X509Certificate Block finden Sie das benötigte Zertifikat.
    Tragen Sie dieses ein und fahren Sie mit der Konfiguration fort.

Requested Attributes

  1. Wählen Sie die von Ihrer Organisation benötigten Attribute, wir empfehlen folgendes Grundset:

Intended Audience and Interfederation

  1. Wir wollen ausschliesslich SWITCH edu-ID Anmeldungen zulassen, stellen Sie daher sicher, dass keine der Interfederation Optionen angewählt ist und sämtliche "Default Intended Audience" Optionen auf "excluded" stehen.
  2. Wählen Sie danach im Abschnitt "Specific Intended Audience" die SWITCH edu-ID als included an.

  3. Speichern Sie diese Einstellungen und schliessen Sie die Erfassung der neuen Ressource ab.

Es kann bis zu 2 Stunden dauern, bis Ihre Ressource in die AAI Metadaten aufgenommen wird und genutzt werden kann.

Further Information

Related pages:

There is no content with the specified labels