@@ -29,21 +29,15 @@ room at the [CNCF Slack workspace](https://slack.cncf.io).
29
29
30
30
## Architecture
31
31
32
- Authenticators are regular extensions that also satisfy one or more interfaces
33
- related to the authentication mechanism:
34
-
35
- - [ go.opentelemetry.io/collector/config/configauth/ServerAuthenticator] ( https://pkg.go.dev/go.opentelemetry.io/collector/config/configauth#ServerAuthenticator )
36
- - [ go.opentelemetry.io/collector/config/configauth/GRPCClientAuthenticator] ( https://pkg.go.dev/go.opentelemetry.io/collector/config/configauth#GRPCClientAuthenticator )
37
- - [ go.opentelemetry.io/collector/config/configauth/HTTPClientAuthenticator] ( https://pkg.go.dev/go.opentelemetry.io/collector/config/configauth#HTTPClientAuthenticator )
38
-
39
- Server authenticators are used with receivers, and are able to intercept HTTP
40
- and gRPC requests, while client authenticators are used with exporters, able to
41
- add authentication data to HTTP and gRPC requests. It is possible for
42
- authenticators to implement both interfaces at the same time, allowing a single
43
- instance of the extension to be used both for the incoming and outgoing
44
- requests. Note that users might still want to have different authenticators for
45
- the incoming and outgoing requests, so, don't make your authenticator required
46
- to be used at both ends.
32
+ [ Authenticators] are regular extensions that also satisfy one or more interfaces
33
+ related to the authentication mechanism. [ Server authenticators] are used with
34
+ receivers, and are able to intercept HTTP and gRPC requests, while client
35
+ authenticators are used with exporters, able to add authentication data to HTTP
36
+ and gRPC requests. It is possible for authenticators to implement both
37
+ interfaces at the same time, allowing a single instance of the extension to be
38
+ used both for the incoming and outgoing requests. Note that users might still
39
+ want to have different authenticators for the incoming and outgoing requests,
40
+ so, don't make your authenticator required to be used at both ends.
47
41
48
42
Once an authenticator extension is available in the collector distribution, it
49
43
can be referenced in the configuration file as a regular extension:
@@ -129,7 +123,7 @@ service:
129
123
130
124
# ## Server authenticators
131
125
132
- A server authenticator is essentially an extension with an `Authenticate`
126
+ A [ server authenticator][sa] is essentially an extension with an `Authenticate`
133
127
function, receiving the payload headers as parameter. If the authenticator is
134
128
able to authenticate the incoming connection, it should return a `nil` error, or
135
129
the concrete error if it can't. As an extension, the authenticator should make
@@ -147,11 +141,8 @@ debug specific failures.
147
141
148
142
# ## Client authenticators
149
143
150
- A client authenticator is one that implements one or more of the following
151
- interfaces :
152
-
153
- - [go.opentelemetry.io/collector/config/configauth/GRPCClientAuthenticator](https://pkg.go.dev/go.opentelemetry.io/collector/config/configauth#GRPCClientAuthenticator)
154
- - [go.opentelemetry.io/collector/config/configauth/HTTPClientAuthenticator](https://pkg.go.dev/go.opentelemetry.io/collector/config/configauth#HTTPClientAuthenticator)
144
+ A _client authenticator_ is one that implements one or more of the interfaces
145
+ defined in [Client authenticators].
155
146
156
147
Similar to server authenticators, they are essentially extensions with extra
157
148
functions, each receiving an object that gives the authenticator an opportunity
@@ -167,6 +158,13 @@ Custom authenticators have to be part of the same binary as the main collector.
167
158
When building your own authenticator, you'll likely have to build a custom
168
159
distribution as well, or provide means for your users to consume your extension
169
160
as part of their own distributions. Fortunately, building a custom distribution
170
- can be done using the
171
- [OpenTelemetry Collector Builder](https://github.com/open-telemetry/opentelemetry-collector/tree/main/cmd/builder)
172
- utility.
161
+ can be done using the [OpenTelemetry Collector Builder][builder] utility.
162
+
163
+ [authenticators] :
164
+ https://pkg.go.dev/go.opentelemetry.io/collector/config/configauth
165
+ [builder] :
166
+ https://github.com/open-telemetry/opentelemetry-collector/tree/main/cmd/builder
167
+ [client authenticators] :
168
+ https://pkg.go.dev/go.opentelemetry.io/collector/config/configauth#client-authenticators
169
+ [sa] :
170
+ https://pkg.go.dev/go.opentelemetry.io/collector/config/configauth#server-authenticators
0 commit comments