-
Notifications
You must be signed in to change notification settings - Fork 27
Keycloak a eduID
K rozjetí eduID federace je potřeba použít fork Keycloaku verze 18 (verze 22 ještě nebyla testována) vyvíjeným EOSC. Dole jsou zmíněny připadné problémy a řešení související s EOSC Keycloakem a eduID.
Jak rozjet:
-
Nainstalovat nejnovější release (nejlépe od verze [18.0.1-2.17) a nainstalovat s přihlašovacím motivem vytvořeným MZK. Release motivu je možno získat zde
-
Rozjet Keycloak příkazem
kc.sh --verbose start
. Další přidatné konfigurace Keycloaku jsou popsány zde. Keycloak běží na výchozím portu 8080.
Jak nakonfigurovat s eduID:
- Udělat potřebné kroky 3 a 4 dle návodu popsány na této stránce.
- Přidat v realmu
kramerius
cs
aen
locale vRealm settings
->Themes
->Supported Locales
- Povolit v realmu
kramerius
duplikátní maily uživatelůRealm settings
->Login
->Duplicate emails
- V Keycloak konzoli v realmu
kramerius
přidat novou federaci v moduluSAML federation
->Add federation
->SAML v2.0 federation
SAML federation | |
---|---|
Alias | eduid |
Import from (ČDK filtr) | https://raw.githubusercontent.com/moravianlibrary/cdk-idp-list/main/idp.xml |
Update frequency | 720 (6 hours) |
Category | Identity providers |
Name | Option |
---|---|
Sync Mode | force |
NameID Policy Format | Transient |
Principal Type | Attribute |
---|---|
Attribute [Name] | urn:oid:1.3.6.1.4.1.5923.1.1.1.13 |
nebo přes POST na API endpoint /admin/realms/kramerius/saml-federations/instances
s JSONem
{
'providerId': 'saml',
'entityIdDenyList': [],
'entityIdAllowList': [],
'registrationAuthorityDenyList': [],
'registrationAuthorityAllowList': [],
'categoryAllowList': {},
'category': 'Identity Providers',
'categoryDenyList': {},
'config': {
'nameIDPolicyFormat': 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient',
'principalType': 'SUBJECT',
'postBindingResponse': 'true',
'xsltOverride': '',
'wantAssertionsEncrypted': 'optional',
'spEntityId': kc_url + '/realms/kramerius',
'postBindingLogoutReceivingRequest': '',
'wantAuthnRequestsSigned': '',
'wantLogoutRequestsSigned': '',
'wantAssertionsSigned': '',
'signSpMetadata': '',
'attributeConsumingServiceIndex': '',
'syncMode': 'FORCE',
'multiplePrincipals': '[{"principalType":"ATTRIBUTE","principalAttribute":"urn:oid:1.3.6.1.4.1.5923.1.1.1.13"}]',
},
'url': 'https://raw.githubusercontent.com/moravianlibrary/cdk-idp-list/main/idp.xml',
'alias': 'eduid',
'updateFrequencyInMins': 720,
}
- Přidat potřebné mappery atributů ve federaci
SAML federation
->eduid
->mappers
- Vygenerovat validní SAML metadata skriptem a přidat metadata do vaší entity v MetaMan
Například pro eduPersonUniqueId
:
create
- 'Mapper Type' = 'Attribute Importer'
- 'Name' = 'eduPersonUniqueId'
- 'Sync Mode Override' = 'force' (nepovinná hodnota, záleží na vašem užití)
- 'Attribute Name' = 'urn:oid:1.3.6.1.4.1.5923.1.1.1.13'
- 'Friendly Name' = 'eduPersonUniqueId'
- 'Name Format' = 'ATTRIBUTE_FORMAT_URI'
- 'User Attribute Name' = 'eduPersonUniqueId' (tento název atributu bude uložen v uživateli Keycloaku)
- 'isRequired' = 'On'
Seznam institucí zapojených do DNNT je k nalezení v repozitáří NLCR/KramVS.
Obsahuje:
- Metadata ID NDK
- Seznam institucí zapojených do DNNT přes eduID
Kvůli chybě v EOSC Keycloaku je nutné mít v metadatech poskytovatelů identit transient
nameid na prvním místě, pokud používáte vlastní zdroj metadat místo filtrovaných metadat od ČDK.
Správně:
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
<md:NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>
Špatně:
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
<md:NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</md:NameIDFormat>
V Moravské zemské knihovně je to řešeno takto:
- Vytvořte mapper typu
Username Template Importer
, template:${ALIAS}.${NAMEID}
, Target:BROKER_USERNAME
Problémy s motivem případně řešte s kolegy v Moravské zemské knihovně.