Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-38862

Basic Authentication or Token Based Authentication for The REST Submission Server




      Spark documentation states that

      The REST Submission Server and the MesosClusterDispatcher do not support authentication. You should ensure that all network access to the REST API & MesosClusterDispatcher (port 6066 and 7077 respectively by default) are restricted to hosts that are trusted to submit jobs.

      Whilst it is true that we can use network policies to restrict access to our exposed submission endpoint, it would be preferable to at least also allow some primitive form of authentication at a global level, whether this is by some token provided to the runtime environment or is a "system user" using basic authentication of a username/password combination - I am not strictly opinionated and I think either would suffice.

      I appreciate that one could implement a custom proxy to provide this authentication check, but it seems like a common use case that others may benefit from to be able to authenticate against the rest submission endpoint, and by implementing this capability as an optionally configurable aspect of Spark itself, we can utilise the existing server to provide this check.

      I would imagine that whatever solution is agreed for a first phase, a custom authenticator may be something we want a user to be able to provide so that if an admin needed some more advanced authentication check, such as RBAC et al, it could be facilitated without the need for writing a complete custom proxy layer; but I do feel there should be some basic built in available; eg. RestSubmissionBasicAuthenticator.




            Unassigned Unassigned
            jackbuggins Jack
            1 Vote for this issue
            3 Start watching this issue