Sette opp gløymd-passord-tenesta

Kva som må gjerast for å sette opp gløymd-passord-tenesta for ein instans som har bestilt dette.

Det er Cerebrum drift som skal ta seg av kommunikasjonen med kunden og oppsett av produksjonsmiljøet, også for PHP-applikasjonane. Det Cerebrum utvikling treng å gjere, er å oppdatere koden etter kva instansen vil ha av endringar.

PHP-applikasjonen

Kva som kan endrast i PHP-applikasjonen til gløymd-passord-tenesta. Sjå cerebrum/clients/web/individuation/SETUP.rst i kodetreet for meir dokumentasjon.

Layout

Det vanlegaste som trengs å oppdaterast er designet på nettsidene, så den følger instansen sin designprofil.

  1. config.php må oppdaterast: INST må settast til instansen si forkorting, helst i små bokstavar.

  2. Lag ei ny mappe under clients/web/individuation/www_docs/, til dømes hih_design. Denne mappa skal innehalde alt av layout for instansen, som CSS-filer, logo og andre bilder som skal visast på nettsida.

  3. Lag templates for html-koden under clients/web/individuation/data/templates/, til dømes template.hih.en.txt og template.hih.no.txt.

  4. Legg språk-filer under clients/web/individuation/data/txt/$INSTANCE/. Kopier eksisterande filer og rediger.

  5. Lag ein ny subklasse av ViewTemplate for instansen, plassert under clients/web/individuation/system/view/View/, til dømes hih.php.

    • Merk at denne klassen bør subklasse den nye klassen ViewTemplate (clients/web/phplib/view/ViewTemplate.php) og ikkje View. Den nye klassen gir mindre og enklare kode.
    • Her kan du legge inn referanse til html-template, css-filer og anna funksjonalitet for instansen.

Funksjonalitet

Dersom det er behov for å endre på noko av funksjonaliteten i gløymd-passord- tenesta har vi to valg:

  1. Dersom det er små endringar kan vi legge inn konstantar og oppdatere filene i www_docs/ til å endre seg etter kva konstanten er satt til. Typisk døme på dette er PASSWORD_EXTERNAL_IDS i config.php som bestemmer kva identifikatorar som kan brukast av tenesta.
  2. Dersom det er større endringar i funksjonaliteten som er bestilt, vil det heller vere behov for å lage ei eiga www_docs/ for å støtte funksjonaliteten. Merk at jo fleire slike mapper vi har, jo meir vedlikehald vil det kreve av oss ved seinare oppdateringar. Merk at instansen må også vere klar over at store endringar i funksjonaliteten vil kreve fleire arbeidstimar å få på plass.
    1. Opprett mappa clients/web/individuation/$INSTANCE/www_docs/
    2. Kopier inn det som trengs frå standardmappa www_docs/
    3. Legg til det som trengs av endringar.
    4. Varsle om kva www_docs-mappe som skal brukast når du ber om å få tenesta prodsatt.

Testing

Sjå testing av nettenester.

For å lage SSL sertifikater og nøkler, kan følgende prosedyre brukes. Merk at det kan være forskjellig fra hva som skal brukes i produksjonen.

# assume file structure:
# ./client_test/
# ./server_test/

cd ./client_test/

# create private key and certificate request for client
openssl genrsa -out client.key 4096
openssl req -new -days 10000 -key client.key -out client.csr

cd ../server_test/

# create private key and certificate request for server
openssl genrsa -out server.key 4096
openssl req -new -days 10000 -key server.key -out server.csr

# self-sign server certificate
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.pem

# sign client request with server certificate
openssl x509 -CA server.pem -CAkey server.key -CAcreateserial -req -in ../client_test/client.csr -out ../client_test/client.pem -days 10000

# combine client key and client cert into one file (for php config)
cat client.key client.pem > client_cert.pem.key

# get client certificate fingerprint
openssl x509 -noout -in ../client_test/client.pem -fingerprint

Webservicen

Webservicen treng vanlegvis ikkje nokre særlege kodeendringar. Dei fleste instansane sine behov vert dekka av tilgjengelege innstillingar i cisconf.

Det er likevel fullt mulig å overstyre Individuation sin funksjonalitet:

  • Lag ein subklasse av Individuation.py for instansen, og overskriv den funksjonaliteten som trengs. Legg fila under Cerebrum/modules/no/$INSTANCE/Individuation.py.
  • Oppdater cisconf.CEREBRUM_CLASS til å peike på denne fila og subklassen.

Authors: jokim, igorer

Publisert 25. juli 2013 14:48