llama-stack-mirror/llama_stack/distribution
grs e3ad17ec5e
feat: enable mutual tls (#2140)
# What does this PR do?
This adds a config option for a CA to be specified with which client
certs are verified. If specified client certs are required. This offers
a simple way of securing access to the server.

(Note: at present it is not possible to access the details of the client
certificate using uvicorn (unless it was monkey patched). Though there
is a defined TLS extension for ASGI, this is not implemented in uvicorn
pending a review and likely change to the specification. See
https://github.com/encode/uvicorn/pull/1119 and
https://github.com/django/asgiref/issues/466. Without access to the DN
it isn't possible to set user access attributes for a mutually
authentication tls connection, so more fine grained access control is
not yet possible).

[//]: # (If resolving an issue, uncomment and update the line below)
[//]: # (Closes #[issue-number])

## Test Plan
Used proposed config option to specify a CA and verified that the server
can only be accessed with a valid client certificate.

[//]: # (## Documentation)

Signed-off-by: Gordon Sim <gsim@redhat.com>
2025-05-12 14:08:36 -07:00
..
routers fix: catch TimeoutError in place of asyncio.TimeoutError (#2131) 2025-05-12 11:49:59 +02:00
server feat: enable mutual tls (#2140) 2025-05-12 14:08:36 -07:00
store feat: implementation for agent/session list and describe (#1606) 2025-05-07 14:49:23 +02:00
ui chore: more mypy fixes (#2029) 2025-05-06 09:52:31 -07:00
utils chore: enable pyupgrade fixes (#1806) 2025-05-01 14:23:50 -07:00
__init__.py API Updates (#73) 2024-09-17 19:51:35 -07:00
access_control.py chore: enable pyupgrade fixes (#1806) 2025-05-01 14:23:50 -07:00
build.py fix: enforce stricter ASCII rules lint rules in Ruff (#2062) 2025-04-30 18:05:27 +02:00
build_conda_env.sh chore: remove straggler references to llama-models (#1345) 2025-03-01 14:26:03 -08:00
build_container.sh feat: include run.yaml in the container image (#2005) 2025-04-24 11:29:53 +02:00
build_venv.sh chore: remove straggler references to llama-models (#1345) 2025-03-01 14:26:03 -08:00
client.py chore: enable pyupgrade fixes (#1806) 2025-05-01 14:23:50 -07:00
common.sh feat(pre-commit): enhance pre-commit hooks with additional checks (#2014) 2025-04-30 11:35:49 -07:00
configure.py chore: more mypy fixes (#2029) 2025-05-06 09:52:31 -07:00
datatypes.py feat: enable mutual tls (#2140) 2025-05-12 14:08:36 -07:00
distribution.py chore: enable pyupgrade fixes (#1806) 2025-05-01 14:23:50 -07:00
inspect.py feat: add health to all providers through providers endpoint (#1418) 2025-04-14 11:59:36 +02:00
library_client.py chore: more mypy fixes (#2029) 2025-05-06 09:52:31 -07:00
providers.py fix: catch TimeoutError in place of asyncio.TimeoutError (#2131) 2025-05-12 11:49:59 +02:00
request_headers.py chore: more mypy fixes (#2029) 2025-05-06 09:52:31 -07:00
resolver.py chore: enable pyupgrade fixes (#1806) 2025-05-01 14:23:50 -07:00
stack.py chore: enable pyupgrade fixes (#1806) 2025-05-01 14:23:50 -07:00
start_stack.sh docs: Update docs and fix warning in start-stack.sh (#1937) 2025-04-11 16:26:17 -07:00