Authentication travels with each call rather than sitting in the config, which is what makes it multi-tenant. The same connection can address one organisation on this call and a different one on the next, with nothing cached in between.
A server over the Chef Infra Server API with one tool per endpoint rather than a generic wrapper. It holds no session: every tenant-facing call carries its own authentication.
- Nodes, roles and environments: chef_create_node, chef_delete_node, chef_create_role, chef_delete_role, chef_create_environment and chef_delete_environment
- Clients and their keys: chef_create_client, chef_get_client, chef_delete_client, chef_create_client_key, chef_get_client_key and chef_delete_client_key
- Cookbooks: chef_get_cookbook, chef_get_cookbook_version, chef_delete_cookbook_version, chef_get_cookbook_artifact, chef_get_cookbook_artifact_version and chef_delete_cookbook_artifact_version
- Data bags: chef_create_data_bag, chef_create_data_bag_item, chef_delete_data_bag and chef_delete_data_bag_item
- Uploads: chef_create_sandbox and chef_commit_sandbox
- Organisations and membership: chef_create_organization_global, chef_delete_organization_global, chef_create_association_request, chef_delete_association_request, chef_associate_org_user and chef_disassociate_org_user
- Users, groups and containers: chef_create_user_global, chef_delete_user_global, chef_create_user_key_global, chef_delete_user_key_global, chef_authenticate_user, chef_create_group, chef_delete_group, chef_create_container and chef_delete_container
A Chef Infra Server you can reach, and credentials passed on each call: a user id and RSA private key for Chef signature authentication, or a username and password for the endpoints that take basic auth.
