• Hexite Software Blog Nieuws en berichten

Blog

api-foto

Wat zijn API’s en koppelingen?

U heeft waarschijnlijk de term ‘API‘ voorbij zien komen. Updates van allerlei applicaties kondigen vaak nieuwe API’s voor ontwikkelaars aan. Maar wat is een API en hoe gebruiken ontwikkelaars en bedrijven ze?

Applicatie-programmeerinterface?

De term API is een afkorting en staat voor “Application Programming Interface”.

De volgende analogie beschrijft de API als een keuzelijst, de keuzelijst biedt een lijst met (ja duh) keuzes die de ontwikkelaar zelf samenstelt. Wanneer de ontwikkelaar aangeeft welke keuzes gewenst zijn, doet de opsomming van de keuzes het werk en voorziet de ontwikkelaar van enkele resultaten. Het resultaat is dat je niet precies weet hoe de keuzelijst jouw resultaten teruggeeft, maar dat hoeft dan ook niet.

Evenzo somt een API een aantal bewerkingen op die ontwikkelaars kunnen gebruiken, samen met een beschrijving van wat ze doen. De ontwikkelaar hoeft niet per se te weten hoe een besturingssysteem bijvoorbeeld een dialoogvenster “Bestand verwijderen” opbouwt. De ontwikkelaar hoeft alleen te weten dat een functie beschikbaar is voor de bovenstaande functionaliteit.

Dit is natuurlijk geen perfecte metafoor, maar wel een handvat voor een leek. Omdat ontwikkelaars mogelijk hun eigen gegevens aan de API moeten verstrekken om de resultaten te krijgen. Met API’s kunnen ontwikkelaars tijd besparen door gebruik te maken van de implementatie van een platform om het belangrijkste werk te doen. Dit helpt de hoeveelheid code die ontwikkelaars moeten maken te verminderen en helpt ook om meer consistentie tussen apps voor hetzelfde platform te creëren. API’s kunnen de toegang tot hardware- en softwarebronnen beheren.

Applicaties koppelen

API’s worden ook om allerlei andere redenen gebruikt. Als u bijvoorbeeld ooit een Google Maps-object op een website gebruikt, gebruikt die website de Google Maps API om die kaart in te sluiten. Google stelt dergelijke API’s bloot aan webontwikkelaars, die de API’s vervolgens kunnen gebruiken om objecten rechtstreeks op hun website te tonnen. Als dergelijke API’s niet bestonden, zouden ontwikkelaars misschien hun eigen kaarten moeten maken en hun eigen kaartgegevens moeten verstrekken om een ​​kleine interactieve kaart op een website te plaatsen.

En omdat het een API is, kan Google de toegang tot Google Maps op websites van derden beheren, zodat Google deze op een consistente manier gebruiken.

API’s maken het leven van ontwikkelaars makkelijker

Stel dat u een app wilt ontwikkelen. Elk besturingsysteem biedt een groot aantal API’s om dit voor u gemakkelijker te maken.

Als u een webbrowser wilt gebruiken om bijvoorbeeld een of meer webpagina’s weer te geven, hoeft u niet uw eigen webbrowser helemaal opnieuw te programmeren voor uw toepassing. U gebruikt de webbrowser API om dit proces te automatiseren.

Als u foto’s of video’s van de camera van de smartphone wilt maken, hoef je niet je eigen camera-interface te bouwen. U gebruikt de camera-API om de ingebouwde camera van de smartphone in uw app. Als er geen API’s zouden bestaan ​​om dit gemakkelijk te maken, zouden app-ontwikkelaars hun eigen camerasoftware moeten maken en de invoer van de camerahardware moeten interpreteren. De ontwikkelaars van het besturingssysteem van Android of Apple hebben al dit harde werk gedaan, zodat de ontwikkelaars de camera-API gewoon kunnen gebruiken om een ​​camera te gebruiken; vervolgens verder kunnen gaan met het bouwen van hun app. En wanneer Apple of Android de camera-API verbetert, zullen alle apps die erop vertrouwen automatisch van die verbetering profiteren.

