NL:OAuth

From OpenStreetMap Wiki
Jump to navigation Jump to search
Oauth logo.svg

broom

Dit artikel of deze sectie kan out-of-date informatie bevaten: Sommige details over de nieuwe ondersteuning voor OAuth 2.0 zijn nog niet in deze pagina opgenomen.
Als je bekend bent met de huidige stand van zaken, dan kun je helpen om iedereen op de hoogte te houden door het aanpassen van deze informatie. (Discussion)

OAuth op OpenStreetMap is een mechanisme dat gebruikers in staat stelt om toepassingen van derden te autoriseren om dingen te doen met hun gebruikersaccount van OSM - zonder dat die toepassing het wachtwoord van die gebruiker kent. De User Credentials Policy beveelt aan ontwikkelaars van toepassingen aan dat zij OAuth zouden moeten gebruiken vóór HTTP Basic Auth of andere methoden om toegang te krijgen tot de API.

Gebruik voor ontwikkelaars

U kunt uw Gebruikers-toepassing registreren op uw gebruikerspagina van OpenStreetMap via de koppeling OAuth 1 settings of de koppeling OAuth 2 applications aan de bovenzijde van de pagina. OpenStreetMap ondersteunt OAuth 1.0a en 2.0. OAuth 2.0 zou voor nieuwe toepassingen moeten worden gebruikt. De huidige tokens verlopen momenteel niet automatisch.

Zorg ervoor, om de dev server API te kunnen gebruiken, u ook een account hebt gemaakt in de dev server. De live server en dev server delen niet dezelfde database. U moet dus een nieuw account maken met een nieuwe gebruikersnaam en wachtwoord en de de gebruikers geheim en sleutel gebruiken.

OAuth 1.0a

Hier zijn de relevante URL's ter referentie:

Voor doeleinden van ontwikkeling en testen heeft de instance van de API op de dev server ook eindpunten voor OAuth. Hun URL's zijn:

Er zijn meerdere bereiken om geselecteerde rechten toe te kennen aan een gebruikers-app.

OAuth 2.0

Ondersteunde typen Grant: Authorization Code, Authorization Code with PKCE

Gegevens voor autorisatie toevoegen aan Request Headers

Productie:

Ontwikkeling:

Ondersteunde bereiken:

Opmerking: namen van bereiken verschillen van de lijst met rechten die werd gebruikt voor Auth 1.0a: het eerder gebruikte voorvoegsel "allow_" is vervallen

  • read_prefs: lees de gebruikersvoorkeuren
  • write_prefs: pas de gebruikersvoorkeuren aan
  • write_diary: items voor dagboeken maken, opmerkingen en vrienden maken
  • write_api: de kaart aanpassen
  • read_gpx: private GPS-sporen lezen
  • write_gpx: GPS-sporen uploaden
  • write_notes: opmerkingen aanpassen

OAuth 2.0 Authorization Server Metadata (RFC 8414): https://www.openstreetmap.org/.well-known/oauth-authorization-server

Het basisidee

Een toepassing, bijvoorbeeld JOSM, of een website, bijvoorbeeld OpenCycleMap zou toestemming kunnen krijgen om bewerkingen te maken aan gegevens van OpenStreetMap met behulp van het account van de gebruiker.

OAuth wordt gebruikt door enkele andere sites zoals twitter en flickr. Als u bijvoorbeeld een uploader app voor flickr gebruikt, kunt u zien hoe de autorisatie zou worken vanuit het oogpunt van een gebruiker. Wanneer u de app probeert te gebruiken, moet het de gebruiker naar de website doorgeleiden, waar u inlogt zoals gewoonlijk en dan rechten toekennen. De app ontvangt dan een token dat het kan gebruiken in zijn verzoeken. Het elimineert de noodzaak voor de app om de inlog-gegevens van de gebruiker te kennen. Handig.

Ontwikkeling

OAuth 1.0a

Bekijk OAuth examples voor codesnippets en koppelingen naar werkende broncode voor programma's in verschillende talen, om u te helpen OpenStreetMap OAuth cliënts te maken.

Uw toepassing registreren als gebruiker van OAuth 1.0a

Vóórdat een toepassing het OAuth protocol kan gebruiken om geautoriseerde toegang te krijgen tot de beschermde bronnen op de server van OSM moet het worden geregistreerd als gebruiker van OAuth. Elke geregistreerde gebruiker kan toepassingen registreren als gebruiker.

  1. Log in op uw account
  2. Ga naar [1]

In de volgende formulier dient u vier parameters in te vullen:

