Te damos la bienvenida a nuestro sitio, en este lugar encontrarás la resolución a lo que buscas.
los gssapi
El complemento de autenticación se lanzó por primera vez en MariaDB 10.1.11.
los gssapi
El complemento de autenticación permite al usuario autenticarse con los servicios que utilizan el Interfaz de programa de aplicación de servicios de seguridad genéricos (GSSAPI). Windows tiene una API ligeramente diferente pero muy similar llamada Interfaz de proveedor de soporte de seguridad (SSPI). GSSAPI es una API estandarizada descrita en RFC2743 y RFC2744. El cliente y el servidor negocian utilizando un protocolo estandarizado descrito en RFC7546.
En Windows, este complemento de autenticación admite Kerberos y NTLM autenticación. La autenticación de Windows es compatible independientemente de si dominio se utiliza en el medio ambiente.
En los sistemas Unix, el servicio GSSAPI más dominante es Kerberos. Sin embargo, se usa con menos frecuencia en sistemas Unix que en Windows. Independientemente, este complemento de autenticación también admite la autenticación Kerberos en Unix.
los gssapi
El complemento de autenticación se usa con mayor frecuencia para autenticarse con Microsoft Active Directory.
Este artículo proporciona instrucciones sobre cómo configurar el gssapi
complemento de autenticación para MariaDB para inicio de sesión sin contraseña.
Instalación del paquete del complemento
los gssapi
La biblioteca compartida del complemento de autenticación se incluye en los paquetes MariaDB como auth_gssapi.so
o auth_gssapi.dll
biblioteca compartida en sistemas donde se puede construir. El complemento se incluyó por primera vez en MariaDB 10.1.11.
Instalación en Linux
los gssapi
El complemento de autenticación se incluye en los archivos tar binarios en Linux.
Instalación con un administrador de paquetes
los gssapi
El complemento de autenticación también se puede instalar a través de un administrador de paquetes en Linux. Para hacerlo, su sistema debe estar configurado para instalar desde uno de los repositorios de MariaDB.
Puede configurar su administrador de paquetes para instalarlo desde el repositorio de paquetes MariaDB de MariaDB Corporation utilizando el script de configuración del repositorio de paquetes MariaDB.
También puede configurar su administrador de paquetes para instalarlo desde MariaDB Foundation’s MariaDB Repository usando el Herramienta de configuración del repositorio MariaDB.
Instalación con yum / dnf
En RHEL, CentOS, Fedora y otras distribuciones de Linux similares, se recomienda encarecidamente instalar el paquete RPM relevante del repositorio de MariaDB utilizando yum
o dnf
. Comenzando con RHEL 8 y Fedora 22, yum
ha sido reemplazado por dnf
, que es la próxima versión principal de yum
. Sin embargo, yum
los comandos todavía funcionan en muchos sistemas que usan dnf
. Por ejemplo:
sudo yum install MariaDB-gssapi-server
Instalación con apt-get
En Debian, Ubuntu y otras distribuciones de Linux similares, se recomienda encarecidamente instalar el paquete DEB relevante desde el repositorio de MariaDB usando apt-get
. Por ejemplo:
sudo apt-get install mariadb-plugin-gssapi-server
Instalación con zypper
En SLES, OpenSUSE y otras distribuciones de Linux similares, se recomienda encarecidamente instalar el paquete RPM relevante del repositorio de MariaDB utilizando zypper
. Por ejemplo:
sudo zypper install MariaDB-gssapi-server
Instalación en Windows
los gssapi
El complemento de autenticación se incluye en los paquetes MSI y ZIP en Windows.
Instalación del complemento
Aunque la biblioteca compartida del complemento se distribuye con MariaDB de forma predeterminada, MariaDB no instala el complemento de forma predeterminada. Hay dos métodos que se pueden utilizar para instalar el complemento con MariaDB.
El primer método se puede utilizar para instalar el complemento sin reiniciar el servidor. Puede instalar el complemento dinámicamente ejecutando INSTALL SONAME
o INSTALL PLUGIN
. Por ejemplo:
INSTALL SONAME'auth_gssapi';
El segundo método se puede utilizar para decirle al servidor que cargue el complemento cuando se inicie. El complemento se puede instalar de esta manera proporcionando el --plugin-load
o la --plugin-load-add
opciones. Esto se puede especificar como un argumento de línea de comandos para mysqld
o se puede especificar en un grupo de opciones de servidor relevante en un archivo de opciones. Por ejemplo:
[mariadb]... plugin_load_add = auth_gssapi
Desinstalar el complemento
Puede desinstalar el complemento dinámicamente ejecutando UNINSTALL SONAME
o UNINSTALL PLUGIN
. Por ejemplo:
UNINSTALL SONAME'auth_gssapi';
Si instaló el complemento proporcionando el --plugin-load
o la --plugin-load-add
opciones en un grupo de opciones de servidor relevante en un archivo de opciones, entonces esas opciones deben eliminarse para evitar que el complemento se cargue la próxima vez que se reinicie el servidor.
Configurar el complemento
Si el servidor MariaDB se ejecuta en Unix, será necesario implementar algunos pasos de configuración adicionales para poder usar el complemento.
Si el servidor MariaDB se ejecuta en Windows, no será necesario implementar pasos de configuración especiales para usar el complemento, siempre que se cumpla lo siguiente:
- El servidor de Windows está unido a un dominio.
- El proceso del servidor MariaDB se ejecuta como Cuenta de servicio de red o un Cuenta de usuario de dominio.
Creación de un archivo de tabla de claves en Unix
Si el servidor MariaDB se ejecuta en Unix, entonces el servidor KDC deberá crear un archivo de tabla de claves para el servidor MariaDB. El archivo de tabla de claves contiene el nombre principal del servicio, que es la identidad que utilizará el servidor MariaDB para comunicarse con el servidor KDC. Será necesario transferir la tabla de claves al servidor MariaDB y mysqld
El proceso del servidor necesitará acceso de lectura a este archivo de tabla de claves.
La forma en que se genera este archivo de tabla de claves depende de si el servidor KDC está Microsoft Active Directory KDC o MIT Kerberos KDC.
Creación de un archivo de tabla de claves con Microsoft Active Directory
Si esta usando Microsoft Active Directory KDC, entonces es posible que deba crear una tabla de teclas con el ktpass.exe
utilidad en un host de Windows. La entidad de servicio deberá asignarse a un usuario de dominio existente. Para hacerlo, siga los pasos que se enumeran a continuación.
Asegúrese de reemplazar los siguientes elementos en el paso siguiente:
- Reemplazar
$HOST
con el nombre DNS completo para el host del servidor MariaDB. - Reemplazar
$DOMAIN
con el dominio de Active Directory. - Reemplazar
$AD_USER
con el usuario de dominio existente. - Reemplazar
$PASSWORD
con la contraseña de la entidad de servicio.
Para crear la entidad de servicio, ejecute lo siguiente:
ktpass.exe /princ mariadb/$HOST@$DOMAIN /mapuser $AD_USER /pass $PASSWORD /out mariadb.keytab /crypto all/ptype KRB5_NT_PRINCIPAL /mapop set
Creación de un archivo de tabla de claves con MIT Kerberos
Si esta usando MIT Kerberos KDC, entonces puedes crear un keytab archivo usando el kadmin
utilidad. Para hacerlo, siga los pasos que se enumeran a continuación.
En los siguientes pasos, asegúrese de reemplazar $HOST
con el nombre DNS completo para el host del servidor MariaDB.
Primero, cree la entidad de servicio usando el kadmin
utilidad. Por ejemplo:
kadmin -q "addprinc -randkey mariadb/$HOST"
Luego, exporte el usuario recién creado al archivo keytab usando el kadmin
utilidad. Por ejemplo:
kadmin -q "ktadd -k /path/to/mariadb.keytab mariadb/$HOST"
Se pueden encontrar más detalles en los siguientes enlaces:
- Documentación de MIT Kerberos: administración de bases de datos
- Documentación de MIT Kerberos: servidores de aplicaciones
Configuración de la ruta al archivo de tabla de claves en Unix
Si el servidor MariaDB se ejecuta en Unix, entonces la ruta al archivo keytab que se creó previamente se puede establecer configurando el gssapi_keytab_path
variable de sistema. Esto se puede especificar como un argumento de línea de comandos para mysqld
o se puede especificar en un grupo de opciones de servidor relevante en un archivo de opciones. Por ejemplo:
[mariadb]... gssapi_keytab_path=/path/to/mariadb.keytab
Configuración del nombre principal del servicio
El nombre principal del servicio se puede establecer configurando el gssapi_principal_name
variable de sistema. Esto se puede especificar como un argumento de línea de comandos para mysqld
o se puede especificar en un grupo de opciones de servidor relevante en un archivo de opciones. Por ejemplo:
[mariadb]... gssapi_principal_name=service_principal_name/host.domain.com@REALM
Si no se proporciona un nombre principal de servicio, el complemento intentará utilizar mariadb/[email protected]
por defecto.
Si el servidor MariaDB se ejecuta en Unix, entonces el complemento necesita un nombre principal de servicio para funcionar.
Si el servidor MariaDB se ejecuta en Windows, entonces el complemento no suele necesitar una entidad de servicio para funcionar. Sin embargo, si desea utilizar uno de todos modos, puede crear uno con el setspn
utilidad.
Las diferentes implementaciones de KDC pueden usar diferentes formas canónicas para identificar a los principales. Ver RFC2744: Sección 3.10 para aprender lo que dice el estándar sobre los nombres principales.
Se pueden encontrar más detalles en los siguientes enlaces:
- Servicios de dominio de Active Directory: nombres principales del servicio
- Documentación de MIT Kerberos: decisiones de configuración de dominios
- Documentación de MIT Kerberos: nombres principales y DNS
Crear usuarios
Para crear una cuenta de usuario a través de CREATE USER
, especifique el nombre del complemento en el IDENTIFIED VIA
cláusula. Por ejemplo:
CREATEUSER username@hostname IDENTIFIED VIA gssapi;
Si SQL_MODE
no tiene NO_AUTO_CREATE_USER
, entonces también puede crear la cuenta de usuario a través de GRANT
. Por ejemplo:
GRANTSELECTON db.*TO username@hostname IDENTIFIED VIA gssapi;
También puede especificar el usuario reino para MariaDB con el USING
cláusula. Por ejemplo:
CREATEUSER username@hostname IDENTIFIED VIA gssapi USING'[email protected]';
El formato del reino depende del mecanismo de autenticación específico que se utilice. Por ejemplo, el formato debería ser machine\username
para usuarios de Windows que se autentican con NTLM.
Si el reino no se proporciona en la definición de la cuenta de usuario, entonces el reino es no utilizado para la comparación. Por lo tanto, ‘[email protected]’,'[email protected]’y’ mymachine usr1 ‘se identificarían como la siguiente cuenta de usuario:
CREATEUSER usr1@hostname IDENTIFIED VIA gssapi;
Complementos de autenticación de clientes
Para clientes que utilizan el libmysqlclient
o bibliotecas MariaDB Connector / C, MariaDB proporciona un complemento de autenticación de cliente que es compatible con gssapi
complemento de autenticación:
auth_gssapi_client
Al conectarse con un cliente o una utilidad a un servidor como una cuenta de usuario que se autentica con el gssapi
complemento de autenticación, es posible que deba decirle al cliente dónde encontrar el complemento de autenticación de cliente relevante especificando el --plugin-dir
opción. Para ejemplo:
mysql --plugin-dir=/usr/local/mysql/lib64/mysql/plugin --user=alice
auth_gssapi_client
los auth_gssapi_client
El complemento de autenticación del cliente recibe el nombre principal del servidor y luego usa el gss_init_sec_context
función (en Unix) o la InitializeSecurityContext
función (en Windows) para establecer un contexto de seguridad en el cliente.
Soporte en bibliotecas cliente
Uso del complemento con MariaDB Connector / C
Soportes MariaDB Connector / C gssapi
autenticación utilizando los complementos de autenticación de cliente mencionados en la sección anterior desde MariaDB Connector / C 3.0.1.
Uso del complemento con MariaDB Connector / ODBC
Compatibilidad con MariaDB Connector / ODBC gssapi
autenticación mediante los complementos de autenticación de cliente mencionados en la sección anterior desde MariaDB Connector / ODBC 3.0.0.
Uso del complemento con MariaDB Connector / J
Soportes MariaDB Connector / J gssapi
autenticación desde MariaDB Connector / J 1.4.0. La documentación actual se puede encontrar aquí.
Usando el complemento con MariaDB Connector / Node.js
MariaDB Connector / Node.js aún no es compatible gssapi
autenticación. Ver CONJS-72 para más información.
Usando el complemento con MySqlConnector para .NET
MySqlConnector para ADO.NET admite gssapi
autenticación desde MySqlConnector 0.47.0.
El soporte es transparente. Normalmente, al conector solo se le debe proporcionar el nombre de usuario correcto y no se requieren otros parámetros.
Sin embargo, este conector también es compatible con ServerSPN
parámetro de cadena de conexión, que se puede utilizar para la autenticación mutua.
Problemas / soluciones específicas de .NET
Al conectarse desde un cliente Unix a un servidor Windows con ADO.NET, en un entorno de dominio de Active Directory, tenga en cuenta que .NET Core en Unix no admite nombres principales en forma UPN (Nombre principal de usuario), que es el predeterminado en Windows (p. Ej. [email protected]). Por lo tanto, al encontrar una excepción de autenticación con “servidor no encontrado en la base de datos Kerberos”, utilice una de las soluciones a continuación
- Forzar SPN basado en host en el lado del servidor.
- Por ejemplo, esto se puede hacer configurando el
gssapi_principal_name
variable de sistema aHOST/machine
en un grupo de opciones de servidor en un archivo de opciones.
- Por ejemplo, esto se puede hacer configurando el
- Pase SPN basado en host en el lado del cliente.
- Por ejemplo, esto se puede hacer configurando el conector
ServerSPN
parámetro de cadena de conexión aHOST/machine
.
- Por ejemplo, esto se puede hacer configurando el conector
Versiones
Versión | Estado | Introducido |
---|---|---|
1.0 | Estable | MariaDB 10.1.15 |
1.0 | Beta | MariaDB 10.1.11 |
Variables del sistema
gssapi_keytab_path
- Descripción: Define la ruta al archivo de tabla de claves del servidor.
- Esta variable de sistema solo es significativa en Unix.
- Consulte Creación de un archivo de tabla de claves en Unix y Configuración de la ruta al archivo de tabla de claves en Unix para obtener más información.
- Línea de comando:
--gssapi-keytab-path
- Alcance: Global
- Dinámica: No
- Tipo de datos:
string
- Valor por defecto: ”
- Introducido:MariaDB 10.1.11
gssapi_principal_name
- Descripción: Nombre de la entidad de servicio.
- Consulte Configuración del nombre principal del servicio para obtener más información.
- Línea de comando:
--gssapi-principal-name
- Alcance: Global
- Dinámica: No
- Tipo de datos:
string
- Valor por defecto: ”
- Introducido:MariaDB 10.1.11
gssapi_mech_name
- Descripción: Nombre del paquete SSPI utilizado por el servidor. Puede ser ‘Kerberos’ o ‘Negociar’. Configúrelo en ‘Kerberos’ para evitar NTLM menos seguro en entornos de dominio, pero déjelo como predeterminado (Negociar) para permitir entornos sin dominio (por ejemplo, si el servidor no se ejecuta en un entorno de dominio).
- Esta variable de sistema solo es significativa en Ventanas.
- Línea de comando:
--gssapi-mech-name
- Alcance: Global
- Dinámica: No
- Tipo de datos:
enumerated
- Valor por defecto:
Negotiate
- Valores válidos:
Kerberos
,Negotiate
- Introducido:MariaDB 10.1.11
Opciones
gssapi
- Descripción: Controla cómo el servidor debe tratar el complemento cuando se inicia.
- Los valores válidos son:
OFF
– Desactiva el complemento sin eliminarlo delmysql.plugins
mesa.ON
– Habilita el complemento. Si el complemento no se puede inicializar, el servidor seguirá iniciándose, pero el complemento se desactivará.FORCE
– Habilita el complemento. Si el complemento no se puede inicializar, el servidor no podrá iniciarse con un error.FORCE_PLUS_PERMANENT
– Habilita el complemento. Si el complemento no se puede inicializar, el servidor no podrá iniciarse con un error. Además, el complemento no se puede desinstalar conUNINSTALL SONAME
oUNINSTALL PLUGIN
mientras el servidor está funcionando.
- Consulte Descripción general del complemento: configuración de la activación del complemento al iniciar el servidor para obtener más información.
- Los valores válidos son:
- Línea de comando:
--gssapi=value
- Tipo de datos:
enumerated
- Valor por defecto:
ON
- Valores válidos:
OFF
,ON
,FORCE
,FORCE_PLUS_PERMANENT
- Introducido:MariaDB 10.1.11
El contenido reproducido en este sitio es propiedad de sus respectivos dueños, y MariaDB no revisa este contenido con anticipación. Los puntos de vista, la información y las opiniones expresadas por este contenido no representan necesariamente las de MariaDB o de cualquier otra parte.
Te invitamos a corroborar nuestra faena exponiendo un comentario o dejando una valoración te damos la bienvenida.