Saltar a contenido

Inicio de sesión de empresa

Con un inicio de sesión de empresa, las personas de tu organización entran en OS con la cuenta que ya tienen en tu propio proveedor de identidad, como Microsoft Entra ID, Google Workspace u Okta, mediante OpenID Connect o SAML. Esta página muestra cómo configurar un inicio de sesión de empresa, probarlo, hacerlo obligatorio, quién puede entrar sin él, quién puede unirse por sí mismo y cómo eliminarlo. Todavía no hay una pantalla para esto: un administrador usa la API de OS, con las rutas de abajo.

Quién puede hacer qué

Un org-admin de la organización puede configurar, cambiar y eliminar el inicio de sesión de empresa. Quien lo configura debe poder administrar también el dominio al que pertenece (Administrar roles). Cualquier miembro puede leer cómo está el inicio de sesión.

Una organización tiene como máximo un inicio de sesión de empresa. Pertenece a un dominio que tu organización ha probado, por ejemplo jansen.es (Dominios y direcciones). Prueba por tanto el dominio primero.

Configurar un inicio de sesión OpenID Connect

  1. En tu proveedor de identidad, crea una aplicación para OS. Recibes un identificador de cliente y un secreto.
  2. Configura el inicio de sesión con PUT /api/v1/organisations/{id}/company-login y la cabecera If-Match: "0":

    Campo Qué rellenas
    kind oidc
    display_name el nombre en la página de inicio de sesión, 64 caracteres como máximo, por ejemplo Jansen
    domain el dominio probado, por ejemplo jansen.es
    authorization_url, token_url, jwks_url, issuer las direcciones de tu proveedor; están en su documento de descubrimiento (/.well-known/openid-configuration)
    client_id, client_secret lo que te dio tu proveedor
    client_auth_method client_secret_basic o client_secret_post, según lo pida tu proveedor
  3. OS responde 202 con el inicio de sesión, en estado pending. Lee redirect_uri en la respuesta y añade esa dirección en tu proveedor como dirección de redirección de la aplicación. Termina en /broker/os-<identificador de tu organización>/endpoint.

Toda dirección debe empezar por https://, nombrar un nombre de host (no una dirección IP), no tener puerto salvo el 443 y tener 2.048 caracteres como máximo. Ninguna respuesta contiene el secreto: OS lo guarda cifrado hasta que el inicio de sesión esté activo y entonces lo descarta.

Configurar un inicio de sesión SAML

Configura el inicio de sesión con la misma ruta y kind: saml:

Campo Qué rellenas
sso_url la dirección de inicio de sesión único de tu proveedor
entity_id el identificador de entidad de tu proveedor
signing_certificate el certificado con el que firma tu proveedor, en PEM; RSA de al menos 2.048 bits o EC en P-256 o más fuerte, no caducado
display_name, domain como en OpenID Connect

Después da a tu proveedor la dirección de metadata_url en la respuesta: contiene todo lo que tu proveedor necesita saber sobre OS. OS pide respuestas firmadas y la dirección de correo como NameID.

Qué dice el estado

OS pone el inicio de sesión en Keycloak, el servicio de inicio de sesión de OS, y luego lo vuelve a leer. GET /api/v1/organisations/{id}/company-login muestra hasta dónde ha llegado:

status Significado
pending OS está poniendo el inicio de sesión en su sitio. Espera a que el servicio de inicio de sesión conozca también el dominio, normalmente unos segundos y como máximo una hora.
active El inicio de sesión está en su sitio. applied_version es igual a version.
failed El inicio de sesión no se puso; failure_reason dice por qué.
removing OS está quitando el inicio de sesión.
failure_reason Qué ha pasado y qué haces
domain_taken Otra organización ya usa este dominio para su inicio de sesión. Contacta con el operador de OS.
refused El servicio de inicio de sesión rechazó los ajustes. Revisa las direcciones y configura de nuevo el inicio de sesión.
mismatch El inicio de sesión estaba de otro modo que como lo puso OS, o se quitó sin OS. Configúralo de nuevo, con el secreto.
given_up El servicio de inicio de sesión estuvo inaccesible demasiado tiempo, o seguía sin conocer el dominio tras una hora. Configura de nuevo el inicio de sesión.

Cuando el servicio de inicio de sesión rechaza un cambio en un inicio de sesión que ya funcionaba, la versión anterior sigue funcionando: applied_version nombra esa versión. Cuando aceptó los ajustes nuevos y un paso posterior falló, los ajustes nuevos ya se aplican; revísalos y configura de nuevo el inicio de sesión, con el secreto.

Probar el inicio de sesión

OS nunca llama él mismo a tu proveedor, así que no hay un botón que pruebe el inicio de sesión. Pruébalo tú: abre una ventana privada, ve a OS e inicia sesión con una dirección de tu dominio. La respuesta nombra también sign_in_hint; con él, OS envía a alguien directamente a tu proveedor. Hazlo antes de hacer obligatorio el inicio de sesión.

Hacer obligatorio el inicio de sesión

Cuando el inicio de sesión es obligatorio, un miembro solo llega a tu organización si inició sesión por el inicio de sesión de empresa. Actívalo con PATCH /api/v1/organisations/{id}/company-login y {"required": true}, con la versión que leíste en If-Match.

OS lo rechaza (409) mientras el inicio de sesión no esté activo, o si tú no iniciaste sesión por él, no eres una excepción y no administras la organización desde arriba. Así no te quedas fuera con un inicio de sesión que no funciona.

Un miembro que inició sesión de otra manera recibe 403 con el tipo de problema company-login-required y el sign_in_hint de tu inicio de sesión; OS le cierra entonces la sesión y la vuelve a abrir por el inicio de sesión de empresa. Un administrador de un socio que administra tu organización desde arriba queda bajo la regla de su propia organización, no de la tuya.

Excepciones

Para el día en que tu proveedor no funcione, puedes nombrar como máximo tres miembros que también puedan iniciar sesión de otra manera. PUT /api/v1/organisations/{id}/company-login/exemptions/{membership_id} añade un miembro, DELETE en la misma dirección lo quita. La respuesta los nombra en exemptions. Una excepción termina cuando la pertenencia se desactiva o se elimina. Cada vez que una excepción inicia sesión de otra manera, queda en el registro de auditoría.

También puedes invitar a alguien cuya dirección está fuera del dominio que dirige tu inicio de sesión, por ejemplo un asesor externo, con una de las tres excepciones: "company_login_exempt": true en el cuerpo de POST /api/v1/organisations/{id}/invitations. La invitación cuenta entonces entre las tres y aparece enseguida en exemptions; la persona la conserva al aceptar, y termina cuando la invitación se retira o caduca.

Unirse por sí mismo

joining decide qué pasa con alguien que inicia sesión por el inicio de sesión de empresa con una dirección de tu dominio pero todavía no es miembro:

joining Qué pasa
invitation (predeterminado) OS le dice que pida una invitación a un administrador (Invitar a personas).
automatic OS le ofrece hacerse miembro, solo con el rol member.

Cámbialo con PATCH y {"joining": "automatic"}. Unirse funciona también para quien inicia sesión por primera vez por el inicio de sesión de empresa: OS acepta su dirección para ello porque está en tu dominio probado y entró por tu propio inicio de sesión.

Cambiar el inicio de sesión

Envía de nuevo el inicio de sesión entero con PUT, con la versión que leíste en If-Match y el secreto incluido. El tipo (oidc o saml) no puede cambiar; elimina entonces el inicio de sesión y configura uno nuevo. Hasta que el servicio de inicio de sesión acepte el cambio, la versión anterior sigue funcionando.

Eliminar el inicio de sesión

DELETE /api/v1/organisations/{id}/company-login, con If-Match, elimina el inicio de sesión. Deja de ser obligatorio de inmediato y las excepciones terminan. Los miembros y sus cuentas se quedan: quien también tiene contraseña entra con ella; quien solo entraba por el inicio de sesión de empresa fija una contraseña con ¿Has olvidado tu contraseña? en la página de inicio de sesión. Si renuncias al dominio, el inicio de sesión desaparece con él (Dominios y direcciones).

Cuando OS rechaza

Respuesta Significado
409 If-Match nombra otra versión, o "0" cuando ya hay un inicio de sesión; el tipo cambió; el inicio de sesión se está eliminando; una cuarta excepción; hacerlo obligatorio cuando aún no se puede.
422 Falta If-Match; el dominio no está probado; una dirección, el certificado o el secreto incumple las reglas de arriba.
503 OS no puede guardar el secreto de forma segura ahora. Inténtalo más tarde.

Qué vigila OS

Cada cinco minutos OS comprueba que tu inicio de sesión en el servicio de inicio de sesión sigue como OS lo puso, y restablece lo que alguien cambió fuera de OS. No necesitas hacer nada para ello. Cada cambio que haces queda en el registro de auditoría, sin el secreto.