API-hallinta Azuressa monipuolistaa tiedonjakelua

Datan julkaiseminen REST-rajapintojen kautta on arkipäiväistynyt viimeisen muutaman vuoden aikana. Rajapintoja löytyy jo valmisjärjestelmistäkin, ja yhä useampiin omiin toteutuksiinkin sellaiset ujutetaan. Azure API Managementin kaltaiset tuotteet tuovat yhtälöön myös rajapintojen hallitun julkaisun ja ylläpidon. Mistä on kyse?

Kolmen sovelluksen rajapinnat näyttävät yleensä kolmelta aivan erilaiselta kokonaisuudelta, eivätkä muodosta yhdenmukaista ”firman rajapintaa”. Rajapintojen turvallisuuden takaaminen yhtenäisesti on hankalaa, ja mitä kriittisempiä rajapinnat ovat, sitä tärkeämpää on pelkän julkaisun lisäksi myös tietää, miten ne toimivat. Joskus rajapintoja tarjoava sovellus on suojatussa verkossa, mutta kutsujia ei pitäisi päästää suoraan koputtelemaan ovelle – ties vaikka kaataisivat kuormalle herkän legacy-palvelun.

Rajapintojen julkaiseminen ja laaja käyttäminen nostaa esiin yllä kuvatun kaltaisia ongelmia, joita ei välttämättä huomaa silloin, kun rajapintoja ollaan tekemässä ensi kertaa. API-hallintatuotteet kuten Azure API Management ratkaisevat juuri näitä pulmia. Azure API Management on ollut vuosia kalliin enterprise-tuotteen maineessa – ja sellainenhan se pitkään oli. Tilanne on kuitenkin parantunut, ja nyt API-hallintamallia sopii ryhtyä kehittämään jo vähän pienemmässäkin ympäristössä. Tutustutaanpa hieman asiaan.

API Management tuottaa turvallisen ”yrityksen APIn”

Yleensä yrityksen käyttämä data on hajautunut varsin moniin järjestelmiin, eivätkä ne tarjoa vain yhtä rajapintaa ulospäin. API Managementia voikin ajatella yhtenä palvelupisteenä, johon kaikki yrityksen rajapintaliikenne ohjataan. Se saa osoitteen tyyliin api.omayritys.fi, ja tämän jälkeen HR-tiedot voidaan paljastaa vaikkapa osoitteen api.yritys.fi/hr alta. API Management ei näihin pyyntöihin itse kuitenkaan vastaa, vaan ohjaa ne valikoivasti eteenpäin taustajärjestelmälle, joka voi sitten sijaita Azuressa, AWS:ssä tai vaikka paikallisessa konesalissa.

Yrityksen yhtenäisen APIn arvona on yhtäältä hallintanäkökulma – on hyvä tietää, mikä sovellus tarjoaa ulkomaailmaan mitäkin ja kuka tietoja käyttää – ja toisaalta hyvä käytettävyys. Kumppaneiden, toimittajien ja asiakkaiden on helpompi integroitua yhtenäiseen rajapintaan, jossa tunnistautumiskäytännöt ovat vakiintuneesti määritelty. Myös pilven hyvä saavutettavuus auttaa: Azure API Management toimii turvallisena, tarvittaessa vaikka globaalisti hajautettuna julkaisupisteenä. Taustajärjestelmät voivat olla vaikka miten hankalien verkkoyhteyksien ja protokollien päässä, mutta kutsujien ei tarvitse siitä piitata.

IT-arkkitehtuurin näkökulmasta etuna on, että rajapintoja tarjoavat järjestelmät eivät joudu suoraan kosketukseen ulkomaailman kanssa. Varsinkin vanhemmat järjestelmät eivät välttämättä kestä kuormaa, tue nykyaikaisia tunnistautumiskäytäntöjä tai edes tue REST-julkaisua, vaan ehkäpä vanhempaa SOAPia. Azure API Managementin kaltaiset tuotteet pystyvät silottelemaan tällaisia ryppyjä, sillä sopivien muunnosten avulla vanhojenkin järjestelmien rajapinnat saadaan yleensä suhteellisen helposti julkaistua osana modernia, selkeää rajapintakokonaisuutta.

Useimmiten API-hallintaratkaisut kannattaa toteuttaa yrityksen tasolla – yksi hallintapiste per yritys – mutta mikään ei estä käyttämästä API Managementia myöskään yksittäisen sovelluksen julkaisemien rajapintojen hallintaan. Tällöin yritystason hallintahyödyt jäävät saavuttamatta, mutta ratkaisu voi olla silti kehittäjätuottavuuden ja tietoturvan kannalta erinomainen. Aiemmin ratkaisu tuntui hinnoittelusyistä vähemmän houkuttelevalta, mutta nykyisin alkuun päästään varsin edullisesti.

Pilvi turvaa ja läpivalaisee

Edellä todettiin, että API-hallintakerros päästää liikenteen läpi valikoidusti taustajärjestelmille. Taustajärjestelmiin ohjataan liikennettä vain sellaisiin rajapintoihin, joita järjestelmä oikeasti julkaisee. Kaikenlaiset porttiskannailut tai epämääräisten web-haavoittuvuuksien kolkuttelut torpataan heti alkuunsa, sillä API Managementille kerrotaan täsmälleen, mihin rajapintoihin liikennettä halutaan välittää.

