Una cuenta de servicio permite que tu propio agente, script o pipeline use 50heads sin pertenecer a una persona. Pertenece a tu organización, así que sigue funcionando cuando la persona que la configuró deja la empresa, incluso cuando tu proveedor de identidad la quita.

Cada cuenta de servicio tiene su propio ID de cliente y su secreto, trabaja en uno de tus equipos, solo hace lo que permiten sus permisos y solo gasta dentro de sus límites. Sus preguntas pertenecen a ese equipo y usan los créditos del equipo.

Estamos introduciendo las cuentas de servicio poco a poco. Si no ves Cuentas de servicio en Ajustes, luego Organización, todavía no están activadas para tu organización. Escríbenos si las quieres.

Quién puede crearlas y cambiarlas

Los propietarios y administradores de alguno de los equipos de la organización, con la sesión iniciada en la web. Crear, cambiar, desactivar y eliminar una cuenta de servicio necesitan que confirmes de nuevo que eres tú. Elige Confirmar que eres tú cuando se te pida. La confirmación dura 10 minutos.

Una cuenta de servicio nunca puede crearse, cambiarse ni ampliarse a sí misma, ni cambiar otra. Tampoco una clave de API ni una app conectada.

Crear una cuenta de servicio

  1. Ve a Ajustes, luego Organización, y elige Gestionar cuentas de servicio.
  2. En Nueva cuenta de servicio, ponle un nombre que diga para qué sirve, por ejemplo «Agente de investigación nocturno».
  3. Elige el equipo en el que trabaja, si tu organización tiene más de uno.
  4. Marca lo que puede hacer. Dale solo lo que necesita.
  5. Fija un límite diario y, si quieres, un límite por pregunta, en créditos.
  6. Elige cómo inicia sesión: con un secreto de cliente o con una clave privada (más abajo).
  7. Elige Crear cuenta de servicio.

El secreto de cliente se muestra una sola vez, con el ID de cliente y la dirección de tokens. Cópialos enseguida en los ajustes de tu agente. Solo guardamos un hash del secreto, así que no podemos volver a mostrarlo. Si se pierde, crea uno nuevo.

Qué puede hacer

Una cuenta de servicio puede tener cualquier permiso que pueda tener una clave de API; la lista está en Claves de API. En su equipo actúa con el rol de admin, limitado por esos permisos. Nunca es la propietaria del equipo y nunca aparece entre los miembros.

Los permisos de organización le dejan leer y gestionar la organización, con límites:

Permiso Qué permite
organization:read Ver la organización, sus dominios, reglas de acceso, inicio de sesión único, SCIM y cuentas de servicio
organization:write Cambiar dominios, reglas de acceso y ajustes de SCIM
members:read Ver dónde tiene la sesión iniciada un miembro
members:write Cerrar la sesión de un miembro en todas partes
audit:read Leer y exportar el registro de auditoría

Algunas acciones siempre necesitan una persona que acaba de confirmar que es ella, tenga los permisos que tenga: configurar o cambiar la conexión de inicio de sesión único y activarla o desactivarla, hacerla obligatoria, probarla, cambiar los propietarios de emergencia, crear o sustituir tokens SCIM, cambiar cuánto tiempo se guardan los eventos de auditoría, poner o levantar retenciones legales, ceder un equipo a un nuevo propietario y todo lo que afecte a las propias cuentas de servicio.

Límites de gasto

Cada cuenta de servicio tiene un límite diario y puede tener un límite por pregunta, en créditos. Una pregunta que superaría cualquiera de los dos se rechaza antes de gastar nada, igual que con una clave de API. Cada pregunta necesita un Idempotency-Key; enviar la misma clave otra vez devuelve la misma pregunta y nunca cobra dos veces.

Cómo inicia sesión

Tu agente pide un token de acceso a la dirección de tokens, https://auth.50heads.com/token, con grant_type=client_credentials. El token dura una hora; cuando caduca, el agente pide otro. No hay token de actualización.

Con un secreto de cliente, envía el ID de cliente y el secreto con autenticación HTTP Basic:

curl -s https://auth.50heads.com/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  -d grant_type=client_credentials

Después llama a la API con Authorization: Bearer <access_token>, como con una clave de API. Puedes añadir scope= para pedir menos permisos de los que tiene, nunca más.

Con una clave privada, tu agente firma una breve aserción (private_key_jwt, ES256 o RS256) en lugar de enviar un secreto. A 50heads solo le das las claves públicas, como un JSON Web Key Set de hasta 5 claves. Nunca pegues una clave privada. El emisor y el sujeto de la aserción son el ID de cliente, su audiencia es la dirección de tokens, tiene como mucho cinco minutos y cada una se usa una sola vez.

Sustituir un secreto

Elige Secreto nuevo en la cuenta de servicio. El secreto anterior sigue funcionando el tiempo que elijas (24 horas por defecto, hasta una semana, o nada), para que puedas cambiar tu agente. Como mucho funcionan dos secretos a la vez. Anular este secreto detiene uno antiguo al momento.

Desactivarla o eliminarla

  • Desactivar detiene sus tokens en su próxima solicitud y no recibe otros nuevos. Activar la recupera.
  • Eliminar detiene para siempre sus tokens y secretos, y los endpoints de webhook que creó. Las preguntas que hizo se quedan en el equipo, y sigue en el registro de auditoría.

Quitar a una persona, a mano o mediante tu proveedor de identidad, nunca afecta a una cuenta de servicio.

En el registro de auditoría

Cada cambio en una cuenta de servicio se registra con la persona que lo hizo. Lo que hace la propia cuenta de servicio, como hacer una pregunta, añadir un dominio o exportar el registro de auditoría, se registra con su nombre y el tipo de autor service_account. Consulta El registro de auditoría.

Relacionado