Mod auth mellon diegimas ir konfigūravimas: Skirtumas tarp puslapio versijų
(Naujas puslapis: Kategorija:SSO == mod_auth_mellon == Tai Apache modulis, autentifikuojantis vartotoją pas SAML 2.0 IdP ir suteikiantis vartotojui prieigos teises į webserverio katalogus,...) |
(→mod_auth_mellon) |
||
24 eilutė: | 24 eilutė: | ||
*metadataIdP.xml: | *metadataIdP.xml: | ||
− | wget https://login. | + | wget https://login.domenas.lt/simplesaml/saml2/idp/metadata.php |
*metadataSP.xml: | *metadataSP.xml: | ||
30 eilutė: | 30 eilutė: | ||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | <?xml version="1.0" encoding="UTF-8" standalone="yes"?> | ||
<EntityDescriptor | <EntityDescriptor | ||
− | entityID="https:// | + | entityID="https://paslauga.domenas.lt" |
xmlns="urn:oasis:names:tc:SAML:2.0:metadata"> | xmlns="urn:oasis:names:tc:SAML:2.0:metadata"> | ||
<SPSSODescriptor | <SPSSODescriptor | ||
38 eilutė: | 38 eilutė: | ||
<SingleLogoutService | <SingleLogoutService | ||
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" | Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" | ||
− | Location="https:// | + | Location="https://paslauga.domenas.lt/mellon/logout" /> |
<NameIDFormat> | <NameIDFormat> | ||
urn:oasis:names:tc:SAML:2.0:nameid-format:transient | urn:oasis:names:tc:SAML:2.0:nameid-format:transient | ||
46 eilutė: | 46 eilutė: | ||
isDefault="true" | isDefault="true" | ||
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" | Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" | ||
− | Location="https:// | + | Location="https://paslauga.domenas.lt/mellon/postResponse" /> |
</SPSSODescriptor> | </SPSSODescriptor> | ||
</EntityDescriptor> | </EntityDescriptor> | ||
64 eilutė: | 64 eilutė: | ||
Sukonfigūruojame IdP. Tam .../simplesamlphp/metadata/saml20-sp-remote.php faile turi atsirasti eilutės: | Sukonfigūruojame IdP. Tam .../simplesamlphp/metadata/saml20-sp-remote.php faile turi atsirasti eilutės: | ||
− | $metadata['https:// | + | $metadata['https://paslauga.domenas.lt'] = array ( |
'consent.disable' => TRUE, | 'consent.disable' => TRUE, | ||
− | 'AssertionConsumerService' => 'https:// | + | 'AssertionConsumerService' => 'https://paslauga.domenas.lt/mellon/postResponse', |
− | 'SingleLogoutService' => 'https:// | + | 'SingleLogoutService' => 'https://paslauga.domenas.lt/mellon/logout', |
− | 'metadata-index' => 'https:// | + | 'metadata-index' => 'https://paslauga.domenas.lt/mellon/metadata', |
'metadata-set' => 'saml20-sp-remote', | 'metadata-set' => 'saml20-sp-remote', | ||
'name' => array ( | 'name' => array ( | ||
76 eilutė: | 76 eilutė: | ||
'attributes' => array('uid', 'eduPersonAffiliation'), | 'attributes' => array('uid', 'eduPersonAffiliation'), | ||
'contacts' => array ( | 'contacts' => array ( | ||
− | 'surName' => ' | + | 'surName' => 'Pavardė', |
− | 'givenName' => ' | + | 'givenName' => 'Vardas', |
− | 'emailAddress' => ' | + | 'emailAddress' => 'vardas.pavarde@domenas.lt', |
'contactType' => 'technical', | 'contactType' => 'technical', | ||
), | ), |
Dabartinė 09:14, 3 spalio 2017 versija
mod_auth_mellon
Tai Apache modulis, autentifikuojantis vartotoją pas SAML 2.0 IdP ir suteikiantis vartotojui prieigos teises į webserverio katalogus, priklausomai nuo iš IdP gautų atributų reikšmių.
Modulio diegimas:
apt-get install libapache2-mod-auth-mellon
Šiam moduliui reikalingi tam tikri kiti paketai, kuriuos jis pats pasiūlys įsidiegti.
Modulio globali konfigūracija yra čia:
/etc/apache2/mods-available/auth_mellon.conf
Paprastai čia nieko keisti nereikia, tinka default nustatymai.
Prieš konfigūruojant apache, reikia turėti raktą ir xml failus, kuriuos padėsime į /etc/apache2/mellon katalogą.
- SP.key:
openssl req -newkey rsa:2048 -new -x509 -days 3652 -nodes -out SP.crt -keyout SP.key
- metadataIdP.xml:
wget https://login.domenas.lt/simplesaml/saml2/idp/metadata.php
- metadataSP.xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <EntityDescriptor entityID="https://paslauga.domenas.lt" xmlns="urn:oasis:names:tc:SAML:2.0:metadata"> <SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://paslauga.domenas.lt/mellon/logout" /> <NameIDFormat> urn:oasis:names:tc:SAML:2.0:nameid-format:transient </NameIDFormat> <AssertionConsumerService index="0" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://paslauga.domenas.lt/mellon/postResponse" /> </SPSSODescriptor> </EntityDescriptor>
Šiame faile svarbu, kad EntityID sutaptų su IdP konfigūracijoje naudojamu ID, bei abu Location parametrai turi rodyti į atitinkamus mod_auth_mellon endpoint URL.
Šių failų sugeneravimui galima naudoti skriptą:
wget https://raw.githubusercontent.com/UNINETT/mod_auth_mellon/master/mellon_create_metadata.sh chmod +x mellon_create_metadata.sh mellon_create_metadata.sh urn:someservice https://sp.example.org/mellon
Sugeneruotus failus padedame čia:
/etc/apache2/mellon
Sukonfigūruojame IdP. Tam .../simplesamlphp/metadata/saml20-sp-remote.php faile turi atsirasti eilutės:
$metadata['https://paslauga.domenas.lt'] = array ( 'consent.disable' => TRUE, 'AssertionConsumerService' => 'https://paslauga.domenas.lt/mellon/postResponse', 'SingleLogoutService' => 'https://paslauga.domenas.lt/mellon/logout', 'metadata-index' => 'https://paslauga.domenas.lt/mellon/metadata', 'metadata-set' => 'saml20-sp-remote', 'name' => array ( 'en' => 'Equipment monitoring system', 'lt' => 'Įrangos stebėjimo sistema', ), 'attributes' => array('uid', 'eduPersonAffiliation'), 'contacts' => array ( 'surName' => 'Pavardė', 'givenName' => 'Vardas', 'emailAddress' => 'vardas.pavarde@domenas.lt', 'contactType' => 'technical', ), 'authproc' => array( // Convert LDAP names to oids. 100 => array('class' => 'core:AttributeMap', 'oid2name'), ), );
Aišku konfigūraciją reikia adaptuoti pagal savo poreikius.
Apache vhost'o konfigūracija:
# Vieta, kurioje sukonfigūruotas mellon endpoint'as <Location /mellon> MellonEnable "info" MellonSPPrivateKeyFile "/etc/apache2/mellon/SP.key" MellonSPMetadataFile "/etc/apache2/mellon/metadataSP.xml" MellonIdPMetadataFile "/etc/apache2/mellon/metadataIdP.xml" </Location> # Vieta, kurią norime leisti tik autorizuotiems vartotojams <Location /> MellonEnable "auth" MellonIdPMetadataFile "/etc/apache2/mellon/metadataIdP.xml" MellonRequire "eduPersonAffiliation" "employee" MellonUser "uid" MellonSecureCookie On MellonCookiePath / </Location>
Debug'inimui galima susikurti php failą, kuris parodytų apache kintamųjų reikšmes po autentifikacijos:
<?php header('Content-Type: text/plain'); foreach($_SERVER as $key=>$value) { if(substr($key, 0, 7) == 'MELLON_') { echo($key . '=' . $value . "\r\n"); } } foreach($_SERVER as $key=>$value) { echo($key . '=' . $value . "\r\n"); } ?>
Pastaba: rekomenduojama naudoti ir sertifikatus, tam turėtų atsirasti informacija apie naudojamą sertifikatą xml failuose bei apache config'e.
Modulio dokumentacija:
https://github.com/UNINETT/mod_auth_mellon