„ElsevierSP” változatai közötti eltérés
a |
|||
(3 közbenső módosítás, amit egy másik szerkesztő végzett, nincs mutatva) | |||
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 | ||
− | 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 | + | 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. |
<source lang="php"> | <source lang="php"> | ||
− | + | $metadata['https://sdauth.sciencedirect.com/']['authproc'] = array ( | |
96 => array( | 96 => array( | ||
'class' => 'core:TargetedID' | 'class' => 'core:TargetedID' | ||
15. sor: | 76. sor: | ||
'replacement' => '${0}@intezmenyiScope.hu', | 'replacement' => '${0}@intezmenyiScope.hu', | ||
), | ), | ||
− | + | ); | |
+ | |||
</source> | </source> | ||
− | A fenti | + | 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. |
− | |||
− |
A lap jelenlegi, 2014. február 21., 14:56-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.