Restricted inter-application access

From Arnout Engelen

Jump to: navigation, search

See also:

Sometimes you'd want to give a (web)application partial access to your data at another (web)application: for example I can imagine I'd want to allow some applications (but not everyone) to look at my free/busy time in google calendar.

Perhaps something could be built on OpenID?

Are there standards for managing that kind of stuff?

I imagine application X would redirect me to a special page at Google Calendar where I'd log in and configure the level of access, after which google calendar would generate some credentials for application X to use so with those credentials application X would get restricted access to my google calendar data

I suppose the problem can be sliced up as follows:

  • Communicating to the Content Repository (e.g. Google Calendar) that application X would like access on behalf of user A.
  • (user logs into Content Repository, configures access for application X and any restrictions)
  • Communicating the credentials with which Application X can access the Content Repository on behalf of user A to the Content Repository.

And finally:

  • Application X using these credentials to access user A's content in the Content Repository

Contents

[edit] application X would like access on behalf of user A

Perhaps this could be done with a XACML redirect?

[edit] Communicating the credentials back to the Content Repository

Can we use some XACML reply? Not sure.

[edit] using these credentials to access user A's content in the Content Repository

This should maybe be free, but HTTP BASIC AUTH seems to be a reasonable default (don't forget to use SSL though, otherwise username/pass get sent over in plaintext).

This allows application X be written largely in AJAX/Javascript, see here.

The username/password can, but don't neccecarily have to be checked by Apache: it can also just pass on the password for the application to process.

[edit] Implementations

I wonder if the Yahoo! api does something smart here - probably a DigiD/SAML-like approach though.

Personal tools