시스템 서비스에서 사용하도록 macOS에 프록시 자격 증명을 저장하는 방법은 무엇입니까?


14

회사 NTLM 프록시 뒤에 macOS Sierra 10.12.6을 사용하고 있습니다. 브라우저 및 기타 응용 프로그램에서 시스템 프록시 설정을 사용하고 있는데, 프록시로 인증하기 위해 사용자 이름과 비밀번호를 저장했습니다. 이것은 잘 작동합니다.

인터넷의 정보에 액세스하려고하는데 내 사용자 계정의 프록시 자격 증명에 액세스 할 수없는 시스템 서비스에 지속적인 문제가 있습니다. 몇 분마다 다음 팝업이 표시되며 시스템 환경 설정에서 자격 증명을 업데이트하거나 "지금이 아님"을 누르면 내가하는 모든 작업이 계속 반복해서 나타납니다.

프록시 인증 필요

팝업의 텍스트는 다음과 같습니다.

프록시 인증 필요

시스템 환경 설정에서 HTTP 프록시 http://xxx.xxx.xxx.xxx:yyyy 의 비밀번호를 입력하십시오 .

이 팝업이 나타나지 않게하려면 어떻게해야합니까?

내가 지금까지 시도한 것 :

  • 시스템 환경 설정 ( 네트워크> 고급> 프록시 ) 에서 자격 증명이 업데이트되었습니다.
  • 블로그 게시물 또는 포럼 질문에서 권장 사항을 읽었으므로 로그인 키 체인에서 시스템 키 체인으로 자격 증명 항목을 복사했습니다 .

이것들 중 어느 것도 효과가 없었고, 나는 몇 분 마다이 팝업을 얻었고, 그것이 나타날 때의 패턴이없는 것 같습니다.

업데이트 1 :

위 대화 상자에서 시스템 환경 설정 버튼 을 클릭하여 자격 증명을 입력하자마자 (예 : Safari를 열고 위치 상자에 URL을 입력하기 시작하면 강제로 로그인 할 수 있음) , 로그인 키 체인 에 두 개의 레코드가 모두 생성됩니다. 함유량:

@ xxx.xxx.xxx.xxx (사용자 이름) 인터넷 비밀번호 오늘, 09:10-로그인

두 레코드는 동일한 이름과 속성으로 동일하게 보입니다. 둘 다 이것을 요청한 응용 프로그램은 AuthBrokerAgent다음과 같습니다.

키 체인 액세스 제어

업데이트 2 :

https://discussions.apple.com/message/23848961#message23848961이라는 제안을 시도 하여 로그인 키 체인에서 시스템 키 체인으로 인증 항목을 복사 한 다음 재부팅하지만 수정하지는 않았습니다. 실제로 이것을 입력하는 동안 두려운 "프록시 인증 필요"상자가 다시 나타납니다.

업데이트 3 :

Wireshark를 사용하여 내 컴퓨터와 프록시 간의 트래픽을 살펴 보았습니다.

  • 프록시가 NTLM을 사용하기 때문에 프록시는 예상과 일치하는 a 407 Proxy Authentication Required및로 반환됩니다 Proxy-Authenticate: NTLM.
  • 트래픽에서 본 일부 예 (예 : iCloud)는 NTLMSSP_NEGOTIATE응답을 다시 보냅니다 .
  • 프록시가 NTLMSSP_CHALLENGE요청으로 돌아옵니다.
  • 서비스는 NTLMSSP_AUTH사용자 이름 과 함께 응답합니다. 사용자 이름은 어딘가에서 얻었을 것입니다.
  • 프록시는 마침내 200 Connection established

나에게 이것은 시스템이 사용자 이름과 프록시를 다른 곳에서 얻을 수 있다면 일반적으로 프록시 인증이 잘 작동한다는 것을 보여줍니다. 질문은 모든 시스템 서비스가 찾을 수 있도록 사용자 이름 / 암호를 저장하는 방법 / 위치입니다. 일부 시스템 서비스 (내가 가정)에는 현재 자격 증명을 저장하는 프록시 자격 증명을 찾을 수있는 방법이 없습니다.



