SFAuthorization
SFAuthorization
класс позволяет Вам ограничивать доступ пользователя к определенным функциям в Вашем приложении Mac или демоне.
SFAuthorization
класс является интерфейсом Objective-C для некоторых функций в Authorization Services API. Можно использовать authorizationRef
метод для получения ссылки авторизации, привыкшей в других вызовах к функциям Authorization Services. Authorization Services API документируется в Ссылку Authorization Services C.
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSObjectProtocol
-
Печатаемый
-
NSCoding
-
NSObject
Оператор импорта
Swift
import SecurityFoundation
Objective C
@import SecurityFoundation;
Доступность
Доступный в OS X v10.3 и позже
-
Возвращает объект авторизации, инициализированный со стандартной средой, флагами и правами.
Объявление
Swift
class func authorization() -> AnyObject!
Objective C
+ (id)authorization
Возвращаемое значение
Объект авторизации.
Оператор импорта
Objective C
@import SecurityFoundation;
Swift
import SecurityFoundation
Доступность
Доступный в OS X v10.3 и позже.
-
Возвращает объект авторизации, инициализированный с указанными флагами, правами и средой.
Объявление
Swift
class func authorizationWithFlags(_
flags
: AuthorizationFlags, rightsrights
: UnsafePointer<AuthorizationRights>, environmentenvironment
: UnsafePointer<AuthorizationEnvironment>) -> AnyObject!Objective C
+ (id)authorizationWithFlags:(AuthorizationFlags)
flags
rights:(const AuthorizationRights *)rights
environment:(const AuthorizationEnvironment *)environment
Параметры
flags
Немного маски для указания опций авторизации. Используйте следующие наборы опции:
Передайте константу
kAuthorizationFlagDefaults
если никакие опции не необходимы.Укажите
kAuthorizationFlagExtendRights
маска для запроса прав. Можно также указатьkAuthorizationFlagInteractionAllowed
маска для разрешения взаимодействия с пользователем.Укажите
kAuthorizationFlagPartialRights
иkAuthorizationFlagExtendRights
маски для запроса частичных прав. Можно также указатьkAuthorizationFlagInteractionAllowed
маска для разрешения взаимодействия с пользователем.Укажите
kAuthorizationFlagPreAuthorize
иkAuthorizationFlagExtendRights
маски, чтобы предварительно авторизовать права.Укажите
kAuthorizationFlagDestroyRights
маска, чтобы препятствовать тому, чтобы Концепция безопасности сохранила права, полученные во время этого вызова.
rights
Указатель на ряд прав авторизации Вы создаете. Передача
NULL
если приложение не требует никаких прав в это время.environment
Данные, используемые при авторизации или предварительной авторизации прав. В OS X v10.3 и позже, можно передать значок или запросить данные использоваться в поле диалога аутентификации. Возможные значения для этого параметра перечислены в
Security.framework/Headers/AuthorizationTags.h
. Данные, переданные в этом параметре, не хранятся в ссылке авторизации; это используется только во время авторизации. Если Вы не передаете данных в этом параметре, передаете константуkAuthorizationEmptyEnvironment
.Возвращаемое значение
Объект авторизации.
Обсуждение
Обычно, такая инициализация не требуется, поскольку Вы передаете во флагах, правах и данных о состоянии окружающей среды, когда Вы запрашиваете авторизацию.
Оператор импорта
Objective C
@import SecurityFoundation;
Swift
import SecurityFoundation
Доступность
Доступный в OS X v10.3 и позже.
См. также
-
Инициализирует объект авторизации со стандартной средой, флагами и правами.
Объявление
Swift
init!()
Objective C
- (id)init
Оператор импорта
Objective C
@import SecurityFoundation;
Swift
import SecurityFoundation
Доступность
Доступный в OS X v10.5 и позже.
-
Инициализирует объект авторизации с указанными флагами, правами и средой.
Объявление
Swift
init!(flags
flags
: AuthorizationFlags, rightsrights
: UnsafePointer<AuthorizationRights>, environmentenvironment
: UnsafePointer<AuthorizationEnvironment>)Objective C
- (id)initWithFlags:(AuthorizationFlags)
flags
rights:(const AuthorizationRights *)rights
environment:(const AuthorizationEnvironment *)environment
Параметры
flags
Немного маски для указания опций авторизации. Используйте следующие наборы опции:
Передайте константу
kAuthorizationFlagDefaults
если никакие опции не необходимы.Укажите
kAuthorizationFlagExtendRights
маска для запроса прав. Можно также указатьkAuthorizationFlagInteractionAllowed
маска для разрешения взаимодействия с пользователем.Укажите
kAuthorizationFlagPartialRights
иkAuthorizationFlagExtendRights
маски для запроса частичных прав. Можно также указатьkAuthorizationFlagInteractionAllowed
маска для разрешения взаимодействия с пользователем.Укажите
kAuthorizationFlagPreAuthorize
иkAuthorizationFlagExtendRights
маски, чтобы предварительно авторизовать права.Укажите
kAuthorizationFlagDestroyRights
маска, чтобы препятствовать тому, чтобы Концепция безопасности сохранила права, полученные во время этого вызова.
rights
Указатель на ряд прав авторизации Вы создаете. Передача
NULL
если приложение не требует никаких прав в это время.environment
Данные, используемые при авторизации или предварительной авторизации прав. В OS X v10.3 и позже, можно передать значок или запросить данные использоваться в поле диалога аутентификации. Возможные значения для этого параметра перечислены в
Security/AuthorizationTags.h
. Если Вы не передаете данных в этом параметре, передаете константуkAuthorizationEmptyEnvironment
.Возвращаемое значение
Объект авторизации.
Обсуждение
Можно использовать этот метод для инициализации объекта авторизации. Обычно, такая инициализация не требуется, поскольку Вы передаете во флагах, правах и данных о состоянии окружающей среды, когда Вы запрашиваете авторизацию.
Оператор импорта
Objective C
@import SecurityFoundation;
Swift
import SecurityFoundation
Доступность
Доступный в OS X v10.3 и позже.
-
Возвращает ссылку авторизации для этого объекта.
Объявление
Swift
func authorizationRef() -> AuthorizationRef
Objective C
- (AuthorizationRef)authorizationRef
Возвращаемое значение
Ссылка авторизации.
Обсуждение
Можно использовать ссылку авторизации в вызовах к функциям Authorization Services.
Поскольку дополнительная информация видит Ссылку Authorization Services C.
Оператор импорта
Objective C
@import SecurityFoundation;
Swift
import SecurityFoundation
Доступность
Доступный в OS X v10.3 и позже.
-
permitWithRights:flags:environment:authorizedRights: - permitWithRights:flags:environment:authorizedRights:
(OS X v10.5)Авторизовывает и предварительно авторизовывает права получить доступ к привилегированной работе и возвращает предоставленные права.
Оператор осуждения
Использовать
obtainWithRights:flags:environment:authorizedRights:error:
вместо этого.Объявление
Objective C
- (OSStatus)permitWithRights:(const AuthorizationRights *)
rights
flags:(AuthorizationFlags)flags
environment:(const AuthorizationEnvironment *)environment
authorizedRights:(AuthorizationRights *)authorizedRights
Параметры
rights
Указатель на ряд прав авторизации Вы создаете. Передача
NULL
если приложение не требует никаких прав в это время.flags
Немного маски для указания опций авторизации. Используйте следующие наборы опции:
Передайте константу
kAuthorizationFlagDefaults
если никакие опции не необходимы.Укажите
kAuthorizationFlagExtendRights
маска для запроса прав. Можно также указатьkAuthorizationFlagInteractionAllowed
маска для разрешения взаимодействия с пользователем.Укажите
kAuthorizationFlagPartialRights
иkAuthorizationFlagExtendRights
маски для запроса частичных прав. Можно также указатьkAuthorizationFlagInteractionAllowed
маска для разрешения взаимодействия с пользователем.Укажите
kAuthorizationFlagPreAuthorize
иkAuthorizationFlagExtendRights
маски, чтобы предварительно авторизовать права.Укажите
kAuthorizationFlagDestroyRights
маска, чтобы препятствовать тому, чтобы Концепция безопасности сохранила права, полученные во время этого вызова.
environment
Данные, используемые при авторизации или предварительной авторизации прав. В OS X v10.3 и позже, можно передать значок или запросить данные использоваться в поле диалога аутентификации. Возможные значения для этого параметра перечислены в
Security/AuthorizationTags.h
. Если Вы не передаете данных в этом параметре, передаете константуkAuthorizationEmptyEnvironment
.authorizedRights
Указатель на недавно выделенный
AuthorizationRights
структура. По возврату эта структура содержит права, предоставленные Концепцией безопасности. Если Вы не запрашиваете эту информацию, передачуNULL
. Если Вы указываетеkAuthorizationFlagPreAuthorize
маска вflags
параметр, метод возвращает все требуемые права, включая не предоставленных, но флаги прав, которые не могли быть предварительно авторизованы, включаютkAuthorizationFlagCanNotPreAuthorize
бит.Освободите память, связанную с этим набором прав путем вызывания функции Authorization Services
AuthorizationFreeItemSet
.Обсуждение
Существует три главных причины использовать этот метод. Первая причина состоит в том, чтобы предварительно авторизовать права путем указания
kAuthorizationFlagPreAuthorize
,kAuthorizationFlagInteractionAllowed
, иkAuthorizationFlagExtendRights
маски как опции авторизации. Когда право имеет нулевой тайм-аут, предварительная авторизация является самой полезной. Например, можно предварительно авторизовать в приложении и если оно успешно выполняется, вызовите инструмент помощника и запросите авторизацию. Если Концепция безопасности не может позже авторизовать указанные права, это устраняет вызов инструмента помощника.Вторая причина использовать этот метод состоит в том, чтобы авторизовать права прежде, чем выполнить привилегированную работу путем указания
kAuthorizationFlagInteractionAllowed
, иkAuthorizationFlagExtendRights
маски как опции авторизации.Третья причина использовать этот метод состоит в том, чтобы авторизовать частичные права. Путем указания
kAuthorizationFlagPartialRights
,kAuthorizationFlagInteractionAllowed
, иkAuthorizationFlagExtendRights
маски как опции авторизации, Концепция безопасности предоставляет все права, которые она может авторизовать. По возврату авторизованный набор содержит все права.Если Вы не указываете
kAuthorizationFlagPartialRights
маска и Концепция безопасности отклоняют по крайней мере одно право, тогда состояние этого метода по возвратуerrAuthorizationDenied
.Если Вы не указываете
kAuthorizationFlagInteractionAllowed
маска и Концепция безопасности требуют взаимодействия с пользователем, тогда состояние этого метода по возвратуerrAuthorizationInteractionNotAllowed
.Если Вы указываете
kAuthorizationFlagInteractionAllowed
маска и пользователь отменяют процесс аутентификации, тогда состояние этого метода по возвратуerrAuthorizationCanceled
.Специальные замечания
authorizedRights
параметр не поддерживается в OS X v10.3; используйте функцию Authorization ServicesAuthorizationCopyRights
вместо этого. В OS X v10.3 существует ошибка в подписи в заголовочном файле для этого параметра. Если Вы передаете этот параметр как (AuthorizationRights **)authorizedRights
, как показано в этом документе, это работает, как описано.Оператор импорта
Objective C
@import SecurityFoundation;
Доступность
Доступный в OS X v10.0 и позже.
Осуждаемый в OS X v10.5.
-
obtainWithRights (_: flags:environment:authorizedRights:error:) - obtainWithRights:flags:environment:authorizedRights:error:
Авторизовывает и предварительно авторизовывает права получить доступ к привилегированной работе и возвращает предоставленные права.
Объявление
Swift
func obtainWithRights(_
rights
: UnsafePointer<AuthorizationRights>, flagsflags
: AuthorizationFlags, environmentenvironment
: UnsafePointer<AuthorizationEnvironment>, authorizedRightsauthorizedRights
: UnsafeMutablePointer<UnsafeMutablePointer<AuthorizationRights>>, errorerror
: NSErrorPointer) -> BoolObjective C
- (BOOL)obtainWithRights:(const AuthorizationRights *)
rights
flags:(AuthorizationFlags)flags
environment:(const AuthorizationEnvironment *)environment
authorizedRights:(AuthorizationRights **)authorizedRights
error:(NSError **)error
Параметры
rights
Указатель на ряд прав авторизации Вы создаете. Передача
NULL
если приложение не требует никаких прав в это время.flags
Немного маски для указания опций авторизации. Используйте следующие наборы опции:
Передайте константу
kAuthorizationFlagDefaults
если никакие опции не необходимы.Укажите
kAuthorizationFlagExtendRights
маска для запроса прав. Можно также указатьkAuthorizationFlagInteractionAllowed
маска для разрешения взаимодействия с пользователем.Укажите
kAuthorizationFlagPartialRights
иkAuthorizationFlagExtendRights
маски для запроса частичных прав. Можно также указатьkAuthorizationFlagInteractionAllowed
маска для разрешения взаимодействия с пользователем.Укажите
kAuthorizationFlagPreAuthorize
иkAuthorizationFlagExtendRights
маски, чтобы предварительно авторизовать права.Укажите
kAuthorizationFlagDestroyRights
маска, чтобы препятствовать тому, чтобы Концепция безопасности сохранила права, полученные во время этого вызова.
environment
Данные, используемые при авторизации или предварительной авторизации прав. В OS X v10.3 и позже, можно передать значок или запросить данные использоваться в поле диалога аутентификации. Возможные значения для этого параметра перечислены в
Security/AuthorizationTags.h
. Если Вы не передаете данных в этом параметре, передаете константуkAuthorizationEmptyEnvironment
.authorizedRights
Указатель на недавно выделенный
AuthorizationRights
структура. По возврату эта структура содержит права, предоставленные Концепцией безопасности. Если Вы не запрашиваете эту информацию, передачуNULL
. Если Вы указываетеkAuthorizationFlagPreAuthorize
маска вflags
параметр, метод возвращает все требуемые права, включая не предоставленных, но флаги прав, которые не могли быть предварительно авторизованы, включаютkAuthorizationFlagCanNotPreAuthorize
бит.Освободите память, связанную с этим набором прав путем вызывания функции Authorization Services
AuthorizationFreeItemSet
.error
На завершении, код результата, возвращенный методом. См. “Коды Результата” в Ссылке Authorization Services C.
Возвращаемое значение
YES
true
если работа завершается успешно.Обсуждение
Существует три главных причины использовать этот метод. Первая причина состоит в том, чтобы предварительно авторизовать права путем указания
kAuthorizationFlagPreAuthorize
,kAuthorizationFlagInteractionAllowed
, иkAuthorizationFlagExtendRights
маски как опции авторизации. Когда право имеет нулевой тайм-аут, предварительная авторизация является самой полезной. Например, можно предварительно авторизовать в приложении и если оно успешно выполняется, вызовите инструмент помощника и запросите авторизацию. Если Концепция безопасности не может позже авторизовать указанные права, это устраняет вызов инструмента помощника.Вторая причина использовать этот метод состоит в том, чтобы авторизовать права прежде, чем выполнить привилегированную работу путем указания
kAuthorizationFlagInteractionAllowed
, иkAuthorizationFlagExtendRights
маски как опции авторизации.Третья причина использовать этот метод состоит в том, чтобы авторизовать частичные права. Путем указания
kAuthorizationFlagPartialRights
,kAuthorizationFlagInteractionAllowed
, иkAuthorizationFlagExtendRights
маски как опции авторизации, Концепция безопасности предоставляет все права, которые она может авторизовать. По возврату авторизованный набор содержит все права.Если Вы не указываете
kAuthorizationFlagPartialRights
маска и Концепция безопасности отклоняют по крайней мере одно право, тогда возвраты методаNO
false
иerror
возвраты параметраerrAuthorizationDenied
.Если Вы не указываете
kAuthorizationFlagInteractionAllowed
маска и Концепция безопасности требуют взаимодействия с пользователем, тогда возвратов методаNO
false
иerror
возвраты параметраerrAuthorizationInteractionNotAllowed
.Если Вы указываете
kAuthorizationFlagInteractionAllowed
маска и пользователь отменяют процесс аутентификации, тогда возвраты методаNO
false
иerror
возвраты параметраerrAuthorizationCanceled
.Оператор импорта
Objective C
@import SecurityFoundation;
Swift
import SecurityFoundation
Доступность
Доступный в OS X v10.5 и позже.
-
permitWithRight:flags: - permitWithRight:flags:
(OS X v10.5)Авторизовывает и предварительно авторизовывает одно определенное право.
Оператор осуждения
Использовать
obtainWithRight:flags:
вместо этого.Объявление
Objective C
- (OSStatus)permitWithRight:(AuthorizationString)
rightName
flags:(AuthorizationFlags)flags
Параметры
rightName
Имя права авторизации.
flags
Немного маски для указания опций авторизации. Посмотрите
permitWithRights:flags:environment:authorizedRights
для подробных данных о возможных флаговых значениях.Обсуждение
Используйте этот метод, чтобы авторизовать или предварительно авторизовать единственное право.
Оператор импорта
Objective C
@import SecurityFoundation;
Доступность
Доступный в OS X v10.3 и позже.
Осуждаемый в OS X v10.5.
-
Авторизовывает и предварительно авторизовывает одно определенное право.
Объявление
Swift
func obtainWithRight(_
rightName
: AuthorizationString, flagsflags
: AuthorizationFlags, errorerror
: NSErrorPointer) -> BoolObjective C
- (BOOL)obtainWithRight:(AuthorizationString)
rightName
flags:(AuthorizationFlags)flags
error:(NSError **)error
Параметры
rightName
Имя права авторизации.
flags
Немного маски для указания опций авторизации. Посмотрите
obtainWithRights:flags:environment:authorizedRights:error:
для подробных данных о возможных флаговых значениях.error
На завершении, код результата, возвращенный методом. См. “Коды Результата” в Ссылке Authorization Services C.
Возвращаемое значение
YES
true
если работа завершается успешно.Обсуждение
Используйте этот метод, чтобы авторизовать или предварительно авторизовать единственное право.
Оператор импорта
Objective C
@import SecurityFoundation;
Swift
import SecurityFoundation
Доступность
Доступный в OS X v10.3 и позже.
-
Предотвращает любые права, полученные этим объектом из того, чтобы быть сохраненным.
Объявление
Swift
func invalidateCredentials()
Objective C
- (void)invalidateCredentials
Обсуждение
Этот метод эффективно гарантирует, что не совместно используются полномочия.
Оператор импорта
Objective C
@import SecurityFoundation;
Swift
import SecurityFoundation
Доступность
Доступный в OS X v10.3 и позже.