На самом деле есть две спецификации OAuth: 3-сторонняя версия и 2-сторонняя версия. Трехногая версия - та, которая привлекает наибольшее внимание.
Двухсторонняя версия изначально делает именно то, что вам нужно, она позволяет приложению предоставлять доступ к другому через общий секретный ключ (очень похоже на модель веб-службы Amazon, вы будете использовать метод подписи HMAC-SHA1) или через систему открытого / секретного ключей (используйте метод подписи: RSA-SHA1). Плохая новость заключается в том, что она еще не так хорошо поддерживается, как 3-сторонняя версия, поэтому вам, возможно, придется проделать чуть больше работы, чем в противном случае сейчас.
По сути, двухсторонний OAuth просто указывает способ «подписать» (вычислить хэш) несколько полей, которые включают текущую дату, случайное число, называемое «nonce», и параметры вашего запроса. Это делает очень трудным олицетворение запросов к вашему веб-сервису.
OAuth медленно, но верно становится общепринятым стандартом для подобных вещей - в конечном итоге вам будет лучше, если вы примете его, потому что тогда люди смогут использовать различные библиотеки, доступные для этого.
Получить одновременно 2-х и 3-х ногу одновременно довольно сложно - но это возможно (сейчас у Google это работает).
http://code.google.com/apis/accounts/docs/OAuth.html