어떤 프록시를 사용하고 있습니까? 우리가 사용하고있는 프록시가 암호 저장을 금지 하여 사용자가 매번 인증 하도록 강요 했다는 것을 기억합니다 . 이 경우가 될 수 있습니다.
Allan

1
때때로 같은 문제가 발생하여 Citrix VPN 솔루션에 연결하기 때문에이 문제를 해결 한 적이 있습니까? 팝업이 나타나면 계속 반복해서 발생하고 결국 내 AD 계정이 잠 깁니다. 나는 이것을 해결하는 해결책을 아직 찾지 못했다. MacBook Pro를 사용하고 있고 IT 부서의 대부분이 Windows 기반이기 때문에 IT로부터 유용한 정보를받을 수 없었습니다. VPN에 연결하면 Solaris SPARC 서버에서 실행되는 Oracle 응용 프로그램에서 작업하고 있습니다. 이 문제를 해결할 수있는 방법을 찾으시기 바랍니다. 스탠
스탠 레 페타

죄송합니다, 아직 해결책을 찾지 못했습니다. 내가하는 일은 버튼을 누르지 않고 프록시 자격 증명을 요구하는 창을 화면의 측면으로 이동시키는 것입니다. 최소한 조용히 유지합니다.
nwinkler

답변:


9

시스템 / 네트워크 관리자가 단순한 기본 인증 체계 이상을 요구하는 프록시 강제 인증을 구성한 경우에 예상되는 동작입니다.

HTTP 인증 정보 섹션 의 Microsoft 페이지 처리 인증 에서 :

두 가지 일반적인 인증 체계 유형이 있습니다.

  • 사용자 이름과 비밀번호가 일반 텍스트로 서버에 전송되는 기본 인증 체계.
  • 챌린지-응답 형식을 허용하는 챌린지-응답 체계.

챌린지-응답 체계는보다 안전한 인증을 가능하게합니다. 요청에 챌린지-응답 체계를 사용하여 인증이 필요한 경우 적절한 상태 코드 및 인증 헤더가 클라이언트에 반환됩니다. 그런 다음 클라이언트는 협상을 통해 요청을 다시 보내야합니다. 서버는 요청과 함께 적절한 상태 코드를 반환 한 다음 클라이언트는 요청 된 서비스를 얻기 위해 적절한 응답으로 요청을 다시 보내야합니다.

사용중인 프록시가 기본 인증 체계 를 사용하는 경우 키 체인에 저장된 것이 사용자를 인증하기에 충분합니다. 경우 도전 응답 이 경우에는 - - 체계를 사용하는, 당신이 가장 가능성이 더 많은 정보를 제공해야합니다 비밀번호를 재 입력 - 인증하기 위해; 이것이 당신이보고있는 것입니다.

NTLM 인증 프로세스

이것은 자격 증명을 저장하는 것 이상 입니다. 클라이언트는 서버에서 생성 된 요청을 기반으로 응답을 생성 해야 합니다. 다음은 Microsoft 설명서에 따라 클라이언트 / 서버 관점에서 인증 프로세스에 대한 요약 된 설명입니다.

  • 클라이언트는 사용자 이름을 서버에 일반 텍스트로 보냅니다.
  • 서버는 challenge 또는 nonce라고하는 16 바이트의 난수를 생성하여 클라이언트로 보냅니다.
  • 클라이언트는이 암호를 사용자 암호 해시로 암호화하고 결과를 서버에 반환합니다. 이것을 응답이라고합니다.
  • 서버는 다음 세 가지 항목을 도메인 컨트롤러로 보냅니다.

    • 사용자 이름
    • 고객에게 챌린지 전송
    • 클라이언트로부터받은 응답
  • DC는 암호화 된 시도 및 응답을 확인합니다. 인증되면 액세스 권한이 부여됩니다.

위의 세 번째 단계는 필요 해시 클라이언트가 서버에서 가져온 임의의 숫자를. 이것은 본질적으로 macOS 클라이언트에 저장할 것이 없다는 것을 의미합니다.

최소한 Active Directory 도메인에 가입해야합니다. 즉 , 특정 조직에 대해 Kerberos 지원을 활성화하고 올바르게 구성 해야 합니다.

