¿Qué debo hacer para mi esquema de autenticación de API web?

2

Últimamente he estado leyendo mucho sobre los mecanismos de autenticación de la API web y estoy un poco confundido con respecto a cómo implementar mi mecanismo de autenticación de la API web. Estoy pensando en usar la autenticación basada en token, pero no estoy seguro de si Es la elección correcta.

Básicamente, mi API web gestionará todas las operaciones necesarias y almacenará los usuarios de mi sitio web, así como los usuarios de la API.

Quiero apoyar lo siguiente

  • El usuario puede registrarse en mi sitio web y en las aplicaciones con su cuenta de G + o Facebook o con un nombre de usuario ya creado en mi servicio, y también podrá iniciar sesión con su cuenta social.
  • Si el usuario no ha iniciado sesión, no podrá publicar elementos, pero sí podrá ver los elementos, piense algo como Craiglist.
  • Digamos que el usuario es un desarrollador y desea publicar los elementos a través de algún software que crearon en lugar de ir a través del sitio web y publicar un elemento a la vez, ¿cómo puedo permitir esto?

Ahora, mis preguntas son:

  1. Cuando un usuario se registra en mi sitio web, ¿tengo que crear una (clave pública / clave secreta) para el token de acceso posterior, de modo que pueda usar mi API del sitio web como usuario para verificar si tiene acceso? a ciertos puntos finales?

  2. ¿Tengo que asignar una (clave pública / clave secreta) para mi sitio web para poder consumir la API cuando el usuario no está conectado?

  3. Lo mismo que arriba para las aplicaciones móviles

  4. ¿Cómo permito a los usuarios (registrarse / iniciar sesión) usar G + o Facebook ?, si inician sesión en una red social, ¿cómo voy a proteger mi api?

pregunta General Electric 26.02.2016 - 02:49
fuente

1 respuesta

1

Debe separar autenticación y autorización .

Autenticación garantiza que su sitio web sepa que el usuario entrante es en realidad el que tiene en archivo . En otras palabras, una vez que alguien se haya registrado como bob en su aplicación, todos los que digan que él es bob se verifican mediante autenticación.

Como mencionas, tienes varias opciones para la autenticación. Puede descargar el proceso en algunos proveedores de identidad conocidos (Google, Facebook, LinkedIn, ...). Se asegurarán de que alguien que ingrese como Barack Obama haya sido autenticado como tal por su parte.

Es importante comprender que no sabe si Barack Obama logging en su sitio es realmente el presidente de EE. UU. Lo único que sabe es que alguien registrado como tal en, por ejemplo, Google y la misma persona se autenticará sistemáticamente como tal a través de Google.

Debe buscar la administración de identidades en los distintos sitios que desea usar ( Google, por ejemplo ) . Las palabras clave son OAuth y OpenID .

Ahora que sabe que Barack Obama está llegando, debe darle acceso a algunas cosas y no a otras. Esta es la parte de autorización . Es completamente dependiente de su aplicación.

Lo que básicamente estarás codificando es que un ID específico (que es, en última instancia, el usuario que inicia sesión) puede ver algo de contenido. OWASP lo ayudará a hacerlo seguro.

Un consejo: si puedes descargar completamente la autenticación a alguien en quien confías y en la que tus usuarios confiarán (normalmente los grandes jugadores de arriba), hazlo. No seas Adobe .

    
respondido por el WoJ 28.02.2016 - 11:27
fuente

Lea otras preguntas en las etiquetas