Using ambassador authservice to only require basic auth on some routes/urls (or services)

4/5/2019

I want to activate ambassador authservice to only require authentication on certain routes/urls. Now if you install the basic http auth service it requires this auth for all services by default. So how can I configure ambassador or the auth service (separate service with ExAuth) to only require auth on certain routes/urls?

Ambassador version 0.51.2 kubernetes version 1.14 auth service I am using as base: https://github.com/datawire/ambassador-auth-httpbasic

-- cm4l
authentication
kubernetes

1 Answer

4/5/2019

If you see the server.js example in https://github.com/datawire/ambassador-auth-httpbasic you'll see that it's only authenticating for /extauth/qotm/quote*. If you are using the same server.js to start you'll have to add another app.all section with whatever you want to authenticate. For example:

app.all('/extauth/myapp/myurl*', authenticate, function (req, res) {
  var session = req.headers['x-myapp-session']

  if (!session) {
    console.log(`creating x-myapp-session: ${req.id}`)
    session = req.id
    res.set('x-myapp-session', session)
  }

  console.log(`allowing MyApp request, session ${session}`)
  res.send('OK (authenticated)')
})

Or you can implement this server using a different language if you'd like too.

-- Rico
Source: StackOverflow