Proposal: Enhance Custom Authorization Abilities #415
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR is a proof-of-concept for extending the ability to write custom authorizers beyond using a custom function to check the value of a string (
username
in the existingAuthFunc
function definition), and specifically facilitating mTLS authentication.I would like my TURN communication to happen over TLS (which is already possible today), but I would like my TURN clients to present a signed TLS certificate for authn/authz instead of a static username and password.
This PR demonstrates how this could be possible.
This breaks the existing API - but it doesn't need to. Both
AuthHandler
andAuthorizer
could co-exist until the next major release (assuming there's interest in this change).Note that
internal/server/authz/tls.go
is only included for illustrative purposes -- that shound't go in here... though perhaps maybe an/example
would be worthwhile.