„ElsevierSP” változatai közötti eltérés

Innen: KIFÜ Wiki
(Speciális eduPersonTargetedID kiadásának beállítása Shibboleth IdP alatt)
1. sor: 1. sor:
== Speciális eduPersonTargetedID kiadásának beállítása SimpleSAMLphp alatt ==
+
== Speciális eduPersonTargetedID kiadásának beállítása ==
 +
=== Shibboleth IdP alatt ===
 +
 
 +
vim [/path/to]/shibboleth-idp/conf/attribute-resolver.xml
 +
 
 +
Szúrjuk be az alábbi attribútumdefiníciót, ahol
 +
* a <code>scope</code> értéke az intézményi scope (ugyanaz, amit pl. az eduPersonPrincipalName attribútum előállításakor is használ)
 +
* a <code>sourceAttributeID</code> értéke a persistent nameID-t előállító attribútum id-je
 +
 
 +
 
 +
<source lang="php">
 +
    <!-- Buggy edupersonTargetedId required for Elsevier: -->
 +
    <resolver:AttributeDefinition id="elsevierId" xsi:type="Scoped" scope="niif.hu" sourceAttributeID="persistentId"
 +
                                  xmlns="urn:mace:shibboleth:2.0:resolver:ad" >
 +
      <resolver:Dependency ref="storedIdConnector" />
 +
      <resolver:AttributeEncoder xsi:type="enc:SAML2ScopedString"
 +
                                name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" friendlyName="buggy-eduPersonTargetedID"
 +
                                xmlns="urn:mace:shibboleth:2.0:attribute:encoder" />
 +
    </resolver:AttributeDefinition>
 +
</source>
 +
 
 +
vim [/path/to]/shibboleth-idp/conf/attribute-filter.xml
 +
 
 +