Dit geldt voor elk platform. Wilt u bijvoorbeeld een dialoogvenster maken op Windows? Daar is een API voor. Wilt u vingerafdrukverificatie op Android ondersteunen? Daar is ook een API voor, dus je hoeft niet de vingerafdruksensor van elke verschillende Android-fabrikant te testen. Ontwikkelaars hoeven het wiel niet steeds opnieuw uit te vinden.

Koppeling met Hexite Identity

Ook Hexite Software biedt de mogelijkheid om te koppelen met systemen en API’s. Een van de producten van Hexite Software faciliteert veilige uitwisseling tussen systemen. Hexite Identity is de totaaloplossing voor het veilig communiceren tussen meerdere koppelingen.

multi-factor-key

Wat zijn de factoren van authenticatie

Iets wat je weet

De iets wat je weet-factor is de meest gebruikte factor en kan een wachtwoord of een eenvoudig persoonlijk identificatienummer (PIN) zijn. Het is echter ook het gemakkelijkst te omzijlen.

Bij het gebruik van wachtwoorden is het belangrijk om sterke wachtwoorden te gebruiken. Een sterk wachtwoord heeft een combinatie van hoofdletters, kleine letters, cijfers en speciale tekens. In het verleden adviseerden beveiligingsprofessionals dat wachtwoorden minimaal acht tekens lang moesten zijn. Met de toenemende kracht van wachtwoordcrackers is het echter gebruikelijk om professionals langere wachtwoorden te horen aanbevelen. Veel organisaties vereisen bijvoorbeeld dat beheerderswachtwoorden ten minste 15 tekens lang zijn.

Langere wachtwoorden zijn moeilijker te onthouden, tenzij ze in een of andere zinvolle volgorde worden geplaatst. Een zin als “Beveiliging leidt tot succes” kan bijvoorbeeld een wachtwoord worden van “B3v3ligingL3idttot$u$$3$”. Merk op dat elk woord begint met een hoofdletter, elke kleine letter “s” wordt gewijzigd in een $, elke kleine letter “e” wordt gewijzigd in een 3 en de spaties worden verwijderd. Het wachtwoord is gemakkelijker te onthouden, maar toch erg complex. Als een gebruiker echter een lang wachtwoord zonder enige betekenis moet onthouden, zoals “1!$LK$k4$#K@L%k6”, is de kans groter dat hij het wachtwoord opschrijft, waardoor de beveiliging wordt verzwakt.

Wachtwoorden mogen geen persoonlijke gegevens bevatten, zoals een gebruikersnaam of gebruikersnaam. Bovendien mag een wachtwoord geen woord zijn dat in een woordenboek kan worden gevonden. Een woordenboekaanval maakt gebruik van een database met woorden die lijkt op een woordenboek, waarbij alle woorden in de database worden geprobeerd om een ​​overeenkomst te vinden. Het is de moeite waard om hier te vermelden dat aanvallers toegang hebben tot woordenboeken in andere talen. Met andere woorden, een wachtwoord dat een woord uit een andere taal gebruikt, is net zo eenvoudig te kraken als een wachtwoord dat in uw moedertaal wordt gebruikt.

Iets wat je hebt

De factor die je hebt verwijst naar items zoals smartcards of draagbare tokens. Een smartcard is een kaart ter grootte van een creditcard met een ingebouwd certificaat dat wordt gebruikt om de houder te identificeren. De gebruiker kan de kaart in een smartcardlezer steken om de persoon te authenticeren. Smartcards worden vaak gebruikt met een pincode die multi-factor authenticatie biedt. Met andere woorden, de gebruiker moet iets hebben (de smartcard) en iets weten (de pincode).

