Match native proof HTTPS egress to the service ingress peer
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 8s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a10780-6d41-7952-9718-dfbc1f41236f
This commit is contained in:
tegwick 2026-10-04 23:44:47 +02:00
parent 6f4b87d44e
commit f3dbff6a77
3 changed files with 83 additions and 3 deletions

View file

@ -8,6 +8,7 @@ from urllib.parse import urlencode, quote_plus
from urllib.request import Request, build_opener, ProxyHandler, HTTPRedirectHandler
from urllib.error import HTTPError
from informed_decision.requester import RequesterTokenProvider, CLIENT_ID
from informed_decision.http_transport import JSONTransport
BAO = 'http://openbao.openbao.svc:8200/v1/'
ISSUER = 'https://kc.coulomb.social'
@ -69,7 +70,14 @@ def run(negative=False):
check('exact_path_projection_matches', status == 200 and bool(secret)
and result.get('data', {}).get('data', {}).get('CLIENT_SECRET') == secret)
receipt['phase'] = 'requester_exchange'
provider = RequesterTokenProvider(ISSUER, str(SECRET))
class ObservedTransport:
def request(self, method, url, **kwargs):
step = 'issuer_token_request' if method == 'POST' else 'issuer_jwks_request'
receipt['phase'] = step
status, result = JSONTransport().request(method, url, **kwargs)
receipt[step+'_ok'] = status == 200
return status, result
provider = RequesterTokenProvider(ISSUER, str(SECRET), transport=ObservedTransport())
check('signed_create_only_exchange', bool(provider()))
credentials = base64.b64encode((quote_plus(CLIENT_ID)+':'+quote_plus(secret)).encode()).decode()
for scope in ('approval:approve', 'approval:read', 'approval:consume'):