Met het OAuth-protocol kunnen apps worden geverifieerd tegen services

  • Edward Hensley
  • 0
  • 2616
  • 366

Voor een recent project moest ik een service gebruiken die OAuth gebruikte voor authenticatie. Ik had gehoord van OAuth, maar ik had het relatief nieuwe protocol niet gebruikt. Ik was in staat om mijn doelen te bereiken zonder direct te moeten programmeren naar de OAuth-specificatie, maar ik besloot een beetje dieper te graven om meer te weten te komen over de ingewanden van het protocol.

Een overzicht van OAuth

OAuth is ontworpen om een ​​gebruiker van een applicatie in staat te stellen met gegevens van een service te werken, zonder de applicatie inloggegevens voor de service te moeten verstrekken. Het grote concept achter OAuth is dat het tokens gebruikt om applicaties te authenticeren tegen services. Wanneer een toepassing met een service wil werken, vraagt ​​deze een token aan bij de service. Dit token is in eerste instantie nutteloos - dat wil zeggen dat het niet kan worden gebruikt voor authenticatie. In plaats daarvan vraagt ​​de toepassing de gebruiker om naar de service te gaan (achter de schermen geeft het gegevens door in de link of leidt het om naar het token); wanneer de gebruiker daar aankomt, logt hij in met zijn vooraf ingestelde inloggegevens. Dit verandert het token dat de applicatie heeft ontvangen in een geautoriseerd token, waardoor het kan worden gebruikt voor authenticatie. Dit wordt driepotige authenticatie genoemd, omdat er drie actoren bij betrokken zijn: de applicatie, de gebruiker en de service. Er is ook tweebenige authenticatie tussen een applicatie en de service, waarvoor geen tussenkomst van de gebruiker is vereist.

Er is veel meer aan de werking van het protocol dan wat ik in deze korte inleiding heb uiteengezet; kijk voor meer informatie op de OAuth-website en lees de uitstekende artikelen over OAuth op hueniverse.

OAuth-bronnen en codevoorbeelden

Aanvankelijk ging ik zelf alle toegangscodes schrijven, maar ik hoorde dat de RestSharp-bibliotheek OAuth ondersteunt. Als u met een REST-achtige service wilt werken, is dit uw beste keuze. RestSharp is een uitstekende bibliotheek voor het werken met REST-services en maakt het gemakkelijk om ermee om te gaan.

Voor wat ik aan het werken was, kon ik RestSharp niet gebruiken vanwege de betrokken klassenstructuren. Bovendien had de service waarmee ik integreerde al een aantal uitstekende voorbeeldcode die weinig aanpassing vereiste om aan mijn behoeften te voldoen - het was meer een routine, "schrijf veel LINQ-naar-XML om variabelen te vullen" soort inspanning. Die code gebruikte de DevDefined OAuth-bibliotheek met enkele wijzigingen.

Als u geïnteresseerd bent in het zien van de voorbeeldcode die zo nuttig voor mij was, evenals een goede video-tutorial die laat zien hoe de driebenige authenticatie in de praktijk werkt, is de documentatie van de Xero-ontwikkelaar waar u deze kunt vinden. Xero heeft ook codevoorbeelden en zelfstudies die het echte OAuth-gebruik laten zien.

Samenvatting

OAuth kan complex lijken als je naar de specificatie en de details kijkt, maar in werkelijkheid is het helemaal niet slecht. Het geeft de services alle keuzemogelijkheden ter wereld om te beslissen hoe de authenticatie bij de eindgebruiker wordt afgehandeld. Het grote voordeel van het gebruik van OAuth is dat de verbruikende toepassing de inloggegevens van de gebruiker niet hoeft te kennen, waardoor hele klassen van beveiligingsproblemen worden weggenomen.

Ik heb het gevoel dat OAuth in de toekomst populairder zal worden naarmate meer services niet-SOAP-interfaces bieden. Een plaats die bijvoorbeeld OAuth gebruikt, is de Windows Azure Marketplace DataMarket, en er zijn ongetwijfeld anderen die binnenkort komen.

J.Ja




Niemand heeft nog op dit artikel gereageerd.

Tips, nuttige informatie en het laatste nieuws uit de wereld van technologie!
Nuttige informatie en het laatste technologienieuws uit de hele wereld. Video-overzichten van telefoons, tablets en computers.