Làm cách nào để lưu trữ thông tin đăng nhập proxy trên macOS để chúng được các dịch vụ hệ thống sử dụng?


14

Tôi đang sử dụng macOS Sierra 10.12.6 đằng sau proxy NTLM của công ty. Trình duyệt của tôi và các ứng dụng khác đang sử dụng cài đặt proxy hệ thống, trong đó tôi đã lưu tên người dùng và mật khẩu để xác thực với proxy. Điều này đang làm việc tốt.

Có một vấn đề dai dẳng với các dịch vụ hệ thống cố gắng truy cập thông tin trên internet và không thấy có quyền truy cập vào thông tin đăng nhập proxy trong tài khoản người dùng của tôi. Tôi thấy cửa sổ bật lên sau đây cứ sau vài phút và bất cứ điều gì tôi làm (cập nhật thông tin đăng nhập của tôi trong Tùy chọn hệ thống hoặc nhấn "Không phải bây giờ"), cửa sổ bật lên liên tục xuất hiện:

Yêu cầu xác thực proxy

Văn bản trong cửa sổ bật lên có nội dung:

Yêu cầu xác thực proxy

Nhập mật khẩu cho proxy HTTP http://xxx.xxx.xxx.xxx:yyyy trong Tùy chọn hệ thống.

Tôi có thể làm gì để ngăn cửa sổ bật lên này xuất hiện?

Những điều tôi đã cố gắng cho đến nay:

  • Đã cập nhật thông tin đăng nhập của tôi trong Tùy chọn hệ thống ( Mạng> Nâng cao> Proxy )
  • Sao chép các mục thông tin đăng nhập từ móc khóa đăng nhập của tôi vào móc khóa Hệ thống , vì tôi đã đọc một đề xuất cho điều đó trong một bài đăng trên blog hoặc câu hỏi diễn đàn.

Không có cái nào trong số này hoạt động, tôi nhận được cửa sổ bật lên này cứ sau vài phút và dường như không có mẫu nào xuất hiện khi nó xuất hiện.

Cập nhật 1:

Ngay khi tôi nhập thông tin đăng nhập của mình bằng cách nhấp vào nút Tùy chọn hệ thống trong hộp thoại ở trên (tôi có thể buộc bằng cách mở Safari và bắt đầu nhập URL vào hộp vị trí), hai bản ghi được tạo trong móc khóa đăng nhập , cả hai đều giống hệt nhau Nội dung:

@ xxx.xxx.xxx.xxx (tên người dùng) Mật khẩu Internet Hôm nay, 09:10 - đăng nhập

Cả hai bản ghi trông giống hệt nhau, với cùng tên và thuộc tính. Cả hai đều cho thấy ứng dụng yêu cầu này là AuthBrokerAgent:

Kiểm soát truy cập Keychain

Cập nhật 2:

Tôi cũng đã thử đề xuất này: https://discussions.apple.com/message/23848961#message23836161 , sao chép các mục xác thực từ khóa đăng nhập vào móc khóa hệ thống và sau đó khởi động lại, nhưng nó không khắc phục được. Trên thực tế, hộp "Yêu cầu xác thực proxy" đáng sợ lại xuất hiện trong khi gõ ...

Cập nhật 3:

Tôi đã sử dụng Wireshark để xem lưu lượng giữa máy của tôi và proxy của chúng tôi:

  • Proxy trả về với một 407 Proxy Authentication RequiredProxy-Authenticate: NTLM, phù hợp với mong đợi của tôi, vì proxy của chúng tôi sử dụng NTLM.
  • Một số ví dụ tôi đã thấy trong lưu lượng truy cập (ví dụ: iCloud) sau đó gửi lại NTLMSSP_NEGOTIATEphản hồi.
  • Proxy trở lại với một NTLMSSP_CHALLENGEyêu cầu
  • Dịch vụ trả lời NTLMSSP_AUTHvà tên người dùng của tôi, mà nó phải nhận được từ đâu đó.
  • Proxy cuối cùng cũng trả lời 200 Connection established

Đối với tôi, điều này cho thấy nói chung, xác thực proxy hoạt động tốt, nếu hệ thống có thể lấy tên người dùng và proxy từ một nơi nào đó. Câu hỏi vẫn là làm thế nào / nơi lưu trữ tên người dùng / mật khẩu để tất cả các dịch vụ hệ thống có thể tìm thấy nó. Một số dịch vụ hệ thống (tôi giả sử) không có bất kỳ phương tiện nào để tìm thông tin đăng nhập proxy nơi tôi hiện đang lưu trữ chúng.



Bạn đang sử dụng proxy nào? Tôi nhớ (từ kiếp trước) rằng một proxy mà chúng tôi đang sử dụng có khả năng không cho phép lưu trữ mật khẩu do đó buộc người dùng phải xác thực mỗi lần. Đây có thể là trường hợp.
Allan

1
Bạn đã bao giờ giải quyết vấn đề này bởi vì thỉnh thoảng tôi gặp phải vấn đề tương tự và tôi đang kết nối với giải pháp Citrix VPN. Khi cửa sổ bật lên xuất hiện, nó sẽ xảy ra lặp đi lặp lại và cuối cùng tài khoản AD của tôi sẽ bị khóa. Tôi vẫn chưa tìm thấy một giải pháp giải quyết điều này. Vì tôi đang sử dụng MacBook Pro và phần lớn Bộ phận CNTT là Windows, tôi không thể nhận được bất kỳ thông tin hữu ích nào từ CNTT. Khi tôi kết nối với VPN, tôi đang làm việc trên các ứng dụng Oracle đang chạy trên các máy chủ Solaris SPARC. Tôi thực sự hy vọng bạn tìm ra cách giải quyết vấn đề này. stan
Stan Repetta

Xin lỗi, chưa tìm thấy giải pháp cho việc này. Điều cuối cùng tôi làm là tôi di chuyển cửa sổ yêu cầu thông tin đăng nhập proxy sang bên cạnh màn hình mà không cần nhấn bất kỳ nút nào - điều đó khiến nó im lặng ít nhất ...
nwinkler 24/2/19

Câu trả lời:


9

Đây rất có thể là hành vi được mong đợi nếu quản trị viên hệ thống / mạng của bạn đã định cấu hình xác thực lực lượng proxy yêu cầu nhiều hơn chỉ là sơ đồ xác thực cơ bản.

Từ trang của Microsoft Xử lý Xác thực trong phần Giới thiệu về Xác thực HTTP :

Có hai loại sơ đồ xác thực chung:

  • Sơ đồ xác thực cơ bản, trong đó tên người dùng và mật khẩu được gửi trong văn bản rõ ràng đến máy chủ.
  • Đề án phản hồi thử thách, cho phép định dạng phản hồi thử thách.

Đề án đáp ứng thách thức cho phép xác thực an toàn hơn. Nếu một yêu cầu yêu cầu xác thực bằng cách sử dụng sơ đồ phản hồi thử thách, mã trạng thái thích hợp và các tiêu đề Xác thực được trả về cho máy khách. Sau đó, khách hàng phải gửi lại yêu cầu với một cuộc đàm phán. Máy chủ sẽ trả lại mã trạng thái phù hợp với một thách thức và sau đó khách hàng sẽ yêu cầu gửi lại yêu cầu với phản hồi thích hợp để nhận dịch vụ được yêu cầu.

Nếu proxy bạn đang sử dụng sử dụng sơ đồ xác thực cơ bản , những gì được lưu trong móc khóa của bạn sẽ đủ để xác thực bạn. Nếu một sơ đồ phản hồi thử thách đang được sử dụng, rất có thể bạn sẽ phải cung cấp thêm thông tin - trong trường hợp này - nhập lại mật khẩu của bạn - để xác thực; và đây là những gì bạn đang thấy.

Quy trình xác thực NTLM

Điều này là nhiều hơn so với chỉ lưu trữ thông tin đăng nhập. Máy khách phải tạo phản hồi dựa trên yêu cầu được tạo từ máy chủ. Sau đây là một mô tả rất ngắn gọn về quy trình xác thực từ phối cảnh máy khách / máy chủ theo tài liệu của Microsoft

  • Máy khách sẽ gửi tên người dùng đến máy chủ (bằng văn bản gốc).
  • Máy chủ tạo ra một số ngẫu nhiên 16 byte, được gọi là thử thách hoặc không mở và gửi nó đến máy khách.
  • Máy khách mã hóa thử thách này bằng hàm băm của mật khẩu người dùng và trả kết quả về máy chủ. Điều này được gọi là phản ứng.
  • Máy chủ gửi ba mục sau đến bộ điều khiển miền:

    • Tên tài khoản
    • Thử thách gửi đến khách hàng
    • Phản hồi nhận được từ khách hàng
  • DC xác nhận thách thức và phản ứng được mã hóa. Nếu được chứng thực, quyền truy cập được cấp.

Bước thứ ba ở trên, yêu cầu khách hàng băm một số ngẫu nhiên mà nó nhận được từ máy chủ. Điều này vốn có nghĩa là không có gì được lưu trữ trên máy khách macOS của bạn.

Tối thiểu, bạn cần tham gia miền Active Directory. Điều này có nghĩa là bạn cần hỗ trợ Kerberos được kích hoạt và cấu hình đúng cho tổ chức cụ thể của bạn.

Có một cụm từ chính trong tài liệu "Xử lý xác thực" mà tôi đã liên kết ở trên:

Nếu cần xác thực, nên sử dụng cờ INTERNET_FLAG_KEEP_CONNECTION trong lệnh gọi tới httpOpenRequest. Cờ INTERNET_FLAG_KEEP_CONNECTION được yêu cầu cho NTLM và các loại xác thực khác để duy trì kết nối trong khi hoàn tất quy trình xác thực. Nếu kết nối không được duy trì, quá trình xác thực phải được khởi động lại với proxy hoặc máy chủ.

(Nhấn mạnh của tôi)

Dựa trên các triệu chứng của bạn được trình bày, có vẻ như tổ chức của bạn yêu cầu xác thực với proxy; tên người dùng / mật khẩu của bạn là hợp lệ, nhưng nó vẫn yêu cầu xác thực. Có thể là do bạn đang mất trạng thái kết nối và phải làm lại từ đầu. Mà nhấn mạnh thêm điểm ....

Để giải quyết vấn đề này, bạn sẽ cần liên hệ với quản trị viên mạng của mình để hỗ trợ bạn về các vấn đề xác thực.


1
Làm thế nào tôi có thể tìm ra chương trình xác thực nào đang được sử dụng? Có một tiêu đề HTTP mà tôi có thể nhìn vào khi một ứng dụng đang nói chuyện với proxy không? Tôi có thể làm điều này trong bảng điều khiển mạng của Chrome hay tôi phải sử dụng thứ gì đó như Wireshark?
nwinkler

Nhiều khả năng, bạn sẽ cần sử dụng Wireshark. Hãy nhớ rằng, nó cũng có thể được lưu lượng mã hóa.
Allan

1
Tôi đã thêm một số thông tin từ những gì tôi đã thấy trong Wireshark vào câu hỏi.
nwinkler

1
Cảm ơn vì đã thêm thông tin về NTLM vào câu trả lời của bạn. Tôi hiểu NTLM và từ những gì tôi có thể thấy từ đầu ra của Wireshark, nó đang hoạt động - thử thách / phản hồi mà bạn mô tả đang được thực hiện, ví dụ như đối với các dịch vụ Dropbox hoặc iCloud. Tôi vẫn không chắc chắn dịch vụ nào đang xuất hiện các hộp thoại xác thực proxy lặp đi lặp lại. Câu trả lời của bạn chứa rất nhiều thông tin, nhưng không thực sự giúp tôi cho đến nay.
nwinkler

1
Connection Established! = Access Granted. Những người có thể xác nhận rằng điều này đang hoạt động là (các) quản trị viên hệ thống / mạng của bạn trong bộ phận CNTT của bạn.
Allan

1

Lưu ý: kiểm tra nút radio để cho phép tất cả ứng dụng sử dụng proxy

bằng quyền tác giả của cài đặt sửa đổi ứng dụng chuỗi khóa


-2

Chạy lệnh sau từ Console.app:

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

Bạn sẽ được hỏi về truy cập móc khóa. Đồng ý thêm bản ghi vào móc khóa và bạn sẽ có quyền truy cập mà không cần mật khẩu mọi lúc khi móc khóa của bạn mở.


1
Tôi đã thử điều này, nhưng nó không khắc phục được vấn đề. Lệnh đặt cấu hình proxy cho người dùng của tôi và lưu xác thực vào loginmóc khóa của người dùng . Ngay sau khi tôi làm điều này, hộp thoại xác thực proxy mà tôi hiển thị ở trên bật lên một lần nữa. Sửa chữa đề xuất của bạn không khắc phục vấn đề cho tôi.
nwinkler

vì keychain đăng nhập của bạn bị khóa hoặc bạn có số liệu tăng gấp đôi
Siarhei Karatkevich

1
Móc khóa đăng nhập được mở khóa, tôi đã kiểm tra lại. Tuy nhiên, điểm về hồ sơ kép có thể hợp lệ. Tôi đã xóa tất cả các bản ghi để xác thực proxy mà tôi tìm thấy trong khóa đăng nhập và khóa hệ thống, nhưng ngay sau khi tôi nhập mật khẩu một lần trong hộp thoại trong bài đăng gốc của mình, tôi kết thúc với hai bản ghi trong khóa đăng nhập, cả hai đều chính xác cùng một dữ liệu. Nếu tôi xóa một cái, nó sẽ quay trở lại khi tôi nhập lại thông tin đăng nhập của mình.
nwinkler

1
Tôi đã thử securitylệnh bạn liệt kê - nó không tìm thấy gì. Nó sẽ thực hiện nếu tôi thay đổi find-generic-passwordlệnh thành find-internet-password, vì Keychain liệt kê mục nhập dưới dạng "mật khẩu Internet".
nwinkler

1
URL proxy được thiết lập là xxx.xxx.xxx.xxx , đó là cách nó hoạt động, ví dụ như từ dòng lệnh. Tôi sẽ cố gắng nắm bắt một cái gì đó bằng Wireshark.
nwinkler
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.