Si soy un proveedor de OAuth y deseo que el usuario pueda restringir las aplicaciones a solo un subconjunto de recursos (por ejemplo, solo recursos en la carpeta X), ¿cuál es el mecanismo correcto para hacer esto? Los ámbitos parecen serlo, pero encuentro poco o ningún precedente para esto.
A menudo veo los ámbitos implementados como permisos diferentes, por ejemplo. "solo lectura" o "lectura-escritura". Estas a menudo son categorizaciones muy generales y requieren que si se necesita un acceso profundo a cualquier conjunto de recursos en particular, también se debe otorgar ampliamente para que termine obteniendo acceso de lectura y escritura a todo, incluso si solo necesita modificar una cosa.
A veces veo los ámbitos implementados como categorías del recurso para acceder, por ejemplo. "fotos" o "dirección de correo electrónico". Esto solo tiene sentido si tiene un conjunto de categorías de recursos significativo, predefinido y finito.
Cuando veo los ámbitos de Google Drive , por ejemplo, no parece haber manera de restringir una aplicación Acceso a una colección de archivos. Pido disculpas si no estoy mirando lo suficiente, pero esto parece ser muy útil y simplemente no existe. Drive tiene un alcance "por archivo" pero tiene un comportamiento muy específico que no me interesa.
Como proveedor de OAuth, ¿cuáles son los argumentos a favor o en contra de la creación de ámbitos para los recursos creados por el usuario? Es decir, ¿por qué Google no puede permitir un alcance para cada una de las carpetas del usuario? Presumiblemente, la aplicación necesitaría permiso para enumerar primero las carpetas para que el usuario pueda seleccionarlas, luego la aplicación podría buscar permisos adicionales para las carpetas. Esto significaría múltiples diálogos de OAuth, así que puedo imaginar que la respuesta es que es difícil hacer una buena experiencia. He tenido dificultades para encontrar una discusión de estas compensaciones en otro lugar.