| 86 | This section describes the utilities for converting existing [FeddAbout#GlobalIdentifiers:Three-levelNames three-name-based]configurations into ABAC. Users do not need to do anything, but there is a utility for converting experiment controllers and access controllers. |
| 87 | |
| 88 | In addition to running the utilties, add set '''auth_type''' to '''abac''' and '''auth_dir''' to the ABAC directory created by the utilities below. For access controllers, the '''accessdb''' variable should point to the generated map file. |
| 89 | |
| 90 | === fedd_to_abac.py === |
| 91 | |
| 92 | {{{fedd_to_abac.py}}} converts an existing fedd experiment controller configuration into an ABAC configuration. A certificate and key are required as well as an output directory for the ABAC authorizer (target of the '''auth_dir''' parameter in the configuration file. |
| 93 | |
| 94 | It takes the following arguments: |
| 95 | {{{--cert=}}}''file'':: |
| 96 | A file containing an X.509 certificate in pem format. This is the identity that will assert the attributes and should probably be the same as the experiment controller's identity. It may be a combination certificate and key file. |
| 97 | {{{--key=}}}''file'':: |
| 98 | The key for signing attributes. It should be a pem file with an RSA key in it. This can be omitted if {{{--cert}}} specifies a combination file. |
| 99 | {{{--dir=}}}''dir'':: |
| 100 | The output directory for the authorizer. |
| 101 | {{{--make_dir}}}:: |
| 102 | If given, make the output directory. |
| 103 | {{{--debug}}}:: |
| 104 | Just output the creddy commands that would be issued to create the certificates. |
| 105 | {{{--policy_only}}}:: |
| 106 | Only output the ABAC certificates, not the full ABAC authorizer. This is primarily for debugging. |
| 107 | {{{--update}}}:: |
| 108 | Update the output directory rather than creating it. This allows the authorizer to remember credentials it has learned or issued while updating the policy. |
| 109 | |
| 110 | After the named arguments are given, the [FeddDatabases#ExperimentControlComponentAccessDB aceess DB file] is a required argument. |
| 111 | |
| 112 | === access_to_abac.py === |
| 113 | |
| 114 | {{{access_to_abac.py}}} converts access controller policies into ABAC and generates a DB for mapping the derived attributes into an appropriate credential mapping database, the target of the '''accessdb''' configuration directive. Keys and certificates are required parameters as well as a directory for the ABAC authorizer and a file for the access DB. |
| 115 | |
| 116 | It takes the following arguments: |
| 117 | |
| 118 | {{{--cert=}}}''file'':: |
| 119 | A file containing an X.509 certificate in pem format. This is the identity that will assert the attributes and should probably be the same as the experiment controller's identity. It may be a combination certificate and key file. |
| 120 | {{{--key=}}}''file'':: |
| 121 | The key for signing attributes. It should be a pem file with an RSA key in it. This can be omitted if {{{--cert}}} specifies a combination file. |
| 122 | {{{--dir=}}}''dir'':: |
| 123 | The output directory for the authorizer. |
| 124 | {{{--type=}}}''type'':: |
| 125 | The type of access controller, '''emulab''', '''dragon''', etc. Used to parse the various formats of the old accessDB. |
| 126 | {{{--quiet}}}:: |
| 127 | Do not produce extra output |
| 128 | {{{--no_create_creds}}}:: |
| 129 | Do not create the authorizer (debugging only) |
| 130 | {{{--file=}}}''old_accessdb'':: |
| 131 | The accessDB to convert. May also be specified as a bare parameter after the named parameters have been given. |
| 132 | {{{--mapfile=}}''new_accessdb'':: |
| 133 | The new accessDB to create. It must be a different file name than the file being converted. |
| 134 | {{{--no_delegate}}}:: |
| 135 | By default the ABAC created attributes include a layer of delegation for a standalone fedd running with a different principal. Specifying this parameter eliminates a layer of delegation. Even for single-user experiment controllers, this option is rarely necessary. |
| 136 | {{{--no_auth}}}:: |
| 137 | Do not create an authorizer. For debugging only. |
| 138 | {{{--debug}}}:: |
| 139 | Just produce debugging output. |
| 140 | |
| 141 | If {{{--file}}} is not given, the [FeddDatabases#AccessComponentAccessDB accessDB] to convert must follow. |