Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Info

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

Note

Denna sida är under uppbyggnad och är ännu varken fullständig eller testad!

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.

...

  1. Modifiera attribute-resolvern för din IdP så att den inkluderar rättighet att använda NyA-webben enligt nedan beskrivet format (eduPersonEntitlement (epe)), se sidan SWAMID HowTo (Shibboleth 2.x).
  2. Modifiera attribute-release policy för din IdP enligt kod nedan. Syftet är att tillåta ivägskickande av behörighetsinformation till VHS SAMT för test sp.swamid.se
  3. Verifiera mot sp.swamid.se att ni ser namn, e-postadress, rättighet (entitlement) och unik identitet (eduPersonPrincipalName (eppn)).
  4. Kontakta VHS för att få sin IdP inlagd i NyA-webben - appldrift_saml snabel-a VHS.SE.
  5. Verifiera att inloggning med behörigheter fungerar via aktuell inloggningslänk som VHS tillhandahåller.

...

Alternativ 1: Särskilt attribut finns i LDAP för att visa att en användare har en eller flera roller i NyA-webben
Note

Avsnittet ännu ej klart!

...

Känd begränsning:

...

  • Endast rättigheten basanvändare är implementerad i detta skript.

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:

  • När detta skrivs finns två roller NyA-webben, basanvändare och institutionsanvändare.
  • Basanvändare (titta på info, meriter, anmälningar och dokument för sökande) är inte kopplat till institution:
    • I LDAP finns attributet swamiGmaiAssertion med värdet "urn:mace:swami.se:gmai:NyA:base".
    • Till NyA-webben skickas attributet eduPersonEntitlement med värdet "urn:mace:swami.se:gmai:nya-dw:base:o=YY".
  • Institutionsanvändare - utdata (skapa listor och statistik) är kopplad till institution:
    • I LDAP finns attributet swamiGmaiAssertion med värdet "urn:mace:swami.se:gmai:NyA:department:ladokInstitutionskod=ZZZZ".
    • Till NyA-webben skickas attributet eduPersonEntitlement med värdet "urn:mace:swami.se:gmai:nya-dw:department:o=YY:norEduOrgUnitUniqueNumber=ZZZZ".
  • YY är lärosätes kod i NyA, t.ex. UU.
  • ZZZZ är en institutionskod, t.ex. 4010, som användaren har rätt att företräda för aktuell roll i NyA-webben.
Code Block

<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
Code Block

<resolver:AttributeDefinition xsi:type="SimpleSAML2String" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="swamiGmaiAssertion" dependencyOnly="true":shibboleth:2.0:attribute:encoder" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.7" friendlyName="eduPersonEntitlement" />
     <Script>
   <resolver:Dependency ref="myLDAP" />
       </resolver:AttributeDefinition>

<resolver:AttributeDefinition xsi:type="Script" xmlns="urn:mace:shibboleth:2.0:resolver:ad" id="NyAwebbenEntitlement" >
![CDATA[
               importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider);
       <resolver:Dependency ref="swamiGmaiAssertion" />
        <resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:mace:dir:attribute-def:eduPersonEntitlement" />
NyAwebbenEntitlement = new BasicAttribute("NyAwebbenEntitlement");
        <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" />
     if (swamiGmaiAssertion) {
       <Script>
            <![CDATA[
 for (i=0; i < swamiGmaiAssertion.getValues().size(); i++) {
        importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider);

               // Definiera lärosäteskod i NyA
   if (swamiGmaiAssertion.getValues().get(i).search("urn:mace:swami.se:gmai:NyA:") != -1) {
            larosatekod = new String("YY");

               NyAwebbenEntitlement = new BasicAttribute("NyAwebbenEntitlement");
   if (swamiGmaiAssertion.getValues().get(i).search(":ladokInstitutionskod=") != -1) {
            if (swamiGmaiAssertion) {
                    for (i=0; i < swamiGmaiAssertion.getValues().size(); i++) {

 NyAwebbenEntitlement.getValues().add(swamiGmaiAssertion.getValues().get(i).replace(":NyA:", ":nya-dw:").replace(":ladokInstitutionskod=", ":o=YY:norEduOrgUnitUniqueNumber="));
                         // Basanvändare ej begränsad till enskild institution}
                         if (swamiGmaiAssertion.getValues().get(i).equals("urn:mace:swami.se:gmai:NyA:base"))      else {
                                   NyAwebbenEntitlement.getValues().add(String.concat(swamiGmaiAssertion.getValues().get(i).replace("urn:mace:swami.se:gmaiNyA:", ":nya-dw:base") + ":o=YY",larosatekod)););
                              }
                         }
                    }
               }
          ]]>
     </Script>
</resolver:AttributeDefinition>

...

  • När detta skrivs finns två roller NyA-webben, basanvändare och institutionsanvändare.
  • Basanvändare (titta på info, meriter, anmälningar och dokument för sökande) är inte kopplat till institution: :
    • Medlemmar i gruppen "NyA-webben-Base" ska få rollen när de loggar in i NyA-webben.
    • Till NyA-webben skickas attributet eduPersonEntitlement med värdet "
    • eduPersonEntitlement: urn:mace:swami.se:gmai:nya-dw:base:o=YY".
  • Institutionsanvändare - utdata (skapa listor och statistik) är kopplad till institution:
    • Medlemmar i gruppen "NyA-webben-Department-BaseZZZZ" för institution ZZZZ ska få rollen för angiven institutionskod när de loggar in i NyA-webben.
    Institutionsanvändare - utdata (skapa listor och statistik):
    • eduPersonEntitlement: Till NyA-webben skickas attributet eduPersonEntitlement med värdet "urn:mace:swami.se:gmai:nya-dw:department:o=YY:norEduOrgUnitUniqueNumber=ZZZZMedlemmar i gruppen "NyA-webben-Department-ZZZZ" för institution ZZZZ ska få rollen för angiven institutionskod när de loggar in i NyA-webben.
  • YY är lärosätes kod i NyA, t.ex. UU.
  • ZZZZ är en institutionskod, t.ex. 4010, som användaren har rätt att företräda för aktuell roll i NyA-webben.

...

Känd begränsning:

...

  • Grupper i grupper fungerar inte.
Code Block
<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-");

               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 begränsat till enskild institution via gruppnamnet
                         else if (DeparmentGroupPrefixdeparmentGroupPrefix.equals(memberOf.getValues().get(i).substring(0,DeparmentPrefixdeparmentGroupPrefix.length()-1))) {
                              NyAwebbenEntitlement.getValues().add("urn:mace:swami.se:gmai:nya-dw:department:o=" + larosatekod + ":norEduOrgUnitUniqueNumber=" + memberOf.getValues().get(i).substring(DeparmentPrefixdeparmentGroupPrefix.length(),memberOf.getValues().get(i).length()));
                         }
                    }
               }
          ]]>
     </Script>
</resolver:AttributeDefinition>

...

Code Block
<AttributeFilterPolicy id="releaseNyAwebbenEntitlement">
     <PolicyRequirementRule xsi:type="basic:OR">
          <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://wwwexpert.antagning.se/ecs-sp" />
          <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://www.antagning.testa.antagning.se/ecs-sp" />
          <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://www.antagning.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>