Administrar
Control de acceso
Cada entorno tiene su propia puerta para los USUARIOS FINALES — separada de quién puede iniciar sesión en este panel. El control de acceso decide si alguien puede abrir el complemento siquiera, y qué funciones puede llamar.
8 min de lectura
Esto no es la misma audiencia que Miembros y roles. Esa página cubre a las personas que inician sesión en este panel para configurar ConnXL. Esta página cubre a las personas que abren tu complemento en Excel y escriben =NAMESPACE.MODULE.FN(…) — tus usuarios finales, que quizá nunca toquen el panel.
El control de acceso se configura por entorno (un complemento de Development y su homólogo de Production pueden tener reglas completamente distintas), en el área Access del entorno dentro del panel, dividida en seis pestañas: Sign-in, Visibility, Audience, Permissions, Network y Activity.
Conecta un proveedor de inicio de sesión
Nada en esta página tiene efecto hasta que al menos un proveedor de identidad esté conectado y habilitado. Añade uno o varios desde la pestaña Sign-in:
entra— Microsoft Entra ID (Azure AD). Una conexión por entorno.google— Google Workspace. Una conexión por entorno.microsoft-personal— una cuenta PERSONAL de Microsoft (outlook.com / hotmail.com / live.com). Entra solo cubre directorios de trabajo o centro educativo. Una conexión por entorno.oidc— un proveedor OpenID Connect genérico (Okta, Auth0, o cualquier IdP compatible con el estándar). Sin límite — conecta tantos como necesites, uno junto a otro.
Cada proveedor se habilita o deshabilita de forma independiente. Los campos mostrados dependen del tipo — mira Configurar proveedores de identidad para saber dónde encontrar cada valor:
| Field | Type | Description |
|---|---|---|
displayNameOptional | string | La etiqueta mostrada en el botón de inicio de sesión (por defecto, el nombre del tipo de proveedor). |
tenantIdEntra | string | El ID de tu tenant de Entra. No hace falta —ni se muestra— cuando el proveedor está configurado para aceptar cualquier organización de Microsoft (ver más abajo). |
clientIdRequired | string | El ID de la aplicación (cliente) registrada con el proveedor. |
resourceUriEntra | string | El Application ID URI que el agent presenta como audiencia del token. |
issuerUrlOIDC | URL | La URL base del emisor OIDC (p. ej. https://tu-tenant.okta.com). |
scopesOptional | string[] | Scopes de OAuth adicionales a solicitar además de los del proveedor por defecto. |
clientSecretRequired | secret://… | Una referencia al secreto de cliente OAuth. De solo escritura — una vez guardado, el panel solo muestra que hay un secreto definido, nunca su valor. |
No hay un interruptor separado de "exigir inicio de sesión" — el inicio de sesión se aplica automáticamente en el momento en que se habilita cualquiera de los proveedores anteriores.
Entra: una organización, o cualquier organización
Un proveedor de Entra hace una pregunta más: quién puede iniciar sesión.
- Solo mi organización (lo predeterminado) — solo las personas del tenant que indicaste en
tenantId. A cualquiera de otro directorio de Microsoft se le rechaza antes de consultar siquiera una regla de esta página. - Cualquier organización de Microsoft — también pueden entrar personas de otras empresas, sujetas a tu Audience y tus Permissions de abajo.
tenantIddesaparece, porque ya no queda un único directorio al que fijarse.
La segunda opción es para un complemento que compartís con socios, clientes o contratistas que viven en sus propios tenants de Microsoft. No significa "abierto a todo el mundo": cada llamante sigue teniendo que pasar las reglas de Audience y Permissions de abajo, así que un entorno privado sigue admitiendo solo a las personas que invitaste o a los dominios que permitiste.
Cualquier organización requiere dos cambios en tu propio registro de aplicación de Azure
Ninguno de los dos es algo que ConnXL pueda configurar por vos, y los dos hacen que el inicio de sesión falle si se omiten:
- Tu registro de aplicación tiene que ser multi-tenant — "Cuentas en cualquier directorio organizacional" en Azure. Si es de un solo tenant, la propia Microsoft rechaza los inicios de sesión externos en su página de login, antes de que la petición llegue a tu agent.
- También tiene que pedir el claim opcional
xms_edoven el token de acceso — Azure → tu registro de aplicación → Configuración de token → Agregar claim opcional → Acceso →xms_edov. (El portal puede avisar de que el claim no se reconoce; ese aviso se puede ignorar sin problema.) Este claim es la forma en que Microsoft nos dice que una dirección de email es realmente de quien inicia sesión. Sin un tenant al que fijarse, es lo único que separa tu lista de permitidos de alguien que creó su propio directorio y escribió ahí la dirección de uno de tus usuarios — así que rechazamos todo inicio de sesión que llegue sin él, en lugar de confiar en la dirección.
Ningún proveedor habilitado significa ninguna puerta en absoluto
Hasta que al menos un proveedor esté habilitado, el inicio de sesión no puede exigirse — cualquiera que pueda alcanzar el host del agent puede llamar a cualquier función, sin importar lo que digan Visibility o Audience más abajo. Un aviso en cada pestaña de Access te lo recuerda hasta que se resuelva.
Elige Público o Privado
La pestaña Visibility es el interruptor principal, y es el mismo ajuste defaultAccess al que recurre la pestaña Permissions para cualquiera sin una concesión explícita:
- Privado (por defecto) — solo entra la audiencia que definas más abajo.
- Público — cualquiera que pueda iniciar sesión con un proveedor conectado puede abrir el complemento y llamar a sus funciones, sujeto a lo que Permissions deniegue.
Cambiar a Público expone cada función de cada espacio de nombres a cualquiera en el proveedor de identidad de tu organización, así que el panel te pide confirmar el cambio antes de que surta efecto.
Define la audiencia
La pestaña Audience es donde se definen los llamantes permitidos de un entorno Privado (los Groups también importan en entornos Públicos, ya que las concesiones de Permissions los referencian). Tres mecanismos, más una lista de bloqueo que se aplica en ambos casos:
| Field | Type | Description |
|---|---|---|
MembersOptional | — | Invita a usuarios finales individuales por email. Un miembro está invited hasta que inicia sesión por primera vez, luego pasa a active; puedes revoke el acceso (reinvitar más tarde) o eliminar a un miembro definitivamente. |
Allowed domainsOptional | — | Todo el que tenga un email en un dominio dado entra — p. ej. añade acme.com para dejar pasar a toda la empresa sin invitar a cada persona. |
GroupsOptional | — | Un conjunto con nombre de principales — emails individuales, dominios enteros, o un claim de grupo del proveedor de identidad procedente del token de sesión — para que una sola concesión de Permissions cubra a todo un equipo de una vez. |
Denied domainsOptional | — | Una lista de bloqueo que se aplica TANTO en entornos Públicos como Privados — una denegación siempre gana sobre un permiso coincidente, en todo este sistema. |
Concede acceso a funciones y recursos
La pestaña Permissions es donde pasas de "quién puede entrar" a "qué puede llamar":
- La cuadrícula de grupo × espacio de nombres — cada grupo gestionado como fila, cada espacio de
nombres de Excel (el
MODULEenMODULE.FN) donde viven tus funciones como columna. Haz clic en una celda para recorrer Inherit → Allow → Deny → Inherit. Inherit significa que el grupo no tiene una concesión explícita en ese espacio de nombres, así que recurre al ajuste de Visibility de arriba. - Concesiones individuales — permite o deniega un email o dominio concreto contra
*(todas las funciones), un espacio de nombres entero (MODULE.*), o una función exacta — para los casos que un grupo no cubre. - Concesiones por función — abre la página de detalle de cualquier función para encontrar una tarjeta dedicada que concede o deniega grupos, emails o dominios concretos para solo esa función, anulando la regla más amplia del espacio de nombres.
Una denegación siempre gana sobre un permiso coincidente, en cada nivel — un grupo permitido en todo un espacio de nombres aún puede ser denegado para una función específica dentro de él.
Restringe por red
La pestaña Network añade reglas basadas en IP encima de todo lo anterior: un rango CIDR IPv4 (o una dirección suelta, tratada como /32), un efecto de permiso o denegación, y un alcance (*, un espacio de nombres, o una función). El agent comprueba la IP de la petición del llamante contra estas reglas en el momento de la ejecución — dentro de tu propia red, lo más cerca posible de los datos. Los rangos IPv6 aún no están soportados.
Revisa el registro de actividad
La pestaña Activity es un registro de auditoría de solo anexión para el entorno: cada inicio de sesión, llamada denegada, cambio de permiso y revocación, filtrable por tipo de evento.
El actor nunca es un email en claro
Las entradas de Activity identifican al llamante mediante un hash, no su dirección de email — el registro es seguro de consultar y compartir por defecto, y aun así te permite correlacionar eventos con la misma persona a lo largo del tiempo.
Miembros y roles
El acceso en ConnXL es a nivel de organización: cada miembro puede ver todos los complementos y entornos de la organización, y su rol decide qué puede cambiar. No hay una membresía por complemento que gestionar.
Facturación
Una sola suscripción cubre cada complemento de tu organización, facturada por complemento a través de Paddle. Tu primer complemento es gratis durante un mes; esto es lo que ocurre antes y después de eso, además de los tickets de soporte, la pertenencia a varias organizaciones y tus ajustes de cuenta personales.