Keycloak – это Identity Provider или IdP, который можно установить на собственном сервере.
Для того, чтобы пользователи могли входить в Mac с учетной записью из Keycloak, рассмотрим базовую (минимальную) настройку этой связки.
Подразумевается, что у нас уже есть установленный Keycloak, например, на виртуальном сервере, а также Jamf Connect на компьютере Mac или виртуальной машине. Для Keycloak потребуется свой домен и валидный сертификат.
Прежде всего, нам необходимо создать Client в Keycloak:
В качестве Client Type указываем OpenID Connect, затем заполняем строку Client ID значением jamf_connect:
Далее, в пункте Capability config, включаем Client authentication, остальное можно оставить по-умолчанию:
Далее, в пункте Login settings, нам необходимо указать, согласно документации Jamf, в качестве Valid redirect URIs следующее значение: https://127.0.0.1/jamfconnect.
А в поле Web origins указываем /*, как на скриншоте ниже:
Нажимаем Save, после чего у нас сразу откроется окно Client details, в котором надо перейти на вкладку Credentials и скопировать Client Secret.
На этом создание клиента окончено, в рамках демонстрации больше ничего настраивать на потребуется.
Переходим к созданию пользователя и включению для него двухфакторной аутентификации:
При создании пользователя сразу указываем ему Required user actions: Configure OTP. В таком случае, при первом входе с этими реквизитами, Keycloak не пропустит дальше, пока пользователь не настроит себе OTP. Это можно сделать через Google Authenticator и подобные программы.
Далее указываем имя и нажимаем Create:
После создания пользователя, сразу переходим на вкладку Credentials и задаем ему пароль:
На этом настройка Keycloak завершена, переходим к настройке Jamf Connect.
Предполагается, что Jamf Connect и агент установлены, поэтому открываем Jamf Connect Configuration:
Для минимального запуска потребуется заполнить всего несколько полей:
- Identity provider – Custom;
- OIDC client ID – jamf-connect (должно совпадать с Client в Keycloak);
- Client secret – собственно, значение из поля Client secret на вкладке Credentials в Keycloak;
- Discovery URL – указываем ссылку, которую можно взять из Keycloak в пункте Realm settings > Endpoints -> OpenID Endpoint Configuration;
- проверяем, что на вкладке Login установлена галочка напротив Create Jamf Connect keychain.
Теперь, когда минимальные настройки выполнены, можно протестировать подключение.
Для этого нажимаем на кнопку Test и выбираем OIDC. У нас должно открыться превью, где мы увидим окно входа Keycloak. Вводим реквизиты нашего тестового пользователя и видим окно настройки двухфакторной аутентификации.
Настраиваем ее через Google Authenticator (или аналог), вводим код, и видим сообщение “You got tokens!”.
На этом настройка связки завершена, приступаем к последнему шагу: сохраняем профиль в Jamf Connect Configuration и устанавливаем его в систему, после чего выполняем следующую команду в терминале: sudo authchanger -JamfConnect.
Теперь при загрузке macOS мы будем видеть окно входа Keycloak, а при вводе пользовательских данных появится запрос кода OTP. Если пользователь входит впервые – он увидит окно настройки OTP и не попадет в систему, пока не настроит его.
При успешном входе, в macOS создастся локальная учетная запись и именем и паролем пользователя как в Keycloak.