---
title: "init(flags:rights:environment:)"
framework: securityfoundation
role: symbol
role_heading: Initializer
path: "securityfoundation/sfauthorization/init(flags:rights:environment:)"
---

# init(flags:rights:environment:)

Initializes an authorization object with the specified flags, rights, and environment.

## Declaration

```swift
init!(flags: AuthorizationFlags, rights: UnsafePointer<AuthorizationRights>!, environment: UnsafePointer<AuthorizationEnvironment>!)
```

## Parameters

- `flags`: A bit mask for specifying authorization options. Use the following option sets: Pass the constant doc://com.apple.documentation/documentation/Security/AuthorizationFlags/kAuthorizationFlagDefaults if no options are necessary. Specify the doc://com.apple.documentation/documentation/Security/AuthorizationFlags/extendRights mask to request rights. You can also specify the doc://com.apple.documentation/documentation/Security/AuthorizationFlags/interactionAllowed mask to allow user interaction. Specify the doc://com.apple.documentation/documentation/Security/AuthorizationFlags/partialRights and doc://com.apple.documentation/documentation/Security/AuthorizationFlags/extendRights masks to request partial rights. You can also specify the doc://com.apple.documentation/documentation/Security/AuthorizationFlags/interactionAllowed mask to allow user interaction. Specify the doc://com.apple.documentation/documentation/Security/AuthorizationFlags/preAuthorize and doc://com.apple.documentation/documentation/Security/AuthorizationFlags/extendRights masks to preauthorize rights. Specify the doc://com.apple.documentation/documentation/Security/AuthorizationFlags/destroyRights mask to prevent the Security framework from preserving the rights obtained during this call.
- `rights`: A pointer to a set of authorization rights you create. Pass NULL if the application requires no rights at this time.
- `environment`: Data used when authorizing or preauthorizing rights. In macOS 10.3 and later, you can pass icon or prompt data to be used in the authentication dialog box. Possible values for this parameter are listed in Security/AuthorizationTags.h. If you are not passing any data in this parameter, pass the constant doc://com.apple.documentation/documentation/Security/kAuthorizationEmptyEnvironment.

## Return value

Return value The authorization object. Discussion You can use this method to initialize an authorization object. Normally, such initialization is not required, as you pass in flags, rights, and environmental data when you request authorization.

## See Also

### Allocating and initializing an authorization object

- [authorization()](securityfoundation/sfauthorization/authorization().md)
- [authorization(with:rights:environment:)](securityfoundation/sfauthorization/authorization(with:rights:environment:).md)
- [init()](securityfoundation/sfauthorization/init().md)