Name
dit is de weergavenaam van uw toepassing, die zal worden weergegeven aan de gebruiker.
Main Application URL (Required)
dit is een URL voor informatie met informatie over uw toepassing. Het is in het geheel niet gerelateerd aan het OAuth protocol. Wanneer een gebruiker toegang autoriseert vanuit uw toepassing op de website van OSM, de website van OSM zal een koppeling weergeven naar <a href="info-url-to-your-app">Naam van uw toepassing</a>.
Callback URL
indien u een webapplicatie registreert kunt u een callback URL invoeren de website van OSM invoke de gebruiker geleiden aan het einde van de handshake van OAuth. De URL is optioneel. Laat hem leeg als uw webtoepassing geen callback URL verschaft. Indien u een rich client-toepassing registreert laat het dan leeg of verwijs het naar een pagina die iets zegt als "sluit nu de browser en ga terug naar de toepassing".
Support URL
laat deze leeg. Ik heb geen idee waar het voor wordt gebruikt.

Basisbeginselen van het protocol

  1. u registreert uw toepassing (gebruiker) en verschaft er CONSUMER_KEY + CONSUMER_SECRET aan
  2. sommige gebruikers gebruiken uw toepassing, die roept Request Token URL aan en ontvangt: oauth_token + oauth_token_secret
  3. dan geleidt het de gebruiker naar Authorize URL + '?oauth_token=' + oauth_token
  4. gebruiker logt in op OpenStretMap.org, de site vraagt hem om rechten toe te kennen
  5. indien een callback url is opgegeven gedurende de registratie, wordt de gebruiker geleidt naar Callback URL + '?oauth_token=' + hetzelfde_oauth_token
  6. uw toepassing krijgt hetzelfde oauth_token, roept Access Token URL aan en ontvangt: oauth_token + oauth_token_secret
  7. toegangstoken en zijn geheim worden gebruikt voor verdere communicatie

OAuth 2.0

Uw toepassing registreren als gebruiker van OAuth 2.0

Vóórdat een toepassing het OAuth protocol kan gebruiken om geautoriseerde toegang te krijgen tot de beschermde bronnen op de server van OSM moet het worden geregistreerd als gebruiker van OAuth. Elke geregistreerde gebruiker kan toepassingen registreren als gebruiker.

  1. Log in op uw account
  2. Ga naar [2]
Name
dit is de weergavenaam van uw toepassing, die zal worden weergegeven aan de gebruiker.
Redirect URI
Lijst met toegestane URI's waarnaar de gebruiker kan worden omgeleid na het autoriseren van de toepassing. Alle URI's moeten https gebruiken, tenzij een URL wordt gebruikt die begint met http://127.0.0.1. De speciale URI urn:ietf:wg:oauth:2.0:oob zou moeten worden gebruikt voor niet-web toepassing, waarbij de gebruiker de code voor de autorisatie zal kopiëren naar de toepassing.
Confidential application
Toepassing die zal worden gebruikt om het geheim van de gebruiker vertrouwelijk te houden (eigen mobiele apps en apps met één enkele pagina zijn niet vertrouwelijk)
Scopes
Selecteer alle bereiken die door een cliënt mogen worden verzocht

Basis van het protocol

  1. Registreer een toepassing met de naam ervan, redirect URI's en scope(s). Dan, ontvang een cliënt-ID en cliënt geheim. Gewoonlijk worden deze instellingen opgeslagen in de cliënt-toepassing.
  2. Wanneer gebruikers inloggen vanaf de toepassing, moeten zij eerst inloggen op OSM om hun identiteit te authenticeren door de Auth URL aan te roepen en de cliënt-toepassing omleiden naar <REDIRECT_URI>?code=AUTHORIZATION_CODE, waar de toepassing de code voor de autorisatie ontvangt, (<REDIRECT_URI> wordt gespecificeerd tijdens het registreren van de cliënt-toepassing)
  3. Een toegangstoken wordt door de cliënt-toepassing verzocht vanaf de Access Token URL door de code voor de autorisatie door te geven, samen met de details voor de authenticatie, inclusief het geheim van de cliënt.
  4. Als de autorisatie geldig is, zal de OSM API het toegangstoken als antwoord verzenden naar de toepassing. Het antwoord zal er ongeveer zo uitzien {"access_token":"<ACCESS_TOKEN>","token_type":"Bearer","scope":"read_prefs write_api","created_at":1646669786}
  5. Nu is de toepassing geautoriseerd. Het kan het token gebruiken voor toegang tot de OSM API's, beperkt tot het bereik voor de toegang, totdat het token verloopt of wordt ingetrokken.

Extra opmerkingen

Externe bronnen