11# Transparency Exchange API - Authentication and authorization
22
3-
4- ** NOTE** : _ This is a proposal for the WG_
5-
63This document covers authentication and authorization on the consumer side
74of a TEA service - the discovery and download of software transparency artefacts.
85
@@ -12,7 +9,8 @@ __Authorization__: A user of a TEA service may get access to all objects (leaf,
129artefacts or just a subset, depending on the publisher of the data. Authorization is connected
1310to __ authentication__ .
1411
15- The level of authorization is up to the implementer of the TEA implementation and the publisher.
12+ The level of authorization is up to the implementer of the TEA implementation and the publisher,
13+ whether an identity gets access to all objects in a service or just a subset.
1614
1715In order to get interoperability between clients and servers implementing the protocol, the
1816specification focuses on the authentication. After successful authentication, the authorization
@@ -27,6 +25,15 @@ the customer has not aquired.
2725For most Open Source projects, implementing authentication - setting up accounts and managing
2826authorization - does not make much sense, since the information is usually in the open any way.
2927
28+ This specification does not impose any requirement on authentication on a TEA service. But should
29+ the provider implement authentication, two methods are supported in order to promote interoperability.
30+
31+ * HTTP Bearer Token Authentication
32+ * Mutual TLS with verifiable client and server certificates
33+
34+ A client may use both HTTP bearer token auth and TLS client certificates
35+ when accessing multiple TEA services. It is up to the service provider to select authentication.
36+
3037## HTTP bearer token auth
3138
3239The API will support HTTP bearer token in the __ Authorization:__ http header.
@@ -37,6 +44,17 @@ As an example the token can be downloaded from a customer support portal with a
3744validity. This token is then installed into the software transparency platform (the TEA client)
3845and used to automatically retrieve software transparency artefacts.
3946
47+ For each TEA service, one bearer token is needed. The token itself (or the backend) should
48+ specify authorization for the token.
49+
50+ ## Mutual TLS
51+
52+ For Mutual TLS the client certificates will be managed by the service and provided
53+ in a service-specific way. Clients should be able to configure a separate client certificate
54+ (and private key) on a per-service level, not assuming that a client certificate
55+ for one service is trusted anywhere else.
56+
4057## References
4158
42- - RFC 6750: The Oauth 2.0 Authorization Framework: Bearer Token Usage (https://www.rfc-editor.org/rfc/rfc6750 )
59+ * RFC 6750: The Oauth 2.0 Authorization Framework: Bearer Token
60+ Usage (https://www.rfc-editor.org/rfc/rfc6750 )
0 commit comments