...
Synkronisering av ESI | Beskrivning |
---|---|
Ladok -> eduID | Lärosätet kan tillåta eduID att hämta ESI för lärosätets studenter från Ladok (via Ladoks REST-API) |
Ladok -> Lärosäte -> eduID | Lärosätet kan själv hämta ESI för sina studenter från Ladok och därefter skicka in dessa till eduID (via en SCIM-integration mot eduID) |
eduID -> Lärosäte | Lärosätet kan hämta ESI för sina studenter från eduID (via en SCIM-integration mot eduID) |
Att göra attributrelease av ESI från en identitetsutfärdare
...
MyAcademicID använder entitetskategorin Géant Data Protection Code of Conduct för alla attribut som överförs från lärosätenas identitetsutfärdare förutom för European Student Identifier (ESI). Det beror på att ESI använder det multivärda attributet schacPersonalUniqueCode. Detta attribut kan innehålla många olika värden med olika syfte och det är av integritets- och säkerhetsskäl endast lämpligt att släppa ESI till tjänster som har rätt att använda det.
...
För Shibboleth Identity Provider har SWAMID uppdaterat SWAMID:s exempelfiler för resolver och filter på hur ESI-värdet släpps genom ett automatiserat beslut. Se wikisidorna "Example of a standard attribute resolver for Shibboleth IdP v3.4.0 and above" och "Example of a standard attribute filter for Shibboleth IdP v3.4.0 and above" och sök på attributet schacPersonalUniqueCode för att se exempelkonfigurationerna.
Active Directory Federation Services (ADFS)
...
ADFS Toolkit har än så länge inte inbyggt stöd i version 2.0.0 och 2.0.1 för att släppa ESI via entitetskategori utan det behöver f.n. konfigureras manuellt i ADFS för respektive tjänst som använder ESI. För att manuellt konfigurera attributrelease av ESI till MyAcademicID se rubriken "Manuell konfiguration av attributrelease" nedan samt rubriken "Configuring manual Attribute Release" på wikisidan How to consume SWAMID metadata with ADFS Toolkit.ADFS Toolkit kommer att uppdateras med stöd för ESI-kategorin vid nästa uppdatering.en uppdatering av SWAMID-inställningarna behöver laddas ner och konfigureras manuellt. ADFS Toolkit kommer från och med version 2.1.0 att ha stöd för ESI-kategorin. Det finns inget stöd i version 1.0 och tidigare!
Instruktion för att hantera ESI i ADFS Toolkit 2.0.0 och 2.0.1
För att snabbt få stöd för ESI-kategorin innan den byggts in i ADFS Toolkit har SWAMID släppt en utökad federationsfil som kan importeras via ett kommando, se nedan. Federationsfilen innehåller dels specifika entitetskategorier för SWAMID, dels defaultvärden för ADFS Toolkit så att man inte behöver ta reda på URL:en till metadatat eller certifikatets fingerprint som signerar metadatat.
Steg 1 - Ladda ner den nya versionen av SWAMID:s federationsfil
Använd följade kommando för att ladda ner och uppdatera SWAMID:s federationsfil(er):
Code Block | ||
---|---|---|
| ||
Get-ADFSTkFederationDefaults -URL https://mds.swamid.se/md/SWAMID_FederationDefaults.zip -InstallDefaults |
Federationsfilen packas upp och lägger sina filer i mappen "C:\ADFSToolkit\config\federation\SWAMID".
Den intressanta filen i det här sammanhanget är "C:\ADFSToolkit\config\federation\SWAMID\SWAMID_entityCategories.ps1".
I filen har vi lagt till ett kodblock, #European Student Identifier Entity Category, som i sin tur innehåller två delar, en av dem är utkommenterad (raderna som startar med #).
Code Block | ||
---|---|---|
| ||
#European Student Identifier Entity Category
$TransformRules = [Ordered]@{}
$TransformRules.schacPersonalUniqueCode = [PSCustomObject]@{
Rule=@"
@RuleName = "compose schacPersonalUniqueCode for ESI"
c:[Type == "urn:mace:dir:attribute-def:schacPersonalUniqueCode", Value =~ "^urn:schac:PersonalUniqueCode:int:esi:"]
=> issue(Type = "urn:oid:1.3.6.1.4.1.25178.1.2.14",
Value = c.Value,
Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri");
"@
Attribute="urn:mace:dir:attribute-def:schacPersonalUniqueCode"
AttributeGroup="ID's"
}
# $TransformRules.schacPersonalUniqueCode = [PSCustomObject]@{
# Rule=@"
# @RuleName = "compose schacPersonalUniqueCode for ESI"
# c:[Type == "urn:mace:dir:attribute-def:schacPersonalUniqueCode"]
# => issue(Type = "urn:oid:1.3.6.1.4.1.25178.1.2.14",
# Value = "urn:schac:PersonalUniqueCode:int:esi:ladok.se:externtstudentuid-" + c.Value,
# Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri");
# "@
# Attribute="urn:mace:dir:attribute-def:schacPersonalUniqueCode"
# AttributeGroup="ID's"
# }
$IssuanceTransformRuleCategories.Add("https://myacademicid.org/entity-categories/esi",$TransformRules)
### |
- Det övre stycket släpper alla värden i schacPersonalUniqueCode som böjar på "urn:schac:PersonalUniqueCode:int:esi:".
- Det nedre stycket tar alla värden i schacPersonalUniqueCode och släpper ett nytt värde som byggs ihop av "urn:schac:PersonalUniqueCode:int:esi:externtstudentuid-" + värdet.
Har ni behovet att bygga ihop ESI-strängen, kommentera ut det övre stycket och avkommentera det undre.
Steg 2 - Konfigurera var ADFS Toolkit kan hämta värden för schacPersonalUniqueCode
Fil att ändra är C:\ADFSToolkit\config\institution\config.Swamid.xml (standardplats).
Lägg till följande rad någonstans i filen inom <attributes> taggen (långt ner i filen).
Code Block | ||
---|---|---|
| ||
<attribute type="urn:mace:dir:attribute-def:schacPersonalUniqueCode" store="Active Directory" name="externtstudentuid" /> |
Observera att attributnamnet externtstudentuid måste ersättas med det attribut där ni lagrar ESI-värdet i Active Directory.
Värdet kan lika gärna hämtas från en annan källa, t.ex. SQL/Custom Store om så önskas.
Steg 3 - Gör en import av en SP och tvinga en entitetskategori
För att testa konfigurationen ovan kan man antingen importera en SP som har rätt entitetskategori i metadatat eller tvinga en entitetskategori på en test-SP.
Man kan också "torrsimma" och emulera vilka attribut som kommer släppas med kommadot Get-ADFSTkToolsIssuanceTransformRules.
Använd följande kommando för att se attributreglerna som kommer skapas för SWAMID:s testtjänst för ESI:
Code Block | ||
---|---|---|
| ||
Get-ADFSTkToolsIssuanceTransformRules -entityId https://esi.release-check.swamid.se/shibboleth |
Använd följande kommando för att tvinga en entitetskategori på MyAcademicID:
Code Block | ||
---|---|---|
| ||
Import-ADFSTkMetadata -EntityId 'https://proxy.prod.erasmus.eduteams.org/metadata/backend.xml' -ConfigFile 'C:\ADFSToolkit\config\institution\config.Swamid.xml' -ForcedEntityCategories 'https://myacademicid.org/entity-categories/esi' -ForceUpdate |
För att se resultatet av importen, använd följande kommando:
Code Block | ||
---|---|---|
| ||
Get-AdfsRelyingPartyTrust -Identifier 'https://proxy.prod.erasmus.eduteams.org/metadata/backend.xml' | Select -ExpandProperty IssuanceTransformRules |
Manuell konfiguration av attributrelease
...