Используя авторизацию
По большей части авторизация — получение права выполнить ограниченную работу — очевидно для Вас как разработчик современного приложения. Пользователь входит в систему до запуска Вашего приложения. После того, как пользователь входит в систему, пользователь или имеет право выполнить работу или не делает; когда пользователь не делает, необходимо вывести на экран разумные сообщения об ошибках. Кроме этого, это в основном выходит за рамки Вашей ответственности.
Однако в непоигравших в песочнице приложениях, Ваше приложение может запросить авторизацию выполнить определенные задачи, которые могут потребовать корневых полномочий, таких как загрузка расширения ядра, установка файлов в защищенных каталогах, и т.д. Для этих задач OS X предоставляет Authorization Services API.
Authorization Services реализована демоном Сервера безопасности (см. Сервер безопасности и Агента безопасности в Обзоре безопасности), и созданный поверх BSD. В отличие от BSD, однако, который может управлять доступом на уровне отдельных файлов или программ, Authorization Services позволяет Вам управлять доступом к определенным функциям или данным в приложении. Демон безопасности использует базу данных правил управления для определения прав данного аутентифицируемого пользователя. Authorization Services включает функции, чтобы считать, добавить, отредактировать и удалить элементы базы данных правил управления.
Когда Вы запрашиваете, чтобы Authorization Services разрешила пользователя выполнять определенные действия, Сервер безопасности аутентифицирует пользователя при необходимости. Поскольку взаимодействие с пользователем обрабатывается автоматически для Вас, Ваш код не затронут методом аутентификации в использовании. Например, если в некоторое время в будущем Apple обеспечит пользовательский интерфейс для поддержки новой формы аутентификации, то приложение автоматически получит выгоду от этой новой функции без любых изменений в коде.
Иногда приложение OS X должно выполнить некоторую работу, требующую выполнения с полномочиями пользователя root, например, при установке нового программного обеспечения. Во избежание выполнения целого приложения как root
, в этом случае разработчик создает отдельный инструмент помощника, работающий с полномочиями пользователя root только, пока необходимо.
Остающиеся разделы в этой главе описывают определенные технологии.
Authorization Services
Непоигравшие в песочнице приложения Mac могут авторизация использования получить доступ к файлам и программам. Прежде чем пользователь или служба на OS X могут выполнить программу или получить доступ к данным, это должно быть разрешено сделать так. Авторизация обычно является трехступенчатым процессом:
Аутентифицируйте пользователя или службу. (Этот шаг может быть опущен при особых обстоятельствах, такой как тогда, когда пользователь использует билет Kerberos.)
Определите полномочия пользователя или службы.
Решите, дать ли пользователю или доступу службы к данным или позволить им выполнять программу.
Аутентификация и определение полномочий упрощены Authorization Services. Каждый отдельный процесс, ли Средство поиска или Ваше приложение, должен тогда сделать свое собственное определение того, предоставить ли доступ к данным или кодировать его средства управления. Структура полномочий BSD обеспечивает базовый уровень права доступа. Можно реализовать более сложные или тонкозернистые права доступа на основе пользовательских списков доступа или политики безопасности собственного проекта. Например, можно позволить любому пользователю запустить приложение, но позволить только пользователям, которые являются участниками admin
группа для изменения установок приложения.
Authorization Services может использоваться для реализации такой политики безопасности. Для получения дополнительной информации см. Руководство по программированию Authorization Services C Reference and Authorization Services.
Отображение авторизации UI
SFAuthorizationView
класс в платформе Основы Безопасности реализует представление авторизации в окне. Представление авторизации является текстом значков блокировки и сопутствующим текстом, указывающим, может ли работа быть выполнена (рисунок 2-1). Если блокировка закрывается, когда пользователь щелкает по ней, диалоговое окно авторизации выведено на экран. После того, как пользователь авторизовывается, значок блокировки кажется открытым. Когда пользователь щелкает по открытой блокировке, Authorization Services ограничивает доступ снова и изменяет значок на закрытое состояние.
Документация для Objective C Безопасности API находится в Ссылке Платформы Интерфейса Безопасности.
Узнавать больше
Следующие ресурсы предоставляют дополнительную информацию об авторизации в OS X:
Для получения информации о OS X Authorization Services см. Руководство по программированию Authorization Services C Reference and Authorization Services.
TN2095 Технического примечания, Авторизация для Всех, показывает, как использовать Authorization Services.
Ссылка Платформы Интерфейса безопасности описывает интерфейс Objective-C к Authorization Services и предоставляет информацию о множестве связанных с безопасностью элементов пользовательского интерфейса.