위에서 링크 한 "Handling Authentication"문서에 핵심 문구가 있습니다.

인증이 필요한 경우 HttpOpenRequest를 호출 할 때 INTERNET_FLAG_KEEP_CONNECTION 플래그를 사용해야합니다. 인증 프로세스를 완료하는 동안 연결을 유지하려면 NTLM 및 기타 유형의 인증에 INTERNET_FLAG_KEEP_CONNECTION 플래그가 필요합니다. 연결이 유지되지 않으면 프록시 또는 서버를 사용하여 인증 프로세스를 다시 시작해야합니다.

(엠파 시스 마인)

제시된 증상에 따라 조직에서 프록시에 대한 인증이 필요한 것으로 보입니다. 사용자 이름 / 암호는 유효하지만 인증을 계속 요청합니다. 연결 상태가 끊어지고 다시이 작업을 수행해야하기 때문일 수 있습니다. 요점을 더욱 강조합니다 ....

이 문제를 해결하려면 네트워크 관리자에게 문의하여 인증 문제를 해결해야합니다.


1
어떤 인증 체계가 사용되고 있는지 어떻게 알 수 있습니까? 애플리케이션이 프록시와 통신 할 때 볼 수있는 HTTP 헤더가 있습니까? Chrome의 네트워크 콘솔에서이 작업을 수행 할 수 있습니까, 아니면 Wireshark와 같은 것을 사용해야합니까?
nwinkler

아마도 Wireshark를 사용해야 할 것입니다. 암호화 된 트래픽 일 수도 있습니다.
Allan

1
Wireshark에서 본 정보에 대한 정보를 질문에 추가했습니다.
nwinkler

1
답변에 NTLM에 대한 추가 정보를 추가해 주셔서 감사합니다. NTLM을 이해하고 Wireshark 출력에서 ​​볼 수있는 것으로 작동합니다. Dropbox 또는 iCloud 서비스와 같은 문제 / 응답이 수행되고 있습니다. 여전히 프록시 프록시 대화 상자가 반복되는 서비스가 어떤 것인지 확실하지 않습니다. 귀하의 답변에는 많은 정보가 포함되어 있지만 지금까지 실제로 도움이되지는 않습니다.
nwinkler

1
Connection Established! = Access Granted. 이것이 작동 하는지 확인할 수있는 사람들 은 IT 부서의 시스템 / 네트워크 관리자입니다.
Allan


-2

에서 다음 명령을 실행하십시오 Console.app.

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

키 체인 접근에 대한 질문이있을 것입니다. 레코드를 키 체인에 추가하기로 동의하면 키 체인이 열려 있을 때 항상 비밀번호없이 액세스 할 수 있습니다.


1
나는 이것을 시도했지만 문제를 해결하지는 못한다. 이 명령은 사용자의 프록시 구성을 설정하고 인증을 사용자의 login키 체인 에 저장합니다 . 이 작업을 수행 한 직후 위에 표시된 프록시 인증 대화 상자가 다시 나타납니다. 제안한 수정으로도 문제가 해결되지 않습니다.
nwinkler

로그인 키 체인이 잠겨 있거나 이중 레코드를 가지고 있기 때문에
Siarhei Karatkevich

1
로그인 키 체인이 잠금 해제되었으므로 다시 확인했습니다. 그러나 이중 레코드에 대한 요점이 유효 할 수 있습니다. 로그인 및 시스템 키 체인에서 찾은 프록시 인증에 대한 모든 레코드를 삭제했지만 원래 게시물의 대화 상자에 비밀번호를 한 번 입력하자마자 로그인 키 체인에 두 개의 레코드가 생겼습니다. 같은 데이터. 삭제하면 자격 증명을 다시 입력하면 다시 나타납니다.
nwinkler

1
security나열된 명령을 시도했지만 아무것도 찾지 못했습니다. 키 체인은 항목을 "인터넷 암호"로 나열하기 때문에 find-generic-password명령을로 변경하면 find-internet-password됩니다.
nwinkler

1
프록시 URL은 xxx.xxx.xxx.xxx 로 설정되어 있으며 명령 줄에서 작동하는 방식입니다. Wireshark를 사용하여 무언가를 캡처하려고합니다.
nwinkler
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.