'''Fontos''', hogy amennyiben az [[Shib2IdpInstall#Tov.C3.A1bb_a_f.C3.B6der.C3.A1ci.C3.B3ba|ajánlásnak megfelelően]] a [[Resource_Registry|Resource Registry]] által előállított attribute filtert használjuk, akkor ne ezt a dinamikusan frissülő fájlt szerkesszük, hanem az attribute-filter-local.xml-t, és ebben a fájlban végezzük el az alábbi módosításokat.
 +
 
 +
1. Szúrjuk be az alábbi részletet, amely megmondja, hogy az Elsevier SP számára mely attribútumok adandók ki:
 +
<source lang="xml">
 +
    <AttributeFilterPolicy id="buggy-eptid">
 +
            <PolicyRequirementRule xsi:type="basic:AttributeRequesterString" value="https://sdauth.sciencedirect.com" />
 +
            <AttributeRule attributeID="elsevierId">
 +
                <PermitValueRule xsi:type="basic:ANY" />
 +
            </AttributeRule>
 +
            <AttributeRule attributeID="eduPersonScopedAffiliation">
 +
                <PermitValueRule xsi:type="basic:ANY" />
 +
            </AttributeRule>
 +
    </AttributeFilterPolicy>
 +
</source>
 +
 
 +
2. A <code>releaseIDsToAnyone</code> alapértelmezett szabályt módosítsuk az alábbiakra:
 +
 
 +
<source lang="xml">
 +
 
 +
    <!--  Release IDs to anyone -->
 +
    <AttributeFilterPolicy id="releaseIDsToAnyone">
 +
        <PolicyRequirementRule xsi:type="basic:NOT">
 +
                <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://sdauth.sciencedirect.com/" />                                             
 +
        </PolicyRequirementRule>                                                                                                                                     
 +
        <AttributeRule attributeID="transientId">                                                                                                                   
 +
            <PermitValueRule xsi:type="basic:ANY" />                                                                                                                 
 +
        </AttributeRule>                                                                                                                                             
 +
                                                                                                                                                                     
 +
        <AttributeRule attributeID="persistentId">                                                                                                                   
 +
            <PermitValueRule xsi:type="basic:ANY" />                                                                                                                 
 +
        </AttributeRule>                                                                                                                                             
 +
                                                                                                                                                                     
 +
    </AttributeFilterPolicy>
 +
</source>
 +
 
 +
Ez utóbbi módosításra azért van szükség, hogy a mindenki számára kiadható szabványos persistentID ne csapja felül ez Elsevier számára kiadandót.
 +
 
 +
 
 +
=== SimpleSAMLphp alatt ===
 
  vim [/path/to]/simplesaml/metadata/saml20-sp-remote.php
 
  vim [/path/to]/simplesaml/metadata/saml20-sp-remote.php
  

A lap 2012. október 2., 08:01-kori változata

Speciális eduPersonTargetedID kiadásának beállítása

Shibboleth IdP alatt

vim [/path/to]/shibboleth-idp/conf/attribute-resolver.xml

Szúrjuk be az alábbi attribútumdefiníciót, ahol

  • a scope értéke az intézményi scope (ugyanaz, amit pl. az eduPersonPrincipalName attribútum előállításakor is használ)
  • a sourceAttributeID értéke a persistent nameID-t előállító attribútum id-je


    <!-- Buggy edupersonTargetedId required for Elsevier: -->
    <resolver:AttributeDefinition id="elsevierId" xsi:type="Scoped" scope="niif.hu" sourceAttributeID="persistentId"
                                  xmlns="urn:mace:shibboleth:2.0:resolver:ad" >
      <resolver:Dependency ref="storedIdConnector" />
      <resolver:AttributeEncoder xsi:type="enc:SAML2ScopedString" 
                                 name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" friendlyName="buggy-eduPersonTargetedID"
                                 xmlns="urn:mace:shibboleth:2.0:attribute:encoder" />
    </resolver:AttributeDefinition>
vim [/path/to]/shibboleth-idp/conf/attribute-filter.xml

Fontos, hogy amennyiben az ajánlásnak megfelelően a Resource Registry által előállított attribute filtert használjuk, akkor ne ezt a dinamikusan frissülő fájlt szerkesszük, hanem az attribute-filter-local.xml-t, és ebben a fájlban végezzük el az alábbi módosításokat.

1. Szúrjuk be az alábbi részletet, amely megmondja, hogy az Elsevier SP számára mely attribútumok adandók ki:

    <AttributeFilterPolicy id="buggy-eptid">
            <PolicyRequirementRule xsi:type="basic:AttributeRequesterString" value="https://sdauth.sciencedirect.com" />
            <AttributeRule attributeID="elsevierId">
                <PermitValueRule xsi:type="basic:ANY" />
            </AttributeRule>
            <AttributeRule attributeID="eduPersonScopedAffiliation">
                <PermitValueRule xsi:type="basic:ANY" />
            </AttributeRule>
    </AttributeFilterPolicy>

2. A releaseIDsToAnyone alapértelmezett szabályt módosítsuk az alábbiakra:

    <!--  Release IDs to anyone -->
    <AttributeFilterPolicy id="releaseIDsToAnyone">
        <PolicyRequirementRule xsi:type="basic:NOT">
                 <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://sdauth.sciencedirect.com/" />                                              
        </PolicyRequirementRule>                                                                                                                                      
        <AttributeRule attributeID="transientId">                                                                                                                     
            <PermitValueRule xsi:type="basic:ANY" />                                                                                                                  
        </AttributeRule>                                                                                                                                              
                                                                                                                                                                      
        <AttributeRule attributeID="persistentId">                                                                                                                    
            <PermitValueRule xsi:type="basic:ANY" />                                                                                                                  
        </AttributeRule>                                                                                                                                              
                                                                                                                                                                      
    </AttributeFilterPolicy>

Ez utóbbi módosításra azért van szükség, hogy a mindenki számára kiadható szabványos persistentID ne csapja felül ez Elsevier számára kiadandót.


SimpleSAMLphp alatt

vim [/path/to]/simplesaml/metadata/saml20-sp-remote.php

Beállítjuk, hogy csak az elsevier SP-je esetén az attribútum előállítás és kiadás folyamatát toldja meg még egy lépéssel. Ehhez szükséges, hogy a fenti fájlba vegyük fel állandó elemként az Elsevire SP metadatájának kiegészítéseként az alábbi PHP tömböt. Fontos, hogy a tömb egyes elemei előtt szereplő számok magasabbak legyenek, mint az IdP általános feloldási szabályainál megadott számok, de alacsonyabbak, mint a jellemzően a folyamat végén beállított 'name2oid' mappelések.

$metadata['https://sdauth.sciencedirect.com/']['authproc'] = array (
               96 => array(
                        'class' => 'core:TargetedID'
               ),
               97 => array(
                       'class' => 'core:AttributeAlter',
                       'subject' => 'eduPersonTargetedID',
                       'pattern' => '/^.*$/',
                       'replacement' => '${0}@intezmenyiScope.hu',
               ),
);

A fenti kódrészlet annyit teszi, hogy újragenerálja az alapértelmezett eduPersonTargetedID-t egyszerű formában (csak a stringet, a NameID-s xml struktúra nélkül), majd mögé teszi az intézményi scope-ot. Fontos, hogy a megoldás feltételezi azt, hogy az Elsevier SP metadatájának további részei betöltésre kerülnek pl. a metarefresh modul által.