-
|
Hi, I'm kinda having a confusion how authentication is intended for these two. I'm implementing Arrow Flight SQL server, and need to use some auth mechanism. So far, I'm using flight.BasicAuthValidator with combination with flight.CreateServerBasicAuthMiddleware But I also found flight.ServerAuthHandler that can be set to embedded flight.BaseFlightServer, and then be used by If I'm correct, the authentication is a matter of the Flight RPC layer. So the What is the unified Auth mechanism for Flight RPC? Does Flight SQL use different? By my experience, all clients, like Flight SQL JDBC driver, uses only the first method, using |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
|
TL;DR: There isn't a "unified" auth mechanism for Flight RPC or Flight SQL, but most libraries have implemented "Basic" auth for convenience.
This is the default way to perform simple authentication with Flight and Flight SQL: using simple "Basic" authentication via the http protocol (grpc uses HTTP/2). You send a message to Handshake with an empty payload using
This is for implementing a custom authentication method beyond "Basic" authentication. The The
Correct,
In addition to using the "authorization" header/trailer, the Rust, Java, and C++ (and by extension, many other implementations that bind to the C++ impl like Python and Ruby) implementations also allow using the "auth-token-bin" metadata for custom auth mechanisms just like the Go implementation. Specifically, it was added to the Go implementation so that we would follow suit and be in line with the other Flight RPC implementations. |
Beta Was this translation helpful? Give feedback.
TL;DR: There isn't a "unified" auth mechanism for Flight RPC or Flight SQL, but most libraries have implemented "Basic" auth for convenience.
This is the default way to perform simple authentication with Flight and Flight SQL: using simple "Basic" authentication via the http protocol (grpc uses HTTP/2). You send a message to Handshake with an empty payload using
Basicauthorization, which validates it via implementing aBasicAuthVal…