Ik overweeg een ontwerp dat ik er niet zeker van ben of OAuth een goede fit gaat worden, maar dit is de basiskwestie.
Ik heb corporate webservices die verschillende niveaus van beveiliging vereisen.
- Controleer beoordelingen voor gebruiker - gebruikersnaam/wachtwoord
- Cijfers wijzigen voor gebruiker - gebruikersnaam/wachtwoord/RSA-tokennummer
Dus als een toepassing wil doen (1), zal het om de inloggegevens vragen, maar, ik zou graag zien dat de OAuth-server te horen krijgt welke dienst de gebruiker probeert te bereiken, en de juiste velden getoond worden, zoals dit is de eerste login.
Nu, de tweede keer, heeft de applicatie (browser of app) een token, maar dat token is niet voldoende, maar de applicatie zou dit niet moeten weten, omdat de beveiligingsvereisten kunnen veranderen, op basis van wat de beveiligingsmensen beslissen is gepast.
Dus wanneer het token gepresenteerd wordt om bij (2) te komen, bepaalt het dat het niet voldoende is, en dus wordt er een fout teruggestuurd, zodat de applicatie kan gaan en proberen een nieuw token te krijgen.
Ik heb dit nog niet geïmplementeerd, maar als basisontwerp ben ik er niet zeker van of OAuth goed past bij wat ik wil doen of als ik beter af zou zijn om mijn eigen authenticatiesysteem te schrijven.
Initieel zal de client voor de webservices mobiele web-apps zijn, maar ik wil het flexibel genoeg maken zodat we bij het schrijven van een native telefoon-app hetzelfde systeem kunnen gebruiken. Dus als de applicatie de beveiliging moet weten waar ik problemen mee heb, en telkens de referenties door te geven aan de webservice ben ik niet tevreden, dus zou ik liever een versleuteld token hebben dat kan worden gebruikt, en als je aan de vereisten voldoet voor (2) dan kunt u in (1) komen met dezelfde token.
Dus, zou OAuth hiervoor geschikt zijn?
OAuth heeft wel authenticatie-aspecten, zo lijkt het erop ( https://developers.google.com/ accounts/docs/OAuth2InstalledApp ).
UPDATE: - It appears that Open Connect (http://openid.net/connect/) may be better than OAuth for this, but I am just learning about Open Connect now.