Loading
OAUTH
Oauth surgió porque
Se tenía la necesidad del envió continuo de credenciales entre cliente y servidor, sobre todo cuando se tenía alguna integración con aplicaciones de terceros. (En este caso se necesitaba que el cliente enviara sus credenciales para poder establecer seguridad en las aplicaciones).
Ejemplo, si queremos generar contenido en twitter y queremos que este contenido aparezca en la sesión del usuario, necesitábamos que nos pasen la contraseña y el usuario del cliente.
Con Oauth nos permite hacer estas acciones, sin necesidad de solicitar las credenciales.
ROLES
SE TIENEN DIFERENTES ROLES LOS CUALES SON LOS QUE PARTICIPAN EN EL PROCESO DE LA IMPLEMENTACION DEL OAUTH:
DUEÑO DEL RECURSO (OWNER)
El propietario del recurso es el usuario que da autorización a una determinada aplicación para acceder a su cuenta y poder hacer algunas cosas en su nombre.
El conjunto de cosas que puede hacer la aplicación en su nombre se denomina alcance, y podría ser, por ejemplo, solamente acceso de lectura y no poder crear ningún tipo de elemento de ningún nuevo recurso en su nombre.
CLIENTE
Es cualquiera aplicación que desea acceder a la cuenta del usuario, este cliente debe ser autorizado por el usuario y esta autorización debe ser validada.
Este cliente puede ser una aplicación web, móvil, de escritorio, etc.
SERVIDOR DE AUTORIZACION
SERVIDOR DE RECURSOS
TIPOS DE CLIENTES
CLIENTES CONFIDENCIALES: Son aquellos capaces de guardar una contraseña sin que esta sea accesible o expuesta.
CLIENTES PUBLICOS: Son aquellos que no son capaces de guardar una contraseña y mantenerla a salvo.
SE TIENEN DIFERENTES TIPOS DE CONCESIÓN
Authorization code
Se basa en un código de autorización. Es la más completa de todas y se utiliza en clientes confidenciales.
EJEMPLO:
1.- Envió de autorización:
2.- Se devuelve una respuesta a través de una URL:
Asignación de código de autorización del usuario
https://cliente.ejemplo.com/cb?code=AbCdEfGHiJK12345&state=xyz
3.- Petición de tipo POST.
POST /token HTTP/1.1 Host: autorizacion.servidor.com Authorization: Basic afds8709afs8790asf grant_type=authorization_code &code=AbCdEfGHiJK12345 &redirect_uri=https://cliente.ejemplo.com/cb
4.- Se obtiene token de acceso:
HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Cache-Control: no-store Pragma: no-caché { “access_token”:”2YotnFZFEjr1zCsicMWpAA”, “token_type”:”example”, “expires_in”:3600, “refresh_token”:”tGzv3JOkF0XG5Qx2TIKWIA”, “example_parameter”:”example_value” }