Een token is een draagbaar apparaat met een LED die een nummer weergeeft en het nummer wordt gesynchroniseerd met een authenticatieserver. Kijk eens naar figuur 1, die de authenticatieserver en de gebruiker met een handtoken laat zien. Het nummer dat op het token wordt weergegeven, verandert regelmatig, bijvoorbeeld elke 60 seconden, en de authenticatieserver kent altijd het momenteel weergegeven nummer.

Om 17:01 uur kan het nummer dat op de LED wordt weergegeven bijvoorbeeld 931324 zijn, en tegelijkertijd weet de server dat het nummer 331214 is. Een minuut later kan het nummer dat in de LED wordt weergegeven 842312 zijn en de authenticatie server zou dit nieuwe nummer kennen.

Een gebruikelijke manier waarop tokens worden gebruikt voor authenticatie is bij websites. De gebruiker typt het nummer in dat wordt weergegeven in de token op een webpagina. Als de gebruiker hetzelfde nummer intypt dat op dat moment bekend is bij de server, wordt de gebruiker geauthenticeerd. Het is gebruikelijk om multifactor-authenticatie te gebruiken met op tokens gebaseerde authenticatie. Naast het invoeren van het nummer dat in de token wordt weergegeven, moet de gebruiker vaak een gebruikersnaam en wachtwoord invoeren. Dit bewijst dat de eindgebruiker iets heeft (de token) en dat de eindgebruiker iets weet (het wachtwoord).

Iets wat je bent

Biometrische methodieken bieden de authenticatie-factor van iets dat jij bent. Enkele van de biometrische methoden die kunnen worden gebruikt, zijn vingerafdrukken, handgeometrie, retina- of irisscans, handschrift en stemanalyse. Vingerafdrukken en handafdrukken zijn tegenwoordig de meest gebruikte biometrische methode. Veel laptops zijn voorzien van vingerafdruklezers en vingerafdruklezers zijn ook beschikbaar via USB-poorten.

Hoewel biometrie de sterkste authenticatie biedt, is het gevoelig voor fouten. Een valse afwijzingsfout (ook wel type 1-fout genoemd) treedt op wanneer een systeem een ​​bekende gebruiker ten onrechte afwijst en aangeeft dat de gebruiker niet bekend is. Een foutieve acceptatiefout (ook wel een type 2-fout genoemd) treedt op wanneer een systeem een ​​onbekende gebruiker ten onrechte als een bekende gebruiker identificeert. Biometrische systemen kunnen doorgaans worden aangepast voor gevoeligheid, maar de gevoeligheid beïnvloedt de nauwkeurigheid.

Multi-factor authenticatie

Multifactor-authenticatie maakt gebruik van twee of meer authenticatiefactoren. Een belangrijk onderdeel hiervan is dat de authenticatiefactoren zich in ten minste twee van de categorieën moeten bevinden. Het gebruik van een smartcard en een pincode is bijvoorbeeld multifactorauthenticatie, aangezien de twee factoren iets zijn dat u hebt en iets dat jij weet. Als een gebruiker echter een wachtwoord en een pincode zou moeten invoeren, zou het geen multifactor-authenticatie zijn, aangezien beide methoden van dezelfde factor zijn (iets dat jij weet).

neural-network-brain

Aanbevelingssystemen vierde Industriële revolutie

Hexite Software

Aanbevelingssystemen

Het grootste probleem dat in het licht van de moderne wereld komt, is de kwantiteit van informatie, die uiteindelijk de eindgebruiker teveel keuzes geeft. Was er maar een slimme manager die de juiste keuzes maakt op basis van Intuïtie.

Aanbevelingssystemen (engines) doen tegenwoordig allemaal hetzelfde voor de manager. De kracht van de momenteel gebruikte aanbevelingsengines ligt in het aanbevelen van de processtappen op basis van het gedrag van ketenpartners en derhalve van de gebruikers, zoals blijkt uit de geschiedenis van het proces. We kunnen dus zeggen dat het aanbevelingssysteem die slimme manager is die ons door de oceaan van alle beschikbare keuzes kan leiden. De volgende blogpost gaat in op aanbevelingsystemen en de technologieën toegepast in de praktijk.

