apache / apache/kyuubi

[Improvement] RESTful API supports isolated authentication configuration

Open
#6,041 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
Scala
Stars
2.4k
Forks
1k
PR merge metrics
No merged PRs in 30d

Description

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)

### Search before asking

- [X] I have searched in the [issues](https://github.com/apache/kyuubi/issues?q=is%3Aissue) and found no similar issues.

### What would you like to be improved?

kyuubi restful api uses the authentication method set by the `kyuubi.authentication` parameter, but sometimes users do not want to enable the authentication for restful api.
When `kyuubi.authentication=KERBEROS`, but `kyuubi.spnego.xxx` not set, an error will be reported, and http requests for "/api/v1" will fail.

```
WARN main org.apache.kyuubi.server.http.authentication.AuthenticationFilter: The authentication handler KerberosAuthenticationHandler for scheme NEGOTIATE is not supported.
```

![image](https://github.com/apache/kyuubi/assets/25627922/d7a047c0-db77-4199-850d-7c1932f467fd)
Should we add a configuration parameter like `kyuubi.restful.authentication` to control whether the restful api enables authentication?

### How should we improve?

add a configuration parameter to supports restful api control authentication isolated.

### Are you willing to submit PR?

- [X] Yes. I would be willing to submit a PR with guidance from the Kyuubi community to improve.
- [ ] No. I cannot submit a PR at this time.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the RESTful API authentication handling and the existing kyuubi.authentication and kyuubi.spnego configuration. Define how an isolated REST API authentication setting should behave when global authentication is enabled, then add coverage for the reported KERBEROS configuration case and verify that /api/v1 requests behave as intended.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
api, authentication, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.