Toisaalta hallintakerros ohjaa eteenpäin liikennettä vain silloin, kun kutsujalle on rajapintaan pääsyoikeus. Kutsuva sovellus voidaan tunnistaa sertifikaatilla, API-avaimella, Azure AD -tunnistautumisella, IP-osoitteella tai melkein millä vain halutulla menetelmällä. Kun valituista säännöistä pääsee läpi, pyyntö toimitetaan taustajärjestelmälle. Tällainen keskitetty tunnistautuminen auttaa ylläpitäjiä hallitsemaan tietoturvaansa: yhdestä paikasta näkee helposti, kuka pääsee minnekin, ja ongelmatilanteen yhteydessä järjestelmäkohtaisia oikeuksia on helppo sulkea tai rajoittaa.

Äärimmillään tunnistautuminen keskitetään niin totaalisesti, ettei rajapintoja tarjoavan järjestelmän tarvitse edes tietää, kuka tietoja pyytää, vaan se luottaa vain sokeasti API Managementiin. Tämä voi olla erityisen toivottavaa silloin, kun rajapintoja tarjoava järjestelmä ei tue kunnollista käyttäjätunnistautumista muutenkaan, jolloin API-hallinta voi paikata tätä puutetta.

Kaiken tämän päälle on tietysti tärkeää lisätä valvonta. Keskitetyssä liikenteenvälityspisteessä voidaan seurata API-liikennettä monesta näkökulmasta: Kuka kutsui ja mitä rajapintoja? Mistä on palautunut virheitä? Miten rajapintojen suorituskyky on kehittynyt viimeisen päivityksen myötä? Azure API Management kerää tällaista aineistoa automaattisesti, ja sen perusanalyysi ei vaadi muuta kuin hiirenklikkailua.

Kohti API-taloutta: Jalostus, tuotteistus ja rahastus

Mitä laajemmaksi rajapintajulkaisu käy, sitä merkityksellisemmäksi nousevat yleensä myös kaupalliset näkökulmat. API-taloudella viitataankin yleensä rajapintoihin, joilla on selkeä kaupallinen arvo, joko erikseen myytävänä tuotteena tai muuten. Toiminnan turvallisuus, hallinta ja valvonta korostuu: on nähtävä, kuka rajapintakuorman aiheuttaa, vastaako se hänen maksamaansa korvausta ja niin edelleen.

API-hallintakerros tuo mukaan myös muita mahdollisuuksia tuotepaketoinnin osalta. Jos yritys vaikkapa myy omassa liiketoiminnassaan syntynyttä anonymisoitua asiakastietoa, tieto ehkä halutaan paketoida erillisiksi datatuotteiksi. Hallintakerroksessa pääsy rajapintoihin voidaan rajata ostosten mukaan esimerkiksi siten, että tietyllä asiakkaalla on oikeus kysellä vain ostamiensa pakettien mukaista dataa, vaikkapa maksimissaan tuhat kyselyä tunnissa.

Pisimmilleen vietynä Azure API Management tarjoaa rajapintojen käyttäjille jopa kehittäjäportaalin, josta he voivat selata käytössään olevien rajapintojen dokumentaatiota ja testata niitä, mikä parantaa ja tehostaa kehityskokemusta. Harva asiakas Suomessa tarvitsee vielä näin pitkälle meneviä ratkaisuja, ja useimmille API Management näyttäytyykin ennen muuta tietoturvan ja hallinnan tukikerroksena. Tarvittaessa kaupalliseen suuntaan on kuitenkin helppo lähteä.

Kuinka päästä vauhtiin?

Jos rajapintoja julkaistaan merkittävien järjestelmien välillä, jonkinlaista API Management -ratkaisua voi tänä päivänä pitää jo parhaana käytäntönä. Sen voi hahmottaa osaksi integraatioalustaa, nähdä yhdenlaisena sovelluksen palomuurina tai organisoida aivan omaksi hallintatiimiksi – riippuen omien tarpeiden mittakaavasta ja kriittisyydestä.

Peruskäyttöönotto on tätä nykyä hyvin helppoa – ensimmäinen rajapinta on julkaistu parissa tunnissa. API-hallinta on kuitenkin enemmän praktiikkaa kuin tekniikkaa, ja mitä tasokkaampaa hallintaa halutaan, sitä enemmän käytäntöihin kannattaa panostaa. Kenellä on oikeus julkaista rajapintoja? Miten monitoimittajaympäristön valvontavastuut jaetaan? Miten API Managementin konfiguraatiomuutoksista pidetään kirjaa? Kestäviä vastauksia kysymyksiin kannattaa hakea oman organisaation hallintamaturiteetin ja luontevan työnjaon kautta.

Parasta on kuitenkin se, että alkuun pääsee nykyään varsin matalilla kustannuksilla. Halvimmillaan Azure API Management on ns. consumption-mallilla, jolloin kuukausimaksua ei ole ja kolmella eurolla saa miljoona API-kutsua. Kaikki ominaisuudet sisältävä Premium-versio kustantaa toisaalta kolmisen tonnia kuussa, mutta sen tarve nousee yleensä esiin vasta siinä kohtaa, kun rajapintojen liiketoiminta-arvokin on selkeä.

Haluatko jutella lisää organisaatiosi rajapintajulkaisutarpeista? Ota yhteyttä!