Muutokset

Siirry navigaatioon Siirry hakuun

Tekniikka/Mediawiki/pre1.27

4 625 merkkiä lisätty, 5. helmikuuta 2021 kello 15.13
p
TUOMALA JUHA 10000350X siirsi sivun Tekniikka/Mediawiki/1.27 uudelle nimelle Tekniikka/Mediawiki/pre1.27 luomatta ohjausta
== Varmennetunnistus ==
=== Apache ==='''Asiakaspään varmennetta''' hyödyntävää tunnistusta rakennettaessa tarvitsee erotella normaali sivujen käyttö pelkästä tunnistustapahtumasta koska älykortin lukeminen jokaisella sivunlatauksella ei ole tarpeellista eikä mielekästä sen hitauden takia. Älykortin varmenteella luodaan siis istunto ja sen tunniste tallennetaan selaimen keksivarastoon jolla istuntoa ylläpidetään latauksesta toiseen. Yhteyden voi yhä suojata pelkällä palvelinpään SSL-varmenteella kuten normaalisti ilman käyttäjän tunnistusta tehdään.
=== Apache httpd.conf ===
'''Mediawiki''' käyttää suurimmaksi osaksi '''index.php''' scriptiä ja kaikkia wikin sivuja osoitetaan sen title= argumenteilla. Apache web-palvelin on hieman hankala käsitellessä näitä urleja, sillä se käsittelee linkin REQUEST_URI-osan ja sen kysymysmerkin (?) jälkeisen osan, QUERY_STRING-kyselyn erikseen. Tämä pätee myös erikoissivuihin (''title=Toiminnot:Kirjaudu_sisään, title=Spaceial:UserLogin'') joissa siis tulisi vaatia käyttäjän varmennetta '''SSLRequireSSL''' ja '''SSLVerifyClient require''' SSL-asetuksilla. Mediawikissä tarvittavia virtuaaliserverin lokaatiopohjaisia asetuksia ei voi hyödyntää suoraan, koska Location ja LocationMatch määrittelyt eivät toimi QUERY_STRING-osan kanssa. Puutteen voi kiertää RewriteEngine-määrittelyillä jotka muuttavat linkin eri osat yhdeksi REQUEST_URI:ksi jota voi sitten käyttää Location -lohkon määrityksissä.   <VirtualHost 212.16.100.42:80> AddHandler php5-script .php AddType text/html .php DirectoryIndex index.html index.shtml index.php RewriteEngine on RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} /mediawiki/index.php RewriteCond %{QUERY_STRING} title=Toiminnot:Kirjaudu_sis%C3%A4%C3%A4n&returnto=Etusivu RewriteRule ^(.*)$ https://%{SERVER_NAME}/mediawiki/index.php?title=Toiminnot:Kirjaudu_sisään&returnto= Etusivu [R] ScriptAlias /wiki /srv/www/digisaatio.fi/mediawiki/index.php </VirtualHost> <VirtualHost 212.16.100.42:443> DirectoryIndex index.html index.shtml index.php AddHandler php5-script .php AddType text/html .php RewriteEngine on RewriteCond %{REQUEST_URI} /wiki/Toiminnot:Kirjaudu_sis%C3%A4%C3%A4n RewriteRule /wiki/Toiminnot:Kirjaudu_sis%C3%A4%C3%A4n /auth/fineid [PT,QSA] RewriteCond %{REQUEST_URI} /mediawiki/index.php RewriteCond %{QUERY_STRING} title=Toiminnot:Kirjaudu_sis%C3%A4%C3%A4n&returnto=Etusivu RewriteRule /mediawiki/index.php /auth/fineid [PT,QSA] RewriteCond %{REQUEST_URI} /mediawiki/index.php RewriteCond %{QUERY_STRING} title=Toiminnot:Kirjaudu_sis%C3%A4%C3%A4n&returnto=Etusivu&action=submitlogin&type=login&returnto=Etusivu RewriteRule /mediawiki/index.php /auth/fineid [PT,QSA] ScriptAlias "/auth/fineid" /srv/www/digisaatio.fi/mediawiki/index.php SSLEngine on SSLProxyEngine off SSLProtocol All SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM:+SSLv3 SSLOptions +OptRenegotiate +StdEnvVars +ExportCertData SSLCertificateFile /srv/sys/pki/digisaatio.fi.cert.pem SSLCertificateKeyFile /srv/sys/pki/digisaatio.fi.key.pwdless.pem SSLCACertificatePath /srv/sys/pki/ca <Location "/auth/fineid" > SSLRequireSSL SSLVerifyClient require SSLVerifyDepth 2 SSLRequire %{SSL_CLIENT_I_DN_OU} eq "Valtion kansalaisvarmenteet" </Location> </VirtualHost> RewriteRule '''PT''' (pass through) ja '''QSA''' (Query String Append) asetukset löytyvät dokumentaatiosta: [https://httpd.apache.org/docs/2.4/rewrite/flags.html httpd.apache.org - RewriteRule Flags] === Mediawiki LocalSettings.php === Henkilön varmenteelta löytyviä tietoja voi käyttää hyväksi uutta käyttäjää luodessa. Tunnistusmoduulin sivulla mainittua SSL_CLIENT_S_DN_Email ei voi hyödyntää, sillä suomalaisella varmenteella olevaa sähköpostiosoitetta ei lue Apachen ympäristömuuttujissa suoraan. [[Henkilökortti|Henkilökortin varmennehausta]] myös selviää, että valtaosa ihmisistä ei ole myöskään antanut hakemuksessaan mitään sähköpostiosoitetta. Sähköpostiosoite on itse muokattava tieto, mutta sen voisi myös alustaa kuten henkilön nimen jos se olisi helposti luettavissa.
<div style="" >
# $ssl_UN = $_SERVER['SSL_CLIENT_S_DN_CN'];
$ssl_UN = end( explode(" ", $_SERVER['SSL_CLIENT_S_DN_CN']) );
};
SSLAuthSetup();
</div>
 
SSL-tunnistuksen toteutus löytyy mediawikin sivuilta:
* https://www.mediawiki.org/wiki/Extension:SSL_authentication
tarvittavaa tiedostoa ei ole versioitu versionhallintaan, sen voi kopioida wiki-sivulta suoraan ja tallentaa vaikka '''SSLAuthentication/SSLAuthPlugin.php''' hakemistoon joka löytyy Mediawikin hakupolusta. Hakupolun voi ratkaista symboolisesti linkittämällä sen itse lähdekoodiin.
 
 
== Katso myös ==
* [[Apache/2.2]] aiheeseen liittyviä Apache httpd asetuksia
== Aiheesta muualla ==
[[Luokka:Tekniikka|M]]

Navigointivalikko