Initiate a privilege elevation workflow request

  1. This is similar to REST API JobFlow/StartJob. The difference is that the caller of this API must be the service account of a client, and the
    actual user is specified in the "User" parameter in the payload. Internally, this function validates the input parameters and then runs the
    job script as the actual user who requests the workflow request.
    This allows the same job script to be used when we allow the user to submit the workflow request from UI portal, where JobFlow/StartJob API is
    used to start the job.
    2. CommandID is used to identify the command instead of command name. The reason is that the command name maybe I18N already so may not be easily
    handled by Linux systems which use UTF-8 instead of simple UCS-2 as in windows...
    When we support user selection of commands to request workflow request on, the backend should send out a list of names with UUID. The UI displays
    the name and let user to select the item. The sudo plugin needs to return the corresponding UUID.
    3. Using collection as scope type is not supported yet in v1.