blob: 9ec4a949ae0de77e910ff9c7d2042339fa992335 [file] [log] [blame] [view]
---
title: "Spark authentication with Gravitino server"
slug: /spark-connector/spark-authentication
keyword: spark connector authentication oauth2 kerberos
license: "This software is licensed under the Apache License version 2."
---
## Overview
Spark connector supports `simple` `oauth2` and `kerberos` authentication when accessing Gravitino server.
| Property | Type | Default Value | Description | Required | Since Version |
|------------------------------|--------|---------------|---------------------------------------------------------------------------------------------------------------------|----------|------------------|
| spark.sql.gravitino.authType | string | `simple` | The authentication mechanisms when communicating with Gravitino server, supports `simple`, `oauth2` and `kerberos`. | No | 0.7.0-incubating |
## Simple mode
In the simple mode, the username originates from Spark, and is obtained using the following sequences:
1. The environment variable of `SPARK_USER`
2. The environment variable of `HADOOP_USER_NAME`
3. The user login in the machine
## OAuth2 mode
In the OAuth2 mode, you could use the following configuration to fetch an OAuth2 token to access Gravitino server.
| Property | Type | Default Value | Description | Required | Since Version |
|---------------------------------------|--------|---------------|-----------------------------------------------|----------------------|------------------|
| spark.sql.gravitino.oauth2.serverUri | string | None | The OAuth2 server uri address. | Yes, for OAuth2 mode | 0.7.0-incubating |
| spark.sql.gravitino.oauth2.tokenPath | string | None | The path of token interface in OAuth2 server. | Yes, for OAuth2 mode | 0.7.0-incubating |
| spark.sql.gravitino.oauth2.credential | string | None | The credential to request the OAuth2 token. | Yes, for OAuth2 mode | 0.7.0-incubating |
| spark.sql.gravitino.oauth2.scope | string | None | The scope to request the OAuth2 token. | Yes, for OAuth2 mode | 0.7.0-incubating |
## Kerberos mode
In kerberos mode, you could use the Spark kerberos configuration to fetch a kerberos ticket to access Gravitino server, use `spark.kerberos.principal`, `spark.kerberos.keytab` to specify kerberos principal and keytab.
The principal of Gravitino server is like `HTTP/$host@$realm`, please keep the `$host` consistent with the host in Gravitino server uri address.
Please make sure `krb5.conf` is accessible by Spark, like by specifying the configuration `spark.driver.extraJavaOptions="-Djava.security.krb5.conf=/xx/krb5.conf"`.