17 votos

¿Cómo almacenar las credenciales del proxy en MacOS para que sean utilizadas por los servicios del sistema?

Estoy usando MacOS Sierra 10.12.6 detrás de un proxy NTLM corporativo. Mi navegador y otras aplicaciones están utilizando la configuración del proxy del sistema, en el que he guardado mi nombre de usuario y contraseña para autenticar con el proxy. Esto funciona bien.

Hay un problema persistente con los servicios del sistema que tratan de acceder a la información en Internet y no ven tener acceso a las credenciales de proxy en mi cuenta de usuario. Veo la siguiente ventana emergente cada par de minutos, y haga lo que haga (actualizar mis credenciales en Preferencias del Sistema, o pulsar "Ahora no"), la ventana emergente sigue saliendo una y otra vez:

Proxy Authentication Required

El texto de la ventana emergente dice:

Se requiere autenticación de proxy

Introduzca la contraseña del proxy HTTP http://xxx.xxx.xxx.xxx:yyyy en las Preferencias del Sistema.

¿Qué puedo hacer para que no aparezca esta ventana emergente?

Cosas que he probado hasta ahora:

  • He actualizado mis credenciales en las Preferencias del Sistema ( Red > Avanzado > Proxy )
  • He copiado las entradas de credenciales de mi acceso llavero al Sistema llavero, ya que leí una recomendación al respecto en una entrada del blog o en una pregunta del foro.

Nada de esto ha funcionado, me aparece esta ventana emergente cada par de minutos, y no parece haber un patrón para cuando aparece.

Actualización 1:

En cuanto introduzco mis credenciales haciendo clic en el botón Preferencias del sistema en el cuadro de diálogo anterior (que puedo forzar, por ejemplo, abriendo Safari y empezando a escribir una URL en el cuadro de ubicación), dos los registros se crean en el acceso llavero, ambos con idéntico contenido:

@ xxx.xxx.xxx.xxx (nombre de usuario) Contraseña de Internet Hoy, 09:10 -- login

Ambos registros parecen idénticos, con el mismo nombre y atributos. Ambos muestran que la aplicación que lo solicitó es AuthBrokerAgent :

Keychain Access Control

Actualización 2:

También he probado esta sugerencia: https://discussions.apple.com/message/23848961#message23848961 copiando las entradas de autenticación del acceso llavero al sistema llavero y luego reiniciar, pero no lo arregló. De hecho, el temido cuadro de "Autenticación Proxy Requerida" apareció de nuevo mientras escribía esto...

Actualización 3:

He utilizado Wireshark para echar un vistazo al tráfico entre mi máquina y nuestro proxy:

  • El proxy vuelve con un 407 Proxy Authentication Required y Proxy-Authenticate: NTLM lo que coincide con mis expectativas, ya que nuestro proxy utiliza NTLM.
  • Algunos ejemplos que he visto en el tráfico (por ejemplo, iCloud) luego enviar de vuelta un NTLMSSP_NEGOTIATE respuesta.
  • El proxy vuelve con un NTLMSSP_CHALLENGE solicitar
  • El servicio responde con NTLMSSP_AUTH y mi nombre de usuario, que debe haber obtenido de alguna parte.
  • El proxy responde finalmente con un 200 Connection established

Para mí, esto demuestra que, en general, la autenticación por proxy funciona bien, si el sistema puede obtener el nombre de usuario y el proxy de alguna parte. La cuestión sigue siendo cómo/donde almacenar el nombre de usuario/contraseña para que todos los servicios del sistema puedan encontrarlo. Algunos servicios del sistema (supongo) no tienen ningún medio para encontrar las credenciales del proxy donde las estoy almacenando actualmente.

9voto

Douglas Puntos 10417

Este es el comportamiento más probable si el administrador de su sistema/red ha configurado la autenticación forzada del proxy que requiere más que un esquema de autenticación básica.

De la página de Microsoft Gestión de la autenticación en Acerca de la autenticación HTTP sección:

Existen dos tipos generales de esquemas de autenticación:

  • Esquema de autenticación básica, donde el nombre de usuario y la contraseña se envían en en texto claro al servidor.
  • Los esquemas de desafío-respuesta, que permiten un formato de desafío-respuesta.

Los esquemas de desafío-respuesta permiten una autenticación más segura. Si una solicitud requiere autenticación mediante un esquema de desafío-respuesta, el código de estado código de estado apropiado y las cabeceras Authenticate se devuelven al cliente. El cliente debe entonces reenviar la solicitud con un negociado. El servidor devolvería un código de estado apropiado con un reto y el cliente deberá entonces reenviar la solicitud con la respuesta adecuada para obtener el servicio solicitado.

Si el proxy que está utilizando utiliza el autenticación básica lo que está guardado en tu llavero será suficiente para autentificarte. Si un respuesta al desafío lo más probable es que tenga que proporcionar más información -en este caso, volver a introducir su contraseña- para autenticarse; y esto es lo que está viendo.

Proceso de autenticación NTLM

Esto es mucho más que almacenar credenciales. El cliente debe generar una respuesta basada en un generado del servidor. A continuación se muestra un muy resumido descripción del proceso de autenticación desde la perspectiva del cliente/servidor por Documentación de Microsoft

  • El cliente envía el nombre de usuario al servidor (en texto plano).

  • El servidor genera un número aleatorio de 16 bytes, llamado desafío o nonce, y lo envía al cliente.

  • El cliente encripta este reto con el hash de la contraseña del usuario y devuelve el resultado al servidor. Esto se llama la respuesta.

  • El servidor envía los tres elementos siguientes al controlador de dominio:

    • Nombre de usuario
    • Desafío enviado al cliente
    • Respuesta recibida del cliente
  • El DC valida el desafío y la respuesta cifrados. Si se autentifica, se concede el acceso.

El tercer paso anterior, requiere el cliente para hacer un hash de un número aleatorio que obtuvo del servidor. Esto significa intrínsecamente que no hay nada que almacenar en su cliente MacOS.

Como mínimo, debe estar unido al dominio de Active Directory. Esto significa que necesita Kerberos soporte habilitado y configurado adecuadamente para su organización específica.

Hay una frase clave en el documento "Handling Authentication" que he enlazado anteriormente:

Si se requiere autenticación, el indicador INTERNET_FLAG_KEEP_CONNECTION debe utilizarse en la llamada a HttpOpenRequest. El indicador INTERNET_FLAG_KEEP_CONNECTION es necesaria para NTLM y otros tipos de tipos de autenticación para mantener la conexión mientras mientras se completa el proceso de autenticación. Si la conexión no se se mantiene, el proceso de autenticación debe reiniciarse con el proxy o servidor.

(El énfasis es mío)

Basado en los síntomas que se presentan, parece que su organización requiere autenticación para el proxy; su nombre de usuario/contraseña son válidos, pero sigue (re)pidiendo autenticación. Probablemente se deba a que está perdiendo el estado de la conexión y tiene que hacer todo esto de nuevo. Lo que enfatiza aún más el punto....

Para resolver este problema, tendrá que ponerse en contacto con su administrador de red para que le ayude con los problemas de autenticación.

4voto

Clarice Puntos 31

Note: check radio button to allow all application to use proxy

por la autenticidad de la aplicación de llavero modificar la configuración

-3voto

Ejecute el siguiente comando desde Console.app :

networksetup -setwebproxy "Your Interface Name" "web proxy hostname or IP" 
8080 on username password

Se le preguntará por el acceso al llavero. Acepta añadir el registro en el llavero y tendrás un acceso sin contraseña todo el tiempo cuando tu llavero esté abierto.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X