Azure kent enkele beperkingen aangaande Multi Valued attributen. Dit is in SURFconext een veel gebruikte techniek. Azure is hierin minder flexibel in dan andere identity management systemen van Microsoft, zoals ADFS. Op deze pagina vind je achtergrondinformatie.

Probleemstelling

Als identiteitsoplossing kan Azure AD worden gezien als een Active Directory Lightweight Directory Services (AD LDS) implementatie. On premises wordt deze oplossing gebruikt om specifieke applicaties (en hun schema-extenties) of specifieke objecten (zoals gastgebruikers) te ondersteunen. AD LDS heeft, net als AD DS een limiet van objecten die onvoldoende is voor een dienst die mondiaal beschikbaar is. Microsoft heeft daarom de objecten die over meerdere AD LDS instanties gebruikt kunnen worden dynamisch worden beperkt. Hieraan ligt de beperking van het gebruik van multi-valued attributen ten grondslag.

SURFconext heeft meerdere attributen die multi-valued kunnen zijn: entitlements, affiliation, personal code etc. In Azure hebben we de volgende mogelijkheden om multivalued attributen te realiseren:

  • Gebruik Azure AD Connect om multivalued attributen te gebruiken zoals je gewend bent en om alles uit SURFconext te halen.
  • Kies voor 1 multivalued attribuut in een standaard Azure oplossing door gebruik te maken van Assigned Roles.

Azure AD Connect

Organisaties kunnen ervoor kiezen om objecten zoals accounts, groepen en apparaten in Azure AD zelf aan te maken. Dit is de meest voor hand liggende oplossing. Om multi-valued attributen mogelijk te maken moet je kiezen te synchroniseren vanuit een organisatie-eigen, on-premise, Active Directory LDAPv3 compatibele identiteitsoplossing. Er zijn instellingen die hiervan gebruik maken. Wanneer objecten als dit worden gesynchroniseerd, spreken we over Hybride Identiteiten. Ook attributen van objecten met meerdere waarden (multi-valued attributen dus), en attributen vanuit eigen schema extensies kunnen dan worden gesynchroniseerd en doorgegeven aan een applicatie zoals SURFconext. Zie het plaatje hieronder.

architectural diagram

Voor synchronisatie bestaan verschillende oplossingen, maar Azure AD Connect is de oplossing die door het overgrote deel van organisaties wordt gebruikt. Met Azure AD Connect kan ook worden ingesteld wat de authenticatiemethode is. Hierbij kan worden gekozen uit Federatie met Active Directory Federation Services (AD FS) of PingFederate, Pass through Authentication (PTA) of Password Hash Synchronization (PHS). Dit valt buiten de scope van dit artikel maar houd hier rekening mee als je hier voor kiest.

Multivalued Attributen door gebruik te maken van Assigned Roles

Zoals aangegeven kun je, als je geen on premise oplossing zoals Azure AD Connect hebt, één attribuut naar SURFconext vanuit Azure AD multivalued doorgeven aan SURFconext. Dit doe je door gebruik te maken van "User Assigned Roles".  Gebruik hiervoor de management interface “User and groups” van Azure. Hier voeg je alle rollen die je wilt toekennen aan een gebruiker toe die je op zijn beurt weer koppelt aan een attribuut zoals bijvoorbeeld eduPersonAffiliation. Een gebruiker kan zowel employee als student zijn. Ken een of meer van deze rollen toe aan een gebruiker. Vervolgens kun je onder de "Single Sign-On" configuratie van de "Enterprise Application" de Assigned Roles koppelen aan een claim. Bijvoorbeeld:


Claim

Name

Namespace

Source

Source attribute

eduPersonAffiliation

urn:mace:dir:attribute-def:eduPersonAffiliation

Leeg laten

Attribute

User.assignedroles

De stappen hiervoor zijn nader uitgewerkt op deze pagina.

Deze Assigned roles zijn aan meerdere claims, en daarmee meerdere attributen toe te kennen. Er kan dan echter geen onderscheid gemaakt worden welke rol je aan welke claim toekent. Dan kan het zijn dat rollen in eduPersonAffiliation ook in eduPersonEntitlement terrecht komen, en omgekeerd.  Wij doen onderzoek of daar in de toekomst in SURFconext meer mee gedaan kan worden. De Assigned Roles zijn per gebruiker beperkt tot 8 dus de mogelijkheden zoals nu geïmplementeerd in Azure zijn beperkt.

Conclusie

Met de beperkte mogelijkheden die Azure levert inzake multivalued attributen is het zaak dat je goed nadenkt over de keuze hoe hier mee om te gaan. Je zult een on-prem oplossing in de vorm van Azure AD Connect in moeten richten om het maximale uit SURFconext te halen of je kiest welk attribuut multivalued met SURFconext gaat werken.


  • No labels