Om de functionaliteit van SURFconext optimaal te kunnen gebruiken is Azure AD Connect aan te raden. Het voorbeeld op deze pagina is door een instelling met ons gedeeld. In deze on-premise AD wordt een mix van standaard en custom attributen gebruikt als basis voor de SURFconext SAML2 sessie attributen. In de beschrijving van de betrokken componenten hieronder wordt als voorbeeld het attribuut 'eduPersonEntitlement' attribuut gebruikt om alle aspecten te belichten. 'eduPersonEntitlement' is een multi-valued custom AD attribuut en illustreert de configuratieprocedure. Hieronder zijn 4 stappen beschreven die dit realiseren.

De gegevens op deze pagina krijgen wij van instellingen die met Azure AD Connect werken en kunnen wij momenteel niet verifiëren.  Heb je aanvullingen of opmerkingen? Stuur dan een mail naar support@surfconext.nl.

Stap 1: Definieer Custom AD attributen

Gebruik de AD schema management tool om custom attributen voor user account objecten in AD te definiëren. Bijvoorbeeld voor eduPersonEntitlement ziet dit er als volgt uit:

dn: CN=EDU-Person-Entitlement,CN=Schema,CN=Configuration,DC=DOMAIN,DC=institute_example,DC=nl
changetype: ntdsschemaadd
objectClass: top
objectClass: attributeSchema
cn: EDU-Person-Entitlement
lDAPDisplayName: eduPersonEntitlement
adminDisplayName: eduPersonEntitlement
adminDescription: URI (either URN or URL) that indicates a set of rights to specific resources
attributeID: 1.3.6.1.4.1.5923.1.1.1.7
attributeSyntax: 2.5.5.12
oMSyntax: 64
isSingleValued: FALSE
searchFlags: 1
showInAdvancedViewOnly: TRUE
systemOnly: FALSE

Na activatie van deze schema extensie kan het eduPersonEntitlement attribuut in alle relevante AD user accounts met de van toepassing zijnde entitlement waarden worden gevuld. Voor de volledige schema definitie file, zie het voorbeeld in de bijlage onder aan deze pagina.

Stap 2: Inrichting AD -> Azure synchronisatie

Na setup van de AD -> Azure synchronisatie applicatie is het zaak om alle attributen die voor SURFconext nodig zijn op te nemen in lijst met te synchroniseren on-premise AD attributen. Dit kan met de AADC sync tool (op de on-premise servers waar de AADC sync applicatie is geïnstalleerd). In deze illustratie: zorg er voor dat het 'eduPersonEntitlement' in de rechter kolom staat in de collectie met te synchroniseren attributen.

Stap 3: Bepalen van de custom attributen name space in Azure/AD

In Azure AD zijn custom attributen gekoppeld aan een specifieke Azure applicatie. Dit mechanisme houdt in dat elke collectie custom attributen uit een bepaalde bron een eigen "name space" heeft. In het geval van de "on-premise AD" synchronisatie is de Azure "Tenant Schema Extension App" hiervoor verantwoordelijk en de application ID behorend bij deze applicatie wordt gebruikt als "name space" element in Azure custom attributennamen. Zoek deze application ID op met de Azure API of portal interface. De waarde er van wordt in de volgende stap symbolisch weergegeven met "{tse_appID}".

Stap 4: SURFconext attribute assertion construction

In de Azure enterprise application waarin de SAML2 attributen voor SURFconext worden bepaald, kan nu een afbeelding gemaakt worden van azure custom attributen naar SURFconext-specifieke SAML2 attribute assertions. Voor "eduPersonEntitlement" kan de volgende attribute vertaling worden ingericht:

Source: 'user', ExtensionID: 'extension_{tse_appID}_eduPersonEntitlement' SamlClaimType: 'urn:mace:dir:attribute-def:eduPersonEntitlement'

Merk op dat geen bijzondere maatregelen nodig zijn om "multi-valued" attributen mappings te maken. Multi-valued attributen worden correct vertaald naar multi-valued attribute assertions. Herhaal dit voor elk ander standaard en custom attribuut dat als attribute assertion in de SURFconext SP SAML response moet worden opgenomen. Hieronder volgt een voorbeeldlijst met attribute mappings die je kunt gebruiken. Dit is een mix van custom en standaard attributen:

urn:mace:dir:attribute-def:uid user.userprincipalname
urn:mace:dir:attribute-def:eduPersonPrincipalName user.userprincipalname
urn:mace:dir:attribute-def:cn user.displayname
urn:mace:dir:attribute-def:sn user.surname

urn:mace:dir:attribute-def:givenName user.givenname
urn:mace:dir:attribute-def:displayName user.displayname
urn:mace:dir:attribute-def:mail user.mail
urn:mace:dir:attribute-def:ou user.extension_{tse_appID}_ou
urn:mace:dir:attribute-def:preferredLanguage user.preferredlanguage

urn:future:mace:terena.org:attribute-def:schacHomeOrganization extension_{tse_appID}_schachomeorganization
urn:mace:dir:attribute-def:eduPersonAffiliation user.extension_{tse_appID}_edupersonaffiliation
urn:mace:dir:attribute-def:eduPersonScopedAffiliation user.extension_{tse_appID}_edupersonscopedaffiliation

urn:mace:dir:attribute-def:eduPersonEntitlement user.extension_{tse_appID}_edupersonentitlement


AD Schema

Hieronder vind je een voorbeeld van een schema definition file.


AD-schema_example.ldif


CXT-59098

  • No labels