Hey David,

This isn't exposed right now. You'd have to expose the gRPC option on
the client and server sides; right now while Flight does set up SSL
credentials when TLS is enabled, it's only to allow you to set the
root certificate on the client [1] and the server certificate [2].
There is already support for custom authentication methods, though, if
you're amenable to something other than mTLS (e.g. username/password
or auth token).

If you're interested in contributing this, I think it should be fairly
straightforward - you'd just need to add options that get passed
through to gRPC - though you'd have to also expose the option to
Python.

For Java servers, you can use the flight-grpc artifact [3] to obtain a
"plain" gRPC service from your Flight Producer implementation, which
you can then attach to a gRPC server that you've configured with mTLS.
Unfortunately this convenience isn't (reasonably) possible to
implement in Python with the way that gRPC-C++ and gRPC-Python are
designed.

Best,
David

[1]: 
https://github.com/apache/arrow/blob/2914899326d50d3e2853f5ecbd165028d862378f/cpp/src/arrow/flight/client.cc#L538-L542
[2]: 
https://github.com/apache/arrow/blob/2914899326d50d3e2853f5ecbd165028d862378f/cpp/src/arrow/flight/server.cc#L674-L678
[3]: https://search.maven.org/search?q=g:org.apache.arrow%20AND%20a:flight-grpc

On 4/9/20, David Seapy <ddse...@ccri.com> wrote:
> grpc supports connections using mutual TLS with client and server
> certificates. Is there an example of how to do this with arrow flight
> libraries, or does one need to step down to the grpc-level when making
> requests?
>
> Specifically we are working on having data-scientists establish a
> connection with our scala flight server from their python client.  If it
> is not currently supported but is a feature that the community would
> benefit from, then maybe we can take a stab at adding support for this.
>
> Any advice or pointers would be appreciated.
>
> Thanks!
>
> - David Seapy
>
>

Reply via email to