¿Es OAuth apropiado para que los clientes registrados utilicen una API privada?

2

Estoy desarrollando una API privada que será utilizada por los clientes registrados previamente para acceder a la información en nuestro sitio web. Estaremos almacenando sus credenciales de inicio de sesión en nuestro servidor. Al analizar cómo garantizar la seguridad de esta API, me he dado cuenta de que OAuth parece ser ampliamente recomendado para autenticar a los usuarios. Estoy tratando de averiguar si OAuth es apropiado para un caso como el mío, o si OAuth está más orientado a las API públicas. Entiendo la utilidad de OAuth si desea que sus usuarios accedan a su sitio a través de un tercero como Facebook o Google, y si desea que su API esté abierta al público sin requerir un registro. Sin embargo, la abrumadora cantidad de información sobre OAuth está relacionada con estos usos. Si deseo una API simple y privada abierta solo para clientes pre-registrados, ¿cuáles serían los beneficios de usar OAuth en lugar de una autenticación de clave API más tradicional? ¿Vale la pena la complejidad adicional si no necesita la funcionalidad de inicio de sesión adicional que proporciona? Muchas gracias.

    
pregunta Christian 15.10.2018 - 21:54
fuente

1 respuesta

2

Suponiendo que los clientes de la API necesitan acceder a la información en nombre de su propio , en lugar de hacerlo en nombre de un tercero, eso debería corresponder al flujo de autenticación de "Credenciales del cliente" en OAuth 2.

Consultando la especificación , esa es efectivamente una solicitud que equivale a "aquí hay una identificación y una pre- secreto compartido ", y una respuesta con" aquí hay un token que le permite acceder a los recursos ", muy similar a la autenticación tradicional con un nombre de usuario y contraseña.

Mirándolo de esta manera, podría usar un subconjunto limitado de OAuth 2 para hacer una prueba de futuro de su API en caso de que alguna vez necesite alguna otra funcionalidad de OAuth. O, si ya tiene alguna capa de autenticación basada en el nombre de usuario + contraseña, podría reutilizar parte de esa lógica para esto. En el caso de las credenciales del cliente, los dos enfoques parecen esencialmente los mismos desde una perspectiva de seguridad.

Ahora, un beneficio de usar las credenciales de cliente de OAuth 2 es que los desarrolladores del cliente pueden usar las bibliotecas ya existentes si así lo desean, en lugar de ser obligados a crear una capa de autenticación personalizada en su aplicación cliente. Por esa razón, crear un flujo de trabajo de credenciales de cliente OAuth 2 simple parece ser un buen enfoque.

    
respondido por el Ethan Kaminski 16.10.2018 - 09:25
fuente

Lea otras preguntas en las etiquetas