Obojstranná predošlá revízia
Predchádzajúca revízia
Nasledujúca revízia
|
Predchádzajúca revízia
|
install-sp-shibboleth [23. 07. 2019 22:24] jsilaci@umb.sk |
— (aktuálne) |
====== Inštalácia Shibboleth SP ====== | |
| |
Pridať repoziár Shiboleth. Obsah konfiguráku sa dá vygenerovať na stránke: https://shibboleth.net/downloads/service-provider/RPMS/ | |
| |
<code> | |
vim /etc/yum.repos.d/shibboleth.repo | |
</code> | |
| |
<code> | |
[shibboleth] | |
name=Shibboleth (CentOS_7) | |
# Please report any problems to https://issues.shibboleth.net | |
type=rpm-md | |
mirrorlist=https://shibboleth.net/cgi-bin/mirrorlist.cgi/CentOS_7 | |
gpgcheck=1 | |
gpgkey=https://shibboleth.net/downloads/service-provider/RPMS/repomd.xml.key | |
enabled=1 | |
</code> | |
| |
<code> | |
yum install shibboleth.x86_64 | |
</code> | |
| |
Po inštalácii sa nachádza konfigurácia v adresári: | |
| |
''/etc/shibboleth/'' | |
| |
a konfiguracia Apache v subore: | |
| |
''/etc/httpd/conf.d/shib.conf'' | |
| |
Do adresára ''/usr/sbin'' sa nainštaluje ''shibd'', ktorý je možné manažovať cez systemctl. | |
| |
Modul ''mod_shib.so'' bude nainštalovaný do ''/usr/lib64/shibboleth''. | |
| |
Pre službu je potrebné zvoliť jednoznačný identifikátor. Odporúčaný postup je taký, že ak sa služba nachádza napríklad na doméne https://www.safeid.sk tak identifikátor bude https://www.safeid.sk/shibboleth. | |
| |
Keď máme zvolený identifkátor, vygenerujeme SSL certifikát, ktorý bude využívať Shibboleth pre komunikáciu s IdP. Odporúča sa vytvoriť nový certifikát a nepoužíť SSL certifikát webu aj za cenu, že vytvorené certifikát bude self signed: | |
| |
Certifikát vytvoríme pomocou nástroja, ktorý sa nainštaloval spolu so Shibboleth SP: | |
| |
<code> | |
/etc/shibboleth/keygen.sh -h www.safeid.sk -e https://www.safeid.sk/shibboleth -f -y 10 | |
</code> | |
| |
Certifikát vygenerovaý týmto príkazom bude mať platnosť 10 rokov. | |
| |
Vygenerovanné súbory budú uložené v adresári /etc/shibboleth a ich názvy budú ''sp-encrypt-cert.pem'', ''sp-encrypt-key.pem'', ''sp-signing-cert.pem'', ''sp-signing-key.pem''. | |
| |
Súborom treba zmeniť vlastníka na používateľa, pod ktorým beží služba shibd: | |
| |
<code> | |
chown shibd:shibd sp-encrypt-cert.pem | |
chown shibd:shibd sp-encrypt-key.pem | |
chown shibd:shibd sp-signing-cert.pem | |
chown shibd:shibd sp-signing-key.pem | |
</code> | |
| |
Do adresára s certifikátmi stiahneme aj certifikát, ktorý používa federácia: | |
| |
<code> | |
wget https://www.safeid.sk/metadata/cert/SAFEID_metadata_signer.pem | |
</code> | |
| |
Podľa potreby upravíme metadata uložené v súbore ''/etc/shibboleth/metadata-template.xml'': | |
| |
<code xml> | |
<?xml version="1.0" encoding="utf-8" ?> | |
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"> | |
<md:SPSSODescriptor> | |
<md:Extensions> | |
<mdui:UIInfo xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui"> | |
<mdui:DisplayName xml:lang="en">safeID Wiki</mdui:DisplayName> | |
<mdui:DisplayName xml:lang="sk">safeID Wiki</mdui:DisplayName> | |
<mdui:Description xml:lang="en">Slovak Academic Federation of Identities Wiki.</mdui:Description> | |
<mdui:Description xml:lang="sk">Wiki stránky Slovenskej akademickej federácie identít.</mdui:Description> | |
<mdui:InformationURL xml:lang="en">https://www.safeid.sk/</mdui:InformationURL> | |
<mdui:InformationURL xml:lang="sk">https://www.safeid.sk/</mdui:InformationURL> | |
<mdui:Logo height="81" width="99">https://www.safeid.sk/lib/tpl/arctic/images/sanetsmall_sk.gif</mdui:Logo> | |
</mdui:UIInfo> | |
</md:Extensions> | |
</md:SPSSODescriptor> | |
<md:Organization> | |
<md:OrganizationName xml:lang="en">The Association of the Users of the Slovak Academic Network SANET</md:OrganizationName> | |
<md:OrganizationName xml:lang="sk">Združenie používateľov slovenskej akademickej dátovej siete SANET</md:OrganizationName> | |
<md:OrganizationDisplayName xml:lang="en">SANET</md:OrganizationDisplayName> | |
<md:OrganizationDisplayName xml:lang="sk">SANET</md:OrganizationDisplayName> | |
<md:OrganizationURL xml:lang="en">http://www.sanet.sk/en</md:OrganizationURL> | |
<md:OrganizationURL xml:lang="sk">http://www.sanet.sk/</md:OrganizationURL> | |
</md:Organization> | |
<md:ContactPerson contactType="technical"> | |
<md:GivenName>Helpdesk</md:GivenName> | |
<md:SurName>UMB</md:SurName> | |
<md:EmailAddress>mailto:helpdesk@umb.sk</md:EmailAddress> | |
</md:ContactPerson> | |
</md:EntityDescriptor> | |
</code> | |
| |
Úpravy urobíme aj v súbore ''shibboleth2.xml'': | |
| |
<code xml> | |
<SPConfig xmlns="urn:mace:shibboleth:3.0:native:sp:config" | |
xmlns:conf="urn:mace:shibboleth:3.0:native:sp:config" | |
clockSkew="180"> | |
<OutOfProcess tranLogFormat="%u|%s|%IDP|%i|%ac|%t|%attr|%n|%b|%E|%S|%SS|%L|%UA|%a" /> | |
| |
<!-- Doplníme ID služby --> | |
<ApplicationDefaults entityID="https://www.safeid.sk/shibboleth" | |
REMOTE_USER="eppn subject-id pairwise-id persistent-id" | |
cipherSuites="DEFAULT:!EXP:!LOW:!aNULL:!eNULL:!DES:!IDEA:!SEED:!RC4:!3DES:!kRSA:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1"> | |
| |
<Sessions lifetime="28800" timeout="3600" relayState="ss:mem" | |
checkAddress="false" handlerSSL="true" cookieProps="https"> | |
| |
<!-- Zadáme URL discovery servisu --> | |
<SSO discoveryProtocol="SAMLDS" discoveryURL="https://wayf.safeid.sk/"> | |
SAML2 | |
</SSO> | |
| |
<Logout>SAML2 Local</Logout> | |
<!-- Nastavíme IP rozsahy, z ktorých môže ppristupovať administrátor k vybraným url (funkciám) --> | |
<LogoutInitiator type="Admin" Location="/Logout/Admin" acl="127.0.0.1 194.160.39.60 194.160.44.13" /> | |
| |
<!-- Metadata su ulozene v subore metadata-template.xml --> | |
<Handler type="MetadataGenerator" Location="/Metadata" signing="false" template="metadata-template.xml"/> | |
| |
<Handler type="Status" Location="/Status" acl="127.0.0.1 194.160.39.60 194.160.44.13"/> | |
| |
<Handler type="Session" Location="/Session" showAttributeValues="false"/> | |
| |
<Handler type="DiscoveryFeed" Location="/DiscoFeed"/> | |
</Sessions> | |
| |
| |
<Errors supportContact="helpdesk@umb.sk" | |
helpLocation="/about.html" | |
styleSheet="/shibboleth-sp/main.css"/> | |
<!-- Informácia o umiestnení metadát federácie a jej podpisového certifikátu (súbor, ktorý sme stiahli) --> | |
<MetadataProvider type="XML" validate="true" | |
url="https://www.safeid.sk/metadata/metadata.safeid.sk.idp.xml" | |
backingFilePath="safeid-idp.xml" maxRefreshDelay="600"> | |
<MetadataFilter type="Signature" certificate="SAFEID_metadata_signer.pem" verifyBackup="false"/> | |
</MetadataProvider> | |
| |
<AttributeExtractor type="XML" validate="true" reloadChanges="false" path="attribute-map.xml"/> | |
| |
<AttributeFilter type="XML" validate="true" path="attribute-policy.xml"/> | |
| |
<!-- Názvy súborov s vygenenerovanými certifikátmi --> | |
<CredentialResolver type="File" use="signing" | |
key="sp-signing-key.pem" certificate="sp-signing-cert.pem"/> | |
<CredentialResolver type="File" use="encryption" | |
key="sp-encrypt-key.pem" certificate="sp-encrypt-cert.pem"/> | |
| |
</ApplicationDefaults> | |
| |
<SecurityPolicyProvider type="XML" validate="true" path="security-policy.xml"/> | |
| |
<ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/> | |
</SPConfig> | |
</code> | |
| |
Spustíme Shibboleth service a reštartujeme Apache. | |
| |
<code> | |
systemctl enable shibd | |
systemctl start shibd | |
</code> | |
| |
Pozrieť aj tento návod: https://accc.uic.edu/answer/how-do-i-install-and-configure-shibboleth | |
alebo: https://wiki.sunet.se/display/SWAMID/3.1+Configure+Shibboleth+SP+-+shibboleth2.xml | |
| |
Následne je treba zabezpečiť aby požadovaný web vyžadoval zabezpečenie cez Shibboleth: | |
| |
<code xml> | |
<Directory "/var/www/html/"> | |
.... | |
AuthType shibboleth | |
require shibboleth | |
</Directory> | |
</code> | |
| |
Nakonic reštartujeme webový server: | |
| |
<code> | |
apachectl graceful | |
</code> | |