Ilustración de una tarjeta de identidad con una llave y una verificación, conectada a un modelo de edificio con una incidencia señalada.

Login con Autodesk en FastAPI: sesión y acceso restringido

Quiero poder consultar las incidencias de un proyecto, preparar sus cambios y revisarlos antes de enviarlos a Autodesk. Y, al final de esta serie, pedir ese mismo trabajo a un agente de IA. Para construirlo voy a utilizar las APIs de Autodesk Forma, las interfaces con las que nuestra aplicación se comunicará con Autodesk. Pero la primera decisión llega antes de leer una sola incidencia: ¿con qué cuenta va a trabajar la herramienta? En este artículo dejamos resuelto el login de Issues Manager y el acceso restringido a la demo. El origen de Issues Manager está en mi experiencia en Axpo y en el trabajo con incidencias preparadas desde Excel.

En este artículo

Por qué empezamos por tu cuenta Autodesk

La aplicación se llama Issues Manager. Su primera tarea es reconocer a quien entra. Cuando más adelante consulte un proyecto, tendrá que hacerlo con la cuenta de esa persona: un coordinador y un colaborador externo pueden ver información distinta y tener permisos diferentes.

He elegido que cada persona conecte su propia cuenta Autodesk. Compartir la herramienta es útil; heredar los permisos de quien la instaló sería otro asunto. Esta decisión nos permitirá comprobar más adelante qué puede consultar o modificar la persona que está trabajando.

El mecanismo que utilizamos se llama OAuth 3-legged. Intervienen tu cuenta, nuestra aplicación y Autodesk: tú autorizas el acceso y Autodesk entrega a la aplicación unas credenciales con permisos limitados. La contraseña se escribe en la página oficial de Autodesk; Issues Manager no necesita conocerla.

La pantalla de consentimiento permite revisar esos permisos antes de aceptar. En esta versión pedimos únicamente user-profile:read, que aparece como «Identidad / Ver la información del perfil». Con eso podemos reconocer tu cuenta. El acceso a proyectos e incidencias requerirá revisar otros permisos cuando lleguemos a esas partes de la serie.

Autodesk solicita autorización para que Issues Manager lea la información del perfil.

El primer acceso solicita leer la información del perfil de Autodesk.

Qué hay que preparar en Autodesk

Para registrar Issues Manager en Autodesk Platform Services (APS) he utilizado el tipo Traditional Web App. La elección encaja con el reparto de la aplicación: el navegador muestra las pantallas y el servidor se comunica con Autodesk y guarda las credenciales privadas.

Al registrarla obtenemos un identificador y un secreto de aplicación. Son las credenciales de nuestro programa, distintas de tu usuario y contraseña. El identificador indica qué aplicación se conecta; el secreto permite que se identifique desde el servidor. Por eso el secreto se guarda en la configuración privada y no se incluye en la web que recibe el navegador.

También registramos una dirección de retorno, llamada callback. Es la dirección a la que Autodesk devuelve el navegador después de aceptar o cancelar el acceso. En el ejemplo local de la serie utilizamos http://127.0.0.1:8000/auth/autodesk/callback. Esa dirección pertenece a la aplicación que estás ejecutando en tu ordenador; no es una web pública de Código BIM.

Configuración de Issue Manager en Autodesk Platform Services como Traditional Web App, con la URL de retorno local y el secreto de aplicación oculto.

Si puedes entrar en Autodesk pero falla la vuelta a Issues Manager, revisa primero el callback. La dirección registrada en APS y la configurada en el programa deben coincidir. Cambiar 127.0.0.1 por localhost puede parecer un detalle, pero cambia el hostname y puede impedir que el navegador envíe la cookie que vincula el intento. En este ejemplo hay que mantener la misma dirección durante todo el recorrido.

Qué ocurre cuando pulsas «Iniciar sesión»

Con ese registro preparado, podemos seguir lo que ocurre al pulsar el botón. La web está hecha con React y muestra las pantallas; el servidor utiliza FastAPI, una herramienta de Python, para comunicarse con Autodesk y comprobar el acceso. A esa parte del servidor la llamamos backend. El reparto importa porque las credenciales de la conexión se gestionan allí.

Al pulsar «Iniciar sesión», el backend prepara la solicitud y el navegador abre la página oficial de Autodesk. Allí eliges la cuenta y revisas el consentimiento. Antes de aceptar, comprueba el nombre de la aplicación y el permiso que solicita. En este punto deberías reconocer Issues Manager y la lectura del perfil que acabamos de ver.

Después de autorizar, Autodesk devuelve el navegador al callback con un código temporal. El servidor comprueba que la respuesta corresponde al intento iniciado desde ese navegador y que no ha caducado ni se ha utilizado antes. De esta forma, un enlace de retorno copiado o guardado no sirve como atajo para entrar otro día.

El servidor intercambia ese código por unas credenciales temporales llamadas tokens y consulta tu perfil. Un token permite hacer determinadas peticiones durante un tiempo limitado. La aplicación lo recibe y lo gestiona por ti; para utilizarla no tienes que copiar ni pegar esas credenciales.

Entrar en la demo y tener permisos en el proyecto

Una vez reconocida la cuenta, falta decidir si puede utilizar esta demostración. Issues Manager comprueba en el servidor una lista de correos o dominios autorizados y exige que el correo esté verificado. Eso permite restringir el acceso durante el desarrollo sin añadir otra contraseña.

