SWITCH edu-ID IdP als zusätzliche Identity Provider im ADFS 4.0
Wie in einer der vorherigen Blogeintrag erwähnt, wird SWITCH edu-ID zu einer lebenslangen digitale Identität in das Hochschuleumfeld.
Sicherlich kennt Ihr das Problem, das in vielen Organisationen die Webanwendungen mit unterschiedlichen Sign-In Page daher kommen, das hat teils auch damit zu tun, dass die Identitätsattribute über verschiedene Identity Provider zur Verfügung gestellt werden.
Das ADFS (Active Directory Federation Service) von der Microsoft ermöglicht in einer Active Directory Umgebung die Nutzung von SAML Sign-In Protokoll, dazu auch noch die Möglichkeit den Benutzer eine einheitliche und nach Organisations Bedürfnissen angepasste Sign-In Page für Webanwendungen anzubieten und gleichzeitig den Identitätsattributen von verschiedenen Identity Provider an Applikationen über mehrere Protokolle und Token typen weiterzugeben.
Mehr zu ADFS 4.0 (Windows Server 2016):
https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/overview/whats-new-active-directory-federation-services-windows-server
Da der aktuelle Hochschulenweite Identity Federation mit SWITCHaai für die aktiven Hochschul angehörige eingeschränkt bleibt, bietet die SWITCH edu-ID die Möglichkeit ohne einen aktiven Mitgliedschaft an einer Hochschule, die von der Hochschulen freigegebene Ressourcen zu nutzen. Um den Zugang auf die Ressourcen über einen einheitliche Sign-In Page zu ermöglichen wäre eine möglichkeit die SWITCH edu-ID über das ADFS anzubieten. So können z. B. die interne Geschäftsapplikationen über das ADFS angebunden werden und als Sign-In Protokoll WS-FED und als Authentisierungstyp Kerberos oder NTLM nutzen, die Applikationen welche ohne eine aktive Mitgliedschaft angeboten werden, können über die SWITCH edu-ID mit SAML als Sign-In Protokoll und als Authentisierungstyp Form-Based angebunden werden.
Beispiellayout:
SWITCHaai/edu-ID IdP Konfiguration:
ADFS als SWITCHaai Ressource auf der Resource Registry Seite (https:/rr.aai.switch.ch/) einrichten
Ein Hinweis noch um SWITCH edu-ID zuzulassen:
ADFS 4.0 Konfiguration:
Neu mit ADFS 4.0 können auch Metadata Files mit mehreren Entity Einträge in einem File eingelesen werden, dafür wird der folgende Befehl verwendet:
Add-AdfsClaimsProviderTrust -Name “SWITCH edu-ID” -MetadataUrl https://metadata.aai.switch.ch/entities/eduid -AcceptanceTransformRulesFile .\DefaultAcceptanceRules.txt -AutoUpdateEnabled $true -MonitoringEnabled $true
Mit diesem Befehl wird der IDP von SWITCH edu-ID aus der Metadata File im ADFS als ClaimsProviderTrust erstellt.
ClaimTrustProvider auslesen:
Get-AdfsClaimsProviderTrust | ft Name, Identifier
Beispiel für eine AcceptanceRules.txt File:
@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);
ADFS 4.0 Test:
Auf der ADFS Home Realm Discovery (HRD) Page wird zusätzlich zu Active Directory der SWITCH edu-ID IdP angeboten.
HRD: https://adfs.domain.ch/adfs/ls/idpinitiatedsignon
Um die Display Name der IdP auf der ADFS HRD Page anzupassen, muss die Display name der Claims Provider Trust auf der ADFS Server angepasst werden.