La autenticación prueba algo sobre la persona que llama. La autorización determina si la persona que llama puede recuperar los informes de este cliente o realizar esta operación. Una credencial API válida no debe convertirse en un atajo para los límites de los inquilinos. Comience con una matriz de permisos antes de agregar puntos finales o trabajos en segundo plano.
Vincular identidad al objeto solicitado
Resuelva la identidad de la persona que llama a través del mecanismo de autenticación admitido y luego obtenga su inquilino autorizado y sus alcances de operación del estado del lado del servidor confiable. Trate el ID de un inquilino en una URL o en el cuerpo de la solicitud como un objetivo solicitado, no como una prueba de permiso. Verifique el informe, exporte el trabajo y descargue el artefacto con la concesión real de la persona que llama.
Hoja de referencia de autorización de OWASP recomienda privilegios mínimos, denegar de forma predeterminada y validación de permisos en cada solicitud. Aplique esos principios a los trabajadores asincrónicos y a los enlaces de descarga, así como a la primera llamada a la API. Una exportación creada legítimamente no debe ser descargada posteriormente por un inquilino diferente porque su ID de objeto es fácil de adivinar.
Separe el acceso de lectura de la autoridad de cambio
Un lector de informes puede recuperar datos de dominio aprobados, pero no debe obtener automáticamente permiso de escritura DNS . Es posible que un operador DNS no necesite acceso al historial de informes almacenado. Un auditor puede requerir una vista de evidencia restringida en lugar de mensajes sin procesar. Documente los objetos y operaciones permitidos de cada rol y mantenga la administración secreta fuera de los registros y exportaciones ordinarios.
Supongamos que se aprueba una credencial de automatización solo para leer los informes del inquilino A. Un cambio DNS para el inquilino A y una lectura de informe para el inquilino B deben denegarse según esa concesión, a pesar de una autenticación válida. Una subvención de operador independiente y aprobada explícitamente necesitaría sus propios controles de objeto y funcionamiento. Estas son decisiones hipotéticas esperadas, no una matriz de permisos implementada ni una descripción de las funciones EmailAuth .
Haga que las pruebas negativas formen parte de la aceptación
Ejecute la lectura del informe permitido del mismo inquilino y luego cambie solo el inquilino solicitado. Repita con un alcance de lectura faltante y con un principal revocado. Planifique también pruebas reales para identificaciones a nivel de objeto, exportaciones almacenadas, trabajos en cola y cambios de pertenencia a grupos. Utilice inquilinos sintéticos autorizados y datos inofensivos en lugar de investigar la cuenta de otro cliente.
Registre la decisión real y cualquier campo de respuesta divulgado para cada prueba autorizada. Una solicitud rechazada no debe filtrar detalles de objetos privados a través de metadatos, recuentos, enlaces de descarga o resultados almacenados en caché. Incluya una lectura de alcance válida para distinguir la aplicación correcta de un punto final que niega a todos. Aquí no se proporciona ni ejecuta ninguna prueba de sistema de token, flujo OAuth o autorización de producción.
Operar la subvención a lo largo de su ciclo de vida.
Registre el propietario de la concesión, el propósito aprobado, el alcance del inquilino, el vencimiento o activador de la revisión y la ruta de revocación. Almacene el material de credenciales en el sistema secreto aprobado, rote bajo un procedimiento controlado y audite el uso sin registrar el secreto en sí. Volver a verificar la autoridad al ejecutar un trabajo retrasado; una tarea en cola no debe conservar los permisos indefinidamente después de la revocación.
Revise la confidencialidad de los datos subyacentes. RFC 9990 describe informe agregado consideraciones de contenido y seguridad; Los metadatos del informe aún merecen una divulgación controlada. En caso de error de autorización, devolver una denegación apropiada sin confirmar los objetos privados de otro inquilino. Si se descubren datos entre inquilinos, contenga la exposición e invoque el procedimiento de incidentes de la organización. No se limite a modificar la interfaz de usuario y asumir que la API es segura.
Guía para múltiples inquilinos de OWASP, especialmente sus secciones de trabajo asincrónico, caché/sesión y almacenamiento de archivos, admite hacer cumplir el alcance más allá de la solicitud inicial y volver a verificar los permisos urgentes durante la ejecución retrasada.