Note that there are some explanatory texts on larger screens.

plurals
  1. POREST - How to restrict access for not authorized client software
    primarykey
    data
    text
    <p>here is the challenge:</p> <p>The service-/business layer has a REST (JSON) interface. There are two kinds of clients which can call the API: The webapp, which is running in a browser and a mobile-app (Android). Both of them are public. Everyone who uses the authorized (!) webapp or the authorized (!) mobile-app should have access to the resources. All unauthorized clients (scripts, for instance) should be prohibited.</p> <p>Note: There are no limitations how many or which users have access to the service layer -> client public key certificates probably can't be used. Only the the client software has to be authorized.</p> <p>In my opinion the only one solution is "by obscurity".</p> <h2>Ideas:</h2> <ul> <li>Load a random JS-function (let's call it "the challenge") from the server, which is executed in the browser (or app), fingerprints the browser in a specific way (browser flaws?), computes a result and send the result back with every REST-API call.</li> </ul> <p>Do you have any further ideas or suggestions?</p> <p>Thank you in advance &amp; sorry for my bad english</p> <h2>Edit:</h2> <p>My question has nothing to do with user authentification and/or authorization but <strong>client-software</strong> authentification + authorization.</p> <p>The background of my question is, that there is a RESTful back-end for my own applications (android + web) and I don't want that someone creates his own client-software on top of it. The reason for this is because it's a commercial website/application which provides some data which was quite expencive to collect. I'd like to promote the website and the mobile-app and not the RESTapi (or some third-party competitor).</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload