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¶
- En tu proveedor de identidad, crea una aplicación para OS. Recibes un identificador de cliente y un secreto.
-
Configura el inicio de sesión con
PUT /api/v1/organisations/{id}/company-loginy la cabeceraIf-Match: "0":Campo Qué rellenas kindoidcdisplay_nameel nombre en la página de inicio de sesión, 64 caracteres como máximo, por ejemplo Jansendomainel dominio probado, por ejemplo jansen.esauthorization_url,token_url,jwks_url,issuerlas direcciones de tu proveedor; están en su documento de descubrimiento ( /.well-known/openid-configuration)client_id,client_secretlo que te dio tu proveedor client_auth_methodclient_secret_basicoclient_secret_post, según lo pida tu proveedor -
OS responde
202con el inicio de sesión, en estadopending. Leeredirect_urien 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.