Automatische aanbevelingen logistiek manager

Aanbevelingssystemen voor logistieke processen suggereren uiteenlopende processtappen aan klanten door eerdere procesgegevens van het proces te verzamelen op basis van expliciete beoordelingen in het after-salesproces. Daarbij richten het aanbevelingssysteem zich op het gedrag en de “reparatiestappen” van verschillende gebruikers tijdens het proces dat binnen het systeem werkt. Het lijkt magie, maar het is puur datawetenschap gebaseerd op het gebruik van machine learning-technieken. De datagedreven oplossingen zijn gebaseerd op de interacties tussen gebruikers en items waarbij interne en externe gebruikers gebruik maken van de aanbeveling.

Procesadvies op basis van patronen

Met de volgende techniek krijgen we het gedrag van het proces in kaart op basis van patronen. Voornamelijk in deze procedure doen we aanbevelingen door gebruik te maken van de relatie tussen het huidige proces en bestaande (afgeronde) processen.

De processen in kaart brengen kan door gebruik te maken van een aantal mijlpalen. Voor het implementeren van mijlpaalstrategie kunnen we KNN gebruiken. KNN vereist weinig computerkracht, maar het kost tijd om de gegevens terug te vragen, daarom noemen we dit soort algoritmes “lui”.

De overeenkomst wordt berekend met behulp van een cosinus en correlatiefunctie. De eindstap is het gemiddelde van deze overeenkomst te berekenen; op basis van de berekende overeenkomsten, geeft het alogoritme een advies aan de logistieke managers.

De grootste nadelen van dit soort aanbevelingen zijn de opstarttijd (veel informatie nodig om gericht resultaat te beiden) en afwijkende processen (het ontbreken van nuttige informatie omdat de informatie teveel afwijkt).

Aanbevelingen met Neuraal netwerk (deep learning)

Deep learning is een aftakking van machine learning dat wordt geïnspireerd door het functioneren van het menselijk brein. We zien het menselijk brein als de ultieme supercomputer voor het interpreteren, maar ook het verzinnen van de gegevens.

Een neuraal netwerk fungeert is als het ware de bouwsteen van deep learning. Een neuraal netwerk is een (kunstmatig) model van het menselijk brein dat is nagebootst met behulp van software. Er zijn veel soorten neurale netwerken die worden gebruikt bij Deep Learning. Sommigen van hen zijn Multilayer Perceptron, Convolutional Neural Network, Recurrent neuraal netwerk.

Een Multilayer neuraal netwerk is een netwerk dat is gebouwd door enkele heimelijke lagen neuronen waarbij een laag de uitvoer van zijn vorige laag als invoer gebruikt. Convolution Neural Networks (CNN) worden met succes gebruikt voor classificatie en segmentatie van afbeeldingen en ook voor andere bewerkingen, zoals gezichtsherkenning en objectherkenning. De eenvoudigste terugkerende neurale netwerken ontstonden in de jaren tachtig. Terugkerende neurale netwerken die voornamelijk worden gebruikt voor continue gegevens zoals tijdreeksen (timeseries).

Waarom deep learning in aanbevelingssystemen?

Ten eerste geeft het een gericht abstractieproces van functies, waar supervised machine learning niet de abstracte informatie rechtstreeks vanuit de inhoud kan beoordelen. Ten tweede kan het neuraal netwerk het makkelijk met meerdere gegevens omgaan. Als laatste derde kan deep learning het model realtime beoordelen. Er is dus niet continu een “rebuild” van het model nodig, wat extreem veel computerkracht vereist.

ldap-ad-image

LDAP en Active Directory, hoe en wat.

Active Directory is een product van Microsoft dat wordt gebruikt om IT-middelen zoals gebruikers, computers en printers te organiseren. Het integreert direct met Microsoft producten.

