Bagaimana cara menyimpan kredensial proksi pada macOS sehingga digunakan oleh layanan sistem?

14

Saya menggunakan macOS Sierra 10.12.6 di belakang proksi NTLM perusahaan. Browser saya dan aplikasi lain menggunakan pengaturan proxy sistem, di mana saya telah menyimpan nama pengguna dan kata sandi saya untuk diautentikasi dengan proxy. Ini bekerja dengan baik.

Ada masalah terus-menerus dengan layanan sistem yang mencoba mengakses informasi di internet dan tidak melihat memiliki akses ke kredensial proxy di akun pengguna saya. Saya melihat sembulan berikut setiap beberapa menit, dan apa pun yang saya lakukan (memperbarui kredensial saya di System Preferences, atau menekan "Not Now"), sembulan terus muncul lagi dan lagi:

Diperlukan Otentikasi Proksi

Teks dalam sembulan berbunyi:

Diperlukan Otentikasi Proksi

Masukkan kata sandi untuk proxy HTTP http://xxx.xxx.xxx.xxx:yyyy di System Preferences.

Apa yang bisa saya lakukan untuk menghentikan munculan ini?

Hal-hal yang saya coba sejauh ini:

  • Diperbarui kredensial saya di Preferensi Sistem ( Jaringan> Lanjutan> Proksi )
  • Menyalin entri kredensial dari gantungan kunci masuk saya ke gantungan kunci Sistem , karena saya membaca rekomendasi untuk itu dalam posting blog atau pertanyaan forum.

Tidak ada yang berhasil, saya mendapatkan popup ini setiap beberapa menit, dan tampaknya tidak ada pola ketika itu muncul.

Pembaruan 1:

Segera setelah saya memasukkan kredensial saya dengan mengklik tombol System Preferences dalam dialog di atas (yang dapat saya paksa dengan misalnya membuka Safari dan mulai mengetikkan URL di kotak lokasi), dua catatan dibuat di gantungan kunci login , keduanya dengan identik kandungan:

@ xxx.xxx.xxx.xxx (nama pengguna) Kata Sandi Internet Hari ini, 09:10 - login

Kedua catatan terlihat identik, dengan nama dan atribut yang sama. Keduanya menunjukkan bahwa aplikasi yang meminta ini adalah AuthBrokerAgent:

Kontrol Akses Gantungan Kunci

Pembaruan 2:

Saya juga sudah mencoba saran ini: https://discussions.apple.com/message/23848961#message23848961 , menyalin entri otentikasi dari keychain login ke keychain sistem dan kemudian me-reboot, tetapi itu tidak memperbaikinya. Bahkan, kotak "Diperlukan Otentikasi Proksi yang Diperlukan" muncul lagi saat mengetik ini ...

Pembaruan 3:

Saya telah menggunakan Wireshark untuk melihat lalu lintas antara mesin saya dan proksi kami:

  • Proxy kembali dengan a 407 Proxy Authentication Requireddan Proxy-Authenticate: NTLM, yang sesuai dengan harapan saya, karena proksi kami menggunakan NTLM.
  • Beberapa contoh yang saya lihat di lalu lintas (mis. ICloud) kemudian mengirim kembali NTLMSSP_NEGOTIATErespons.
  • Proxy kembali dengan NTLMSSP_CHALLENGEpermintaan
  • Layanan merespons dengan NTLMSSP_AUTHdan nama pengguna saya, yang pasti didapat dari suatu tempat.
  • Proxy akhirnya merespons dengan a 200 Connection established

Bagi saya, ini menunjukkan bahwa secara umum otentikasi proksi berfungsi dengan baik, jika sistem dapat memperoleh nama pengguna dan proksi dari suatu tempat. Pertanyaannya tetap bagaimana / di mana menyimpan nama pengguna / kata sandi sehingga semua layanan sistem dapat menemukannya. Beberapa layanan sistem (saya berasumsi) tidak memiliki sarana untuk menemukan kredensial proxy tempat saya menyimpannya.

nwinkler
sumber
Pertanyaan terkait: apple.stackexchange.com/questions/117556/...
nwinkler
Proksi apa yang Anda gunakan? Saya ingat (dari kehidupan masa lalu yang berbeda) bahwa proxy yang kami gunakan memiliki kemampuan untuk melarang penyimpanan kata sandi sehingga memaksa pengguna untuk mengotentikasi setiap waktu. Ini bisa jadi masalahnya.
Allan
1
Apakah Anda pernah mengatasi masalah ini karena saya menemui masalah yang sama sesekali dan saya terhubung ke solusi Citrix VPN. Setelah pop-up muncul itu hanya terjadi berulang-ulang dan akhirnya akun AD saya akan terkunci. Saya belum menemukan solusi yang menyelesaikan ini. Karena saya menggunakan MacBook Pro dan sebagian besar Departemen TI berbasis Windows saya tidak dapat menerima informasi yang berguna dari TI. Setelah saya terhubung ke VPN, saya mengerjakan aplikasi Oracle yang berjalan di server Solaris SPARC. Saya sangat berharap Anda menemukan cara untuk menyelesaikan masalah ini. stan
Stan Repetta
Maaf, belum menemukan solusi untuk ini. Yang akhirnya saya lakukan adalah saya memindahkan jendela yang meminta kredensial proxy ke sisi layar tanpa menekan salah satu tombol - yang membuatnya paling tidak diam ...
nwinkler

Jawaban:

9

Ini kemungkinan besar merupakan perilaku yang diharapkan jika administrator sistem / jaringan Anda telah mengonfigurasi otentikasi kekuatan proxy yang memerlukan lebih dari sekadar skema otentikasi dasar.

Dari halaman Microsoft, Menangani Otentikasi di bawah bagian Tentang Otentikasi HTTP :

Ada dua jenis umum skema otentikasi:

  • Skema otentikasi dasar, di mana nama pengguna dan kata sandi dikirim dalam bentuk teks ke server.
  • Skema respons-tantangan, yang memungkinkan format respons-tantangan.

Skema respons-tantangan memungkinkan otentikasi yang lebih aman. Jika permintaan memerlukan otentikasi menggunakan skema respons-tantangan, kode status yang sesuai dan header Otentikasi dikembalikan ke klien. Klien kemudian harus mengirim ulang permintaan dengan negosiasi. Server akan mengembalikan kode status yang sesuai dengan tantangan, dan klien kemudian harus mengirim ulang permintaan dengan respons yang tepat untuk mendapatkan layanan yang diminta.

Jika proxy yang Anda gunakan menggunakan skema otentikasi dasar , apa yang disimpan di gantungan kunci Anda akan cukup untuk mengotentikasi Anda. Jika skema respons tantangan sedang digunakan, kemungkinan besar Anda harus memberikan lebih banyak info - dalam hal ini - masukkan kembali kata sandi Anda - untuk mengautentikasi; dan ini yang kamu lihat.

Proses Otentikasi NTLM

Ini lebih dari sekedar menyimpan kredensial. Klien harus menghasilkan respons berdasarkan permintaan yang dihasilkan dari server. Berikut ini adalah deskripsi yang sangat singkat tentang proses otentikasi dari perspektif klien / server per dokumentasi Microsoft

  • Klien mengirim nama pengguna ke server (dalam plaintext).
  • Server menghasilkan nomor acak 16-byte, disebut tantangan atau nonce, dan mengirimkannya ke klien.
  • Klien mengenkripsi tantangan ini dengan hash kata sandi pengguna dan mengembalikan hasilnya ke server. Ini disebut respons.
  • Server mengirimkan tiga item berikut ke pengontrol domain:

    • Nama pengguna
    • Tantangan dikirim ke klien
    • Tanggapan diterima dari klien
  • DC memvalidasi tantangan dan respons terenkripsi. Jika diautentikasi, akses diberikan.

Langkah ketiga di atas, mengharuskan klien untuk hash nomor acak yang didapatnya dari server. Ini secara inheren berarti tidak ada yang disimpan di klien macOS Anda.

Paling tidak, Anda harus bergabung dengan domain Direktori Aktif. Ini berarti Anda membutuhkan dukungan Kerberos yang diaktifkan dan dikonfigurasikan dengan benar untuk organisasi spesifik Anda.

Ada ungkapan kunci dalam dokumen "Menangani Otentikasi" yang saya tautkan di atas:

Jika otentikasi diperlukan, bendera INTERNET_FLAG_KEEP_CONNECTION harus digunakan dalam panggilan ke HttpOpenRequest. Bendera INTERNET_FLAG_KEEP_CONNECTION diperlukan untuk NTLM dan jenis otentikasi lainnya untuk menjaga koneksi saat menyelesaikan proses otentikasi. Jika koneksi tidak dipertahankan, proses otentikasi harus dimulai kembali dengan proxy atau server.

(Penekanan milikku)

Berdasarkan gejala yang disajikan, tampaknya organisasi Anda memerlukan otentikasi ke proxy; nama pengguna / kata sandi Anda valid, tetapi ia terus meminta otentikasi. Mungkin karena Anda kehilangan status koneksi dan harus mengulanginya lagi. Yang selanjutnya menekankan poin ....

Untuk mengatasi masalah ini, Anda harus menghubungi admin jaringan Anda untuk membantu Anda dengan masalah otentikasi.

Allan
sumber
1
Bagaimana saya bisa mengetahui skema otentikasi yang sedang digunakan? Apakah ada tajuk HTTP yang bisa saya lihat ketika aplikasi sedang berbicara dengan proxy? Dapatkah saya melakukan ini di konsol jaringan Chrome, atau apakah saya harus menggunakan sesuatu seperti Wireshark?
nwinkler
Kemungkinan besar, Anda harus menggunakan Wireshark. Perlu diingat, itu mungkin juga lalu lintas terenkripsi.
Allan
1
Saya telah menambahkan beberapa info dari apa yang saya lihat di Wireshark ke pertanyaan.
nwinkler
1
Terima kasih telah menambahkan lebih banyak info tentang NTLM ke jawaban Anda. Saya mengerti NTLM, dan dari apa yang saya lihat dari keluaran Wireshark, ia berfungsi - tantangan / respons yang Anda jelaskan sedang dilakukan, misalnya untuk layanan Dropbox atau iCloud. Saya masih tidak yakin layanan mana yang memunculkan dialog kredensial proxy yang berulang. Jawaban Anda mengandung banyak info, tetapi sejauh ini tidak membantu saya.
nwinkler
1
Connection Established! = Access Granted. Orang-orang yang dapat mengonfirmasi bahwa ini berfungsi adalah admin sistem / jaringan Anda di departemen TI Anda.
Allan
1

Catatan: centang tombol radio untuk memungkinkan semua aplikasi menggunakan proxy

oleh authention dari pengaturan memodifikasi aplikasi gantungan kunci

Rahul Kumar
sumber
-2

Jalankan perintah berikut dari Console.app:

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

Anda akan ditanya tentang akses gantungan kunci. Setuju untuk menambahkan catatan ke gantungan kunci dan Anda akan memiliki akses tanpa kata sandi sepanjang waktu ketika gantungan kunci Anda terbuka.

Siarhei Karatkevich
sumber
1
Saya sudah mencoba ini, tetapi tidak memperbaiki masalah. Perintah ini mengatur konfigurasi proxy untuk pengguna saya, dan menyimpan otentikasi di logingantungan kunci pengguna saya . Tepat setelah saya melakukan ini, dialog otentikasi proksi yang saya tampilkan di atas muncul lagi. Perbaikan yang Anda sarankan tidak memperbaiki masalah bagi saya.
nwinkler
karena gantungan kunci login Anda terkunci atau Anda memiliki catatan ganda
Siarhei Karatkevich
1
Keychain masuk tidak dikunci, saya memeriksa ulang itu. Namun, poin tentang double record mungkin valid. Saya menghapus semua catatan untuk otentikasi proksi yang saya temukan di login dan gantungan kunci sistem, tetapi segera setelah saya mengetik kata sandi saya sekali dalam dialog di posting asli saya, saya berakhir dengan dua catatan di gantungan kunci login, keduanya dengan tepat data yang sama. Jika saya menghapus satu, itu kembali ketika saya memasukkan kredensial saya lagi.
nwinkler
1
Saya mencoba securityperintah yang Anda daftarkan - tidak menemukan apa pun. Itu terjadi jika saya mengubah find-generic-passwordperintah find-internet-password, karena Keychain mencantumkan entri sebagai jenis "kata sandi Internet".
nwinkler
1
URL proxy diatur sebagai xxx.xxx.xxx.xxx , begitulah cara kerjanya misalnya dari baris perintah. Saya akan mencoba menangkap sesuatu menggunakan Wireshark.
nwinkler