No estoy seguro de lo que estás buscando es OAuth.
OAuth es para delegar la autorización, mediante el uso de tokens. Dependiendo de lo que esté haciendo, tiene dos escenarios:
- Su aplicación desea utilizar algunos de los datos de los usuarios, alojados por un proveedor (digamos twitter o google). En ese caso, su aplicación sería un consumidor; en resumen, el usuario tendría que iniciar sesión y aceptar autorizar que su aplicación tenga acceso a sus datos sobre el proveedor, y se le proporcionaría un token de acceso que se puede usar. para obtener acceso a esos recursos protegidos.
- Como alternativa, tiene una aplicación, con usuarios que tienen inicios de sesión, etc. Y desea proporcionar (es decir, usted es el proveedor) acceso a cierta información restringida de sus usuarios a aplicaciones de terceros (consumidores) sin exponer su credenciales de los usuarios a esos servicios.
Para obtener más información sobre OAuth, consulte OAuth.Net website. Actualmente hay 3 implementaciones de OAuth disponibles para .Net.
Debido a la forma en que funciona OAuth, no puedo imaginar cómo se puede tener un proveedor de pertenencia "OAuth" - es realmente destinada a asegurar API, y a menudo el objetivo es delegar la autorización en un nivel más granular, es decir, darle a las aplicaciones de los consumidores acceso a solo los datos de la libreta de direcciones de los usuarios, sin permitirles acceder a los archivos de correo electrónico, a su calendario, etc. ell con un modelo de seguridad basado en membresía/función.
Supongo que lo que realmente está buscando es OpenId, es decir, la forma en que se autentica con Stackoverflow. Sugiero leer el Stackoverflow OpenId case study here y probablemente la mejor implementación de OpenId para .Net es actualmente parte del proyecto DotNetOpenAuth (formalmente se lo llamó DotNetOpenId, el sitio del código de Google para el proyecto is here).
Apenas cayendo en un comentario que DotNetOpenAuth ahora se puede encontrar aquí: http://www.dotnetopenauth.net/ –
@bittercoder creo que echar a la gente con esta respuesta . Si bien es cierto que la mayoría de la gente usa oAuth para la autorización de API de terceros, no es irrazonable considerar una solución de membresía personalizada de SSO asp.net, por ejemplo. El dominio de Google Apps donde se usa el token de autorización como el token de autenticación asp.net (cookie) para que pueda ser utilizado para las posteriores llamadas a la API de Google. Tengo exactamente este escenario donde mi aplicación MVC llama apis en mi google apps.domain. oAuth es Autenticación Y Autorización. –
Esta respuesta se creó antes de que OAuth 2 existiera en su forma actual (hace más de 3 años). Diría que en ese momento era correcto. En estos días, creo que el mundo ha cambiado, y la mayoría de la gente ignora OpenID, considera OAuth como un mecanismo de autenticación y ni siquiera está consciente de muchas de las ideas centrales detrás de OAuth (autenticación delegada/forma de asegurar el acceso a API). – Bittercoder