SKIL/开始/身份认证

身份认证

根据你使用SKIL的方式,始终需要身份认证。有几种方法可以通过SKIL获得身份认证,本文档将指导你完成每种方法。

用户界面

SKIL/开始/身份认证_第1张图片
image
image.gif

要使用UI进行身份验证,请将浏览器导航到http://:9008/ 并输入以下凭据:

用户名

admin

**密码 **

admin

替换为SKIL实例的地址或主机名。如果你在本地启动了SKIL,那么这通常是localhost。如果你已经使用Docker启动SKIL,IP地址可能会有所不同。

HTTP API

SKIL API使用JSON Web令牌(JWT)RFC 7519 对HTTP上的请求进行身份认证。如果你不知道JWT,JWT网站有一些例子。
为请求获取可重用JWT的典型工作流是:

  1. 发送一个post请求到http://:/login,JSON主体为{"userId":"admin","password":"admin"},Content-type为application/json。
  2. 获取JSON响应的token字段。
  3. 在为HTTP请求使用JWT时,添加一个authorization头,其值为bearer[token],其中[token]替换为先前获得的JWT。

为了方便起见,还可以使用帮助类来自动获取JWT。

JAVA

/**

简单的帮助类,用于封装一些用于进行基本身份认证调用的原始REST代码
    */
private class Authorization {

  private String host;
  private String port;

  public Authorization() {
    this.host = "localhost";
    this.port = "9008";
  }

  public Authorization(String host, String port) {
    this.host = host;
    this.port = port;
  }

  public String getAuthToken(String userId, String password) {
    String authToken = null;

    try {
      authToken =
        Unirest.post(MessageFormat.format("http://{0}:{1}/login", host, port))
        .header("accept", "application/json")
        .header("Content-Type", "application/json")
        .body(new JSONObject() //使用它是因为字段函数无法转换为可接受的JSON
              .put("userId", userId)
              .put("password", password)
              .toString())
        .asJson()
        .getBody().getObject().getString("token");
    } catch (UnirestException e) {
      e.printStackTrace();
    }

    return authToken;
  }
}
image.gif

Zeppelin 工作间

SKIL/开始/身份认证_第2张图片
image
image.gif

由于工作间使用Apache Zeppelin作为解释器后端,你还可以通过导航到http://:8080来访问Zeppelin接口。如果你已将Zeppelin设置为非标准端口(如使用Docker时),请更改端口8080。

使用与SKIL用户界面相同的凭证进行身份认证。请注意,通常情况下,当工作间直接从SKIL使用时,Zeppelin会自动进行身份验证,但如果你直接访问了Zeppelin,则需要重新进行身份认证。

命令行 (CLI)

为了使命令行接口(cli)能够正确与SKIL一同工作,你需要使用正在运行的服务器进行身份认证。找到cli命令,然后键入:

Shell

./sbin/skil login --userId admin --password password
image.gif

用你的登录凭证替换“admin”和“password”,然后按下回车。如果验证成功,你将看到类似于以下内容的JSON响应:

INFO: {"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJTa2lsVXNlciIsInN1YiI6IntcInVzZXJJZFwiOlwiYWRtaW5cIixcInVzZXJOYW1lXCI6XCJhZG1pblwiLFwicGFzc3dvcmRcIjpcImFkbWluXCIsXCJyb2xlXCI6XCJhZG1pblwiLFasoduyi5jwefuXCJ9IiwiaXNzIjoiU2tpbEF1dGhNYW5hZ2VyIiwiZXhwIjoxNTIyOTYxOTM5LCJpYXQiOjE1MjI4NzU1Mzl9.GHbb0LjEbO2av0CvBVlk4-Ks3l8S7znADI2yc_gLw0M"}

image.gif

除非你需要JWT用于自定义的程序,否则不需要保存此令牌。它在本地缓存。

你可能感兴趣的:(SKIL/开始/身份认证)