Mål: Teknisk dokumentation hur ett lärosäte gör för att ge handläggare vid lärosätet tillgång till NyA-webben. För frågor kring dokumentationen nedan kontakta operations snabel-a SWAMID.SE |
NyA-webben är ett nytt och enklare sätt att ta fram vissa uppgifter ur NyA. Den är ett
komplement till den s.k. expertklienten, och vänder sig i första hand till personal vid
institutioner (motsvarande) men kan även vara till nytta för andra användargrupper.
Funktionaliteten i den första versionen motsvarar till största del behörighetsnivån
Institutionsanvändare 1 i expertklienten.
Viktiga fördelar med NyA-webben är:
Inloggning och rollhantering sker med hjälp av identitetsfederationen SWAMID mot den lokala identitetshanteraren för respektive lärosäte. Användare av expertklienten använder även i fortsättningen traditionellt användarkonto i NyA.
Förnärvarande finns tre olika roller i NyA-webben:
För att en användare med rollen "Institutionsanvändare – Bedömning" ska kunna se information om personer bör den även ha rollen "Basanvändare".
Dokument från VHS som beskriver rollhantering i NyA:
eduPersonPrincipalName
(EPPN) och commonName
(CN) ska överföras till NyA-webben tillsammans med rollerna.eduPersonEntitlement
(EPE)), se sidan Konfigurera metadata för att använda SWAMID.eduPersonPrincipalName
(EPPN)).
Konfigurationerna under detta avsnitt fungerar endast för Shibboleth 2 eller senare. För simpleSAMLphp och ADFS2 kan konfigurationsexemplen endast användas som inspiration. |
Nedan finns ett skript som transformerar rollattributet swamiGmaiAssertion till rättighetsattributet eduPersonEntitlement inkl. namnbyte på applikationen (NyA -> nya-dw) och tillägg av organisationskod för lärosätet. Skriptet är inte heller begränsat till rollerna basanvändare och institutionsanvändare utan kan hantera alla framtida roller i NyA-webben så länge de följer samma attribututformning som dessa.
Förutsättningar:
<resolver:AttributeDefinition xsi:type="Script" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="NyAwebbenEntitlement" > <resolver:Dependency ref="swamiGmaiAssertion" /> <resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:mace:dir:attribute-def:eduPersonEntitlement" /> <resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.7" friendlyName="eduPersonEntitlement" /> <Script> <![CDATA[ importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider); NyAwebbenEntitlement = new BasicAttribute("NyAwebbenEntitlement"); if (swamiGmaiAssertion) { for (i=0; i < swamiGmaiAssertion.getValues().size(); i++) { if (swamiGmaiAssertion.getValues().get(i).search("urn:mace:swami.se:gmai:NyA:") != -1) { if (swamiGmaiAssertion.getValues().get(i).search(":ladokInstitutionskod=") != -1) { NyAwebbenEntitlement.getValues().add(swamiGmaiAssertion.getValues().get(i).replace(":NyA:", ":nya-dw:").replace(":ladokInstitutionskod=", ":o=YY:norEduOrgUnitUniqueNumber=")); } else { NyAwebbenEntitlement.getValues().add(swamiGmaiAssertion.getValues().get(i).replace(":NyA:", ":nya-dw:") + ":o=YY"); } } } } ]]> </Script> </resolver:AttributeDefinition> |
<resolver:AttributeDefinition xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="memberOf" dependencyOnly="true"> <resolver:Dependency ref="myLDAP" /> </resolver:AttributeDefinition> <resolver:AttributeDefinition xsi:type="Script" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="NyAwebbenEntitlement" > <resolver:Dependency ref="memberOf" /> <resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:mace:dir:attribute-def:eduPersonEntitlement" /> <resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.7" friendlyName="eduPersonEntitlement" /> <Script> <![CDATA[ importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider); // Definiera lärosäteskod i NyA larosatekod = new String("YY"); // Definiera grupp för basanvändare baseGroup = new String("NyA-webben-Base"); // Definiera grupprefix för de olika rollerna deparmentGroupPrefix = new String("NyA-webben-Department-"); deparmentAssessmentGroupPrefix = new String("NyA-webben-DepartmentAssessment-"); NyAwebbenEntitlement = new BasicAttribute("NyAwebbenEntitlement"); if (memberOf) { for (i=0; i < memberOf.getValues().size(); i++) { // Basanvändare ej begränsad till enskild institution if (memberOf.getValues().get(i).equals(baseGroup)) { NyAwebbenEntitlement.getValues().add("urn:mace:swami.se:gmai:nya-dw:base:o=" + larosatekod); } // Institutionsanvändare - utdata begränsat till enskild institution via gruppnamnet else if (deparmentGroupPrefix.equals(memberOf.getValues().get(i).substring(0,deparmentGroupPrefix.length()-1))) { NyAwebbenEntitlement.getValues().add("urn:mace:swami.se:gmai:nya-dw:department:o=" + larosatekod + ":norEduOrgUnitUniqueNumber=" + memberOf.getValues().get(i).substring(deparmentGroupPrefix.length(),memberOf.getValues().get(i).length())); } // Institutionsanvändare - bedömning begränsat till enskild institution via gruppnamnet else if (deparmentAssessmentGroupPrefix.equals(memberOf.getValues().get(i).substring(0,deparmentAssessmentGroupPrefix.length()-1))) { NyAwebbenEntitlement.getValues().add("urn:mace:swami.se:gmai:nya-dw:department_assessment:o=" + larosatekod + ":norEduOrgUnitUniqueNumber=" + memberOf.getValues().get(i).substring(deparmentAssessmentGroupPrefix.length(),memberOf.getValues().get(i).length())); } } } ]]> </Script> </resolver:AttributeDefinition> |
<AttributeFilterPolicy id="releaseNyAwebbenEntitlement"> <PolicyRequirementRule xsi:type="basic:OR"> <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://expert.antagning.se/ecs-sp" /> <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://expert.testa.antagning.se/ecs-sp" /> <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://expert.testb.antagning.se/ecs-sp" /> <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://sp.swamid.se/shibboleth" /> </PolicyRequirementRule> <AttributeRule attributeID="NyAwebbenEntitlement"> <PermitValueRule xsi:type="basic:ANY" /> </AttributeRule> </AttributeFilterPolicy> |