Hi Alan,
thank you for you elaborate answer! It is much appreciated.
A little bit of background on what I am trying to accomplish: I'd like to have a guide or recipe for users to set up an automated ingest from a laboratory or measurement setup. So these are not users who will be pushing data manually, but they will set up a long-running process that automatically picks up measurements as they come in, probably adds some metadata to it, and then moves it into iRods. I expect these users to be able to write the scripting for metadating and maybe renaming. My idea was that iRods Automated ingest was a good basis for this, but if that is not the case then I am happy to explore alternatives (such as mango-ingest).
I do have some experience using the PRC, and mostly authentication looks more or less like this:
irods_host = os.getenv('IRODS_HOST')
irods_user = os.getenv('IRODS_USER')
irods_password = get_from_vault('irods_password')
irods_zone = os.getenv('IRODS_ZONE')
ssl_settings = {'client_server_negotiation': 'request_server_negotiation',
                'client_server_policy': 'CS_NEG_REQUIRE',                
                'encryption_algorithm': 'AES-256-CBC',
                'encryption_key_size': 32,
                'encryption_num_hash_rounds': 16,
                'encryption_salt_size': 8,
                'ssl_verify_server': 'hostname',
}
with iRODSSession(
    host=irods_host,
    port=1247,
    user=irods_user,
    password=irods_password,
    authentication_scheme="pam_password",
    zone=irods_zone,
    **ssl_settings) as session:
        c = session.collections.get(f"/{irods_zone}/home")
        print(c)
Everything then seems to work virtually the same as without pam (except for the authentication_scheme) and there are no external dependencies. I guess I was expecting the ingest tool to be able to work in a similar way!
I am interested in your remark about a job submission service though (if that is still relevant in light of my explanation here).
Best regards,
Mark