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

13

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

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

Eltextoenlaventanaemergentedice:

  

Requiereautenticacióndeproxy

    

IngreselacontraseñaparaelproxyHTTP enlace en Preferencias del sistema.

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

Cosas que he probado hasta ahora:

  • Actualicé mis credenciales en Preferencias del sistema ( Red > Advanced > Proxy )
  • Copié las entradas de credenciales de mi llavero login al Sistema , ya que leí una recomendación en una publicación de blog o en una pregunta del foro.

Ninguno de estos ha funcionado, recibo esta ventana emergente cada dos minutos, y no parece haber un patrón para cuando aparece.

Actualización 1:

Tan pronto como ingrese mis credenciales, haga clic en el botón Preferencias del sistema en el cuadro de diálogo anterior (que puedo forzar abriendo Safari y comenzando a escribir una URL en el cuadro de ubicación), dos registros se crean en el llavero login , ambos con contenido idéntico:

  

@ xxx.xxx.xxx.xxx (nombre de usuario) Contraseña de Internet Hoy, 09:10 - iniciar sesión

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

Actualización2:

Tambiénheprobadoestasugerencia: enlace , copiando las entradas de autenticación desde el inicio de sesión llavero al sistema llavero y luego reiniciar, pero no lo solucionó. De hecho, el temido cuadro de "Requiere autenticación de proxy" apareció nuevamente al escribir esto ...

Actualización 3:

He usado Wireshark para ver el tráfico entre mi máquina y nuestro proxy:

  • El proxy regresa con 407 Proxy Authentication Required y Proxy-Authenticate: NTLM , lo cual está en línea con mis expectativas, ya que nuestro proxy usa NTLM.
  • Algunos ejemplos que he visto en el tráfico (por ejemplo, iCloud) luego devuelven una respuesta NTLMSSP_NEGOTIATE .
  • El proxy regresa con una solicitud NTLMSSP_CHALLENGE
  • El servicio responde con NTLMSSP_AUTH y mi nombre de usuario, que debe haber obtenido de alguna parte.
  • El proxy finalmente responde con un 200 Connection established

Para mí, esto muestra que, en general, la autenticación del proxy funciona bien, si el sistema puede obtener el nombre de usuario y el proxy de algún lugar. La pregunta sigue siendo cómo / dónde 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 de proxy donde las estoy almacenando actualmente.

    
pregunta nwinkler 24.07.2017 - 12:55

3 respuestas

9

Es muy probable que este sea el comportamiento esperado si su administrador de sistema / red ha configurado la autenticación forzada de proxy que requiere algo más que un esquema de autenticación básico.

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

  

Hay dos tipos generales de esquemas de autenticación:

     
  • Esquema de autenticación básica, donde se envían el nombre de usuario y la contraseña   Cleartext al servidor.
  •   
  • Esquemas de desafío-respuesta, que permiten una   Formato de desafío-respuesta.
  •   

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

Si el proxy que está utilizando utiliza el esquema autenticación básica , lo que esté guardado en su llavero será suficiente para autenticarlo. Si se está utilizando un esquema de respuesta de desafío , lo más probable es que tenga que proporcionar más información, en este caso, vuelva a ingresar su contraseña para autenticar; y esto es lo que estás viendo.

Proceso de autenticación NTLM

Esto es mucho más que simplemente almacenar las credenciales. El cliente debe generar una respuesta basada en una solicitud generada del servidor. A continuación se incluye una descripción muy abreviada del proceso de autenticación desde la perspectiva del cliente / servidor según 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 cifra este desafío con el hash de la contraseña del usuario y devuelve el resultado al servidor. Esto se llama   respuesta.
  •   
  • El servidor envía los siguientes tres elementos 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 autentica, se concede acceso.

  •   

El tercer paso anterior, requiere el cliente para codificar un número aleatorio que recibió del servidor. Esto significa inherentemente 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 compatibilidad habilitado y configurado correctamente para su organización específica.

Hay una frase clave en el documento "Gestión de autenticación" que he vinculado anteriormente:

  

Si se requiere autenticación, el indicador INTERNET_FLAG_KEEP_CONNECTION   Se debe utilizar en la llamada a HttpOpenRequest. los   Se requiere un indicador INTERNET_FLAG_KEEP_CONNECTION para NTLM y otros   tipos de autenticación para mantener la conexión mientras   Completando el proceso de autentificación. Si la conexión no es   mantenido, el proceso de autenticación debe reiniciarse con el   proxy o servidor.

(Emphasis mine)

Según los síntomas que se presentan, parece que su organización requiere autenticación en el proxy; Su nombre de usuario / contraseña son válidos, pero sigue solicitando autenticación. Probablemente se deba a que está perdiendo el estado de conexión y tiene que hacer esto nuevamente. Lo que enfatiza aún más el punto ....

Para resolver este problema, deberás ponerte en contacto con el administrador de tu red para que te ayude con los problemas de autenticación.

    
respondido por el Allan 14.08.2017 - 18:14
1

por autorización de configuración de modificación de la aplicación de cadena de claves

    
respondido por el Rahul Kumar 30.01.2018 - 18:14
-2

Ejecuta el siguiente comando desde Console.app :

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

Se le preguntará acerca del acceso al llavero. Acepte agregar el registro en el llavero y tendrá acceso sin la contraseña todo el tiempo cuando su llavero esté abierto.

    
respondido por el Siarhei Karatkevich 14.08.2017 - 16:29

Lea otras preguntas en las etiquetas