Por eso puedes entrar correctamente en Autodesk y encontrar después un aviso de acceso denegado en Issues Manager. Son dos comprobaciones distintas. Si la cuenta está fuera de la lista, repetir la contraseña no cambiará el resultado: hay que revisar qué cuenta has elegido y si está admitida en la aplicación.

Issues Manager rechaza el acceso de una cuenta y ofrece volver a iniciar sesión con Autodesk.

La aplicación puede rechazar el acceso aunque hayas iniciado sesión en Autodesk.

Cuando se admite la cuenta, Issues Manager crea una sesión para recordar el acceso. El navegador guarda un identificador en una cookie; el servidor lo relaciona con tu conexión Autodesk y conserva los tokens cifrados. Otro navegador tendrá su propia sesión. Esa separación permite desconectar una sesión sin tratar todas las conexiones como si fueran la misma.

Issues Manager muestra una cuenta Autodesk autorizada y el botón para desconectarla.

La aplicación muestra la cuenta con la que estás trabajando y permite desconectarla.

Aquí conviene mantener una separación que utilizaremos durante toda la serie: entrar en Issues Manager y tener permisos en un proyecto son comprobaciones distintas. La lista de acceso limita quién utiliza la demo; Autodesk decidirá después qué datos puede consultar y qué operaciones puede realizar esa cuenta.

Qué pasa si cancelas, desconectas o caduca la sesión

Puedes cancelar el consentimiento en Autodesk. En ese caso vuelves a la aplicación con un aviso de cancelación y no se crea una nueva sesión. Es una salida normal del proceso: si lo que pide la herramienta no encaja con lo que quieres hacer, puedes detener el acceso en ese punto.

La caducidad suele resultar confusa porque aquí hay tres plazos distintos. El primero es el del access token, que la aplicación utiliza para hacer peticiones a Autodesk y dura aproximadamente una hora. Al vencer, el servidor puede obtener otro sin pedirte que repitas el login, siempre que la conexión siga siendo válida.

Para obtenerlo utiliza el refresh token, la credencial de renovación, cuya duración es de 14 días. Al renovarla, Autodesk entrega una nueva pareja de tokens y la aplicación guarda esos nuevos valores. El nuevo refresh token comienza su propio plazo; por eso hay que conservar el último recibido en lugar de seguir utilizando el anterior. Autodesk recoge esta duración en su guía sobre el mantenimiento de refresh tokens.

El tercer plazo pertenece a Issues Manager: hemos configurado una sesión de ocho horas como máximo desde el login. Renovar los tokens no alarga esa sesión. Si entras a las nueve de la mañana, a las cinco de la tarde tendrás que volver a iniciar sesión, aunque Autodesk todavía permita renovar su token. Y si Autodesk rechaza antes la renovación o la conexión deja de ser válida, la aplicación también te pedirá entrar de nuevo.

Si terminas antes, el botón Desconectar Autodesk elimina la sesión de Issues Manager e intenta revocar las credenciales en Autodesk. La web informa de si Autodesk ha confirmado esa revocación; si no puede confirmarla, la desconexión local se mantiene. Esto afecta a la conexión de esta herramienta, no al inicio de sesión de todos tus servicios Autodesk ni de tus otros dispositivos.

Issues Manager confirma que la sesión se ha desconectado y Autodesk ha confirmado la revocación.

Al desconectar, la aplicación informa si Autodesk ha confirmado la revocación.

Del primer login a un agente que gestione incidencias

Con la identidad resuelta, el siguiente trabajo será encontrar los proyectos de esa cuenta y elegir uno. Después incorporaremos los tipos de incidencia y los responsables disponibles. Prefiero construir ese recorrido antes de añadir un agente: así podremos comprobar cada operación por separado.

Más adelante llevaremos ese trabajo a Excel. Cada fila podrá servir para preparar una incidencia, pero antes de enviarla habrá que comprobar el proyecto, el responsable y los campos requeridos. Una hoja facilita preparar varias operaciones a la vez; también puede repetir el mismo error en todas las filas. Por eso la revisión previa formará parte del recorrido.

El último paso será ofrecer esas operaciones a un agente de IA mediante un servidor MCP. MCP es el protocolo con el que el agente podrá utilizar herramientas de nuestra aplicación, como consultar incidencias o preparar una actualización. La comprobación de identidad, permisos y datos seguirá en la aplicación, y las escrituras se revisarán antes de ejecutarlas.

La petición que quiero llegar a hacer es «muéstrame las incidencias pendientes de coordinación de este proyecto». Esta primera versión todavía no la resuelve. Sí deja preparada la base que vamos a reutilizar: una cuenta identificada, acceso limitado y una sesión que podemos desconectar.

Llévate el código de la serie

Suscríbete a la newsletter de Código BIM y te enviaré el repositorio con las instrucciones para elegir la versión de cada artículo. Un mismo recurso para seguir toda la serie, desde el login con Autodesk hasta el futuro servidor MCP.

El correo incluye el acceso a todas las versiones de la serie. Podrás darte de baja de la newsletter cuando quieras.

Siguiente paso: encontrar tu proyecto

El login nos permite reconocer al usuario, pero aún no sabemos con qué proyecto va a trabajar. Ese será el siguiente paso: consultar los proyectos accesibles con su cuenta Autodesk y elegir uno antes de pedir sus incidencias. Siguiente artículo de la serie: consultar tus proyectos de Autodesk con Data Management API.

Artículos relacionados

Respuestas

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *