Пишете скрипт, който изпълнява scutil --nc start с името на връзката, той работи на вашия Mac и се проваля на всяка новоинсталирана машина в офиса. Скриптът не е счупен. От него се иска нещо, което никога не е могъл да направи: стартирането на съществуваща връзка не е същата операция като създаването на нова.

Осигуряването и управлението на сесията са две задачи с двама собственици и работен процес, който приема друго, ще мине всеки тест на машината, където е написан.

С какво всъщност разговаря командата за стартиране

Командата за управление на сесия се обръща към конфигурация, която вече съществува и вече е одобрена. Тя иска от системата да вдигне тази именувана връзка, използвайки настройките на сървъра, препратките към самоличност и политиката, запазени по-рано. Ако те никога не са били инсталирани, няма какво да се стартира.

Затова отказът се появява на нов хардуер, а не на лаптопа на администратора. Лаптопът е бил осигурен преди месеци от човек, който оттогава е забравил, че го е правил. Мислете за командата за стартиране като за звънец, който някой е окабелил през миналото тримесечие. Натискането му не е същото като полагането на окабеляването.

Трима собственици на VPN конфигурация

Профилът, управляван от организацията, идва от управлението на устройства. Профилът носи адресите на сървъра, схемата за удостоверяване и политиката, която организацията изисква, а VPN администраторът е човекът, който ги предоставя. Скриптът не бива да възстановява тези настройки от показвано име, намерено в списък.

Вградената лична VPN конфигурация се създава чрез Network Extension API на Apple, който покрива вградените протоколи IPsec и IKEv2. Това е интерфейс на приложение със стъпка за запазване и одобрение от потребителя, а не shell команда, която тихо създава всякакъв тип тунел, който доставчикът предлага.

Клиентът на трета страна е трети случай със свой формат за импортиране, свой инструмент за управление и често свой привилегирован помощник. Сесията му се притежава от процеса на този доставчик. Намирането на системна услуга с подобно име не е доказателство, че системна команда управлява тунела, и такова допускане създава скриптове, които изглеждат работещи, докато доставчикът не обнови клиента.

Вграденото осигуряване има запазване и одобрение

Моделът на Apple е зареждане, промяна, запазване. Приложението зарежда съществуващите предпочитания преди първото си запазване след стартиране, променя конфигурацията и след това я запазва. Запазването съобщава грешка, когато не може да се запише, а пренебрегването на този резултат превръща отказ при осигуряването в отказ на връзката три стъпки по-късно.

Първото запазване също изисква потребителят да одобри приложението. Това е умишлена граница за сигурност и означава, че първото стартиране на нов Mac е интерактивно, дори когато всяко следващо свързване и прекъсване може да бъде автоматизирано. Планирайте първото стартиране като човешка задача с присъстващ човек. Автоматизирайте второто стартиране и следващите и го кажете в ръководството, за да не обещава никой невъзможното. План за внедряване, който обещава напълно безпилотно първо стартиране, обещава нещо, което платформата не предлага.

Apple също препоръчва да се провери съвместимостта на сървъра с конфигурационен профил, преди да се разчита на API. Правенето на тази проверка първо разделя «сървърът няма да приеме този клиент» от «клиентът никога не е запазил настройките», които са различни заявки за различни екипи.

Какво може да предполага една повтаряема команда за стартиране

След осигуряването скриптът може безопасно да насочи към съществуващата връзка през интерфейса на нейния собственик. Подайте му стабилната идентичност на връзката плюс действието, което искате, и нищо друго. Той не бива да чете предполагаем път до предпочитания и не бива да предполага, че името в менюто е уникално в системата.

За вградени връзки именувана заявка за сесия като scutil --nc start е операция по управление. Тя не инсталира настройки на сървъра, не импортира идентификационни данни и не извършва оторизация за първо запазване. Отнасяйте се към нея като към последната стъпка от верига, никога като към цялата верига.

Дръжте тайните извън аргументите на командния ред и извън обичайния диагностичен изход. Какъвто и механизъм за самоличност да е избрало внедряването, на него трябва да разчита командата за стартиране, а парола, поставена в историята на shell, е находка във всеки преглед.

Две проверки за приемане

Първата проверка е осигуряването: вземете новоинсталиран Mac и докажете, че конфигурацията е налице, притежава се от правилния мениджър и е напълно одобрена. Направете това преди тестване на свързаността, защото тест на връзка на неосигурена машина не доказва нищо за скрипта.

Втората проверка е сесията: свържете се, достигнете разрешения ресурс и се прекъснете чисто. Вече всеки отказ има собственик и това е практическата полза от разделянето на двете задачи. Липсващ профил е проблем с доставката, грешка при запазване е проблем с одобрението, отказан вход е проблем с удостоверяването, а изтичане на времето след успешно стартиране е слоят на сесията. Нито един от тях не е «скриптът е счупен».

Подобни статии