Lightweight Directory Access Protocol (LDAP) is een protocol, geen dienst. LDAP wordt gebruikt om met verschillende typen mappen te praten en ernaar te zoeken (inclusief Microsoft AD).

De volgende twee hoofdstukken gaan in op de verschillen en overeenkomsten van LDAP en Active Directory.

Active Directory

Wanneer u veelvoudig gebruik maakt van Microsoft producten maakt u hoogstwaarschijnlijk ook gebruik van Microsoft Active Directory. Denk hierbij aan producten zoals Sharepoint, Windows Server en Exchange.

Het doel van active directory is om gebruikers te ontzorgen. Gebruikers willen namelijk geen apart wachtwoord gebruiken voor elke applicatie waartoe ze toegang hebben. Daarbij wilt een IT-beheerder ook gebruikers verdelen in groepen, die toegang hebben tot computers en systemen.

Active Directory is gemaakt om het beheer van gebruikers en computers laagdrempelig en makkelijk te maken door informatie over hen op te slaan in een enkele map (directory).

De werking van active directory

Active Directory deelt de activa op in drie lagen:

Domeinen: gebruikers (zoals werknemers) en apparaten (zoals computers) die dezelfde Active Directory-database delen, maken deel uit van een domein. Een domein wordt meestal geassocieerd met een bedrijf of een organisatie in een bedrijf, zoals het ‘management domein’.

Active Directory bevat ook beveiligingsfuncties, waaronder:

authenticatie: Gebruikers moeten de relevante referenties verstrekken voordat ze toegang kunnen krijgen tot bronnen op het netwerk.

Beveiligingsgroepen: IT-beheerders organiseren gebruikers in groepen. De groepen worden vervolgens toegewezen aan apps om het beheer te minimaliseren.

Groepsbeleid: Er is een groot aantal basisregels in Active Directory die bepalen wie toegang heeft tot computers of andere instellingen kan configureren. Active Directory ondersteunt verschillende methodes om gebruikers te verifiëren. Active Directory LAN Manager, NTLM en Kerberos zijn technieken ondersteund door Active Directory. Elke keer breidde het protocol verder uit om bruikbaarder en veiliger te zijn.

Het belangrijkste doel van Active Directory is om alle Microsoft gerelateerde technologieén samen te brengen, zodat gebruikers op een laagdrempelige manier toegang hebben tot bronnen; beheerders de toegang veilig kunnen instellen.

LDAP

LDAP is een protocol dat is ontworpen voor toepassingen om zeer snel en op grote schaal gebruikersinformatie op te vragen. Het was ideaal voor zoiets als de telecommunicatie- of luchtvaartindustrie.

Active Directory is ontworpen voor ondernemingen met misschien een lager aantal werknemers en computers. LDAP is een protocol dat was ontworpen voor toepassingen die de draadloze telefoonproviders van stroom voorzien en die destijds miljoenen verzoeken moesten verwerken om abonnees van de telefoonnetwerken te authenticeren.

Waar Active Directory “closed source” is, is LDAP een open source protocol. In de praktijk is Active Directory geïmplementeerd met LDAP-ondersteuning, zodat applicaties met LDAP ondersteuning kunnen werken met een bestaande Active Directory-omgeving.

Als protocol richt LDAP zich voornamelijk op:

  • Directory structuur. Elke directory heeft kenmerken en is toegankelijk via een unieke DNdie wordt gebruikt bij het opvragen van de directory;
  • Gegevens toevoegen, bijwerken en lezen. LDAP is geoptimaliseerd voor snel zoeken en lezen van gegevens;
  • authenticatie. In LDAP “bind” de gebruiker zich aan de service. Deze authenticatie kan een eenvoudige gebruikersnaam en wachtwoord, een certificaat of een token zijn;
  • Zoeken. Een gebied waar LDAP sterk uit de verf komt, is zoeken. Op LDAP gebaseerde servers zijn doorgaans ontworpen voor complexe zoekopdrachten; dat zijn meestal zoekopdrachten naar documenten. Dit verschilt echter per organisatie.