Estoy desarrollando una API web que respaldará varias aplicaciones: un sitio web, una (s) aplicación (es) móvil (es) complementaria (s) y posiblemente varias aplicaciones de terceros. Se espera que todas las aplicaciones obtengan un token de acceso del servidor de autenticación y luego lo ingresen a la API. El usuario ingresará sus credenciales ya sea en la interfaz web del servidor de autenticación (para aplicaciones de terceros) o directamente en el sitio web o la aplicación (para "de confianza" aplicaciones). No se espera que las propias aplicaciones cliente requieran la identidad del usuario.
Comencé a implementarlo a través de OAuth 2 y coincide exactamente con mis casos de uso. Pero más tarde encontré varias discusiones en la red que me hicieron pensar si mi escenario realmente requiere OpenID Connect, y ahora, después de unas pocas miles de palabras leídas, todavía no puedo gruñir cuál es la mejor para mi caso .
(Por ejemplo, GitHub, que coincide aproximadamente con mis casos de uso, utiliza OAuth 2)
Me gustaría escuchar algunas pautas sobre cómo elegir si la API de una requiere OAuth 2 o OpenID Connect.
Actualizar
Lo que me confunde es lo siguiente: hay un punto válido para no usar OAuth para autenticación . Pero considere este caso (suponga que hay una regla empresarial simple: cada usuario puede ver solo sus propios documentos):
- la aplicación va al servidor de autenticación para el token
- el usuario autoriza la aplicación, por lo que se otorga el token
- la aplicación va a la API con el token para datos
- api devuelve los documentos para el usuario que autorizó el token (de modo que de alguna manera el token se puede rastrear hasta el usuario)
¿Se trata de un escenario de autenticación o de autorización?
PS. Soy consciente de esta pregunta , pero la mejor La respuesta no responde a mis dudas.