美文网首页
SKIL/开始/身份认证

SKIL/开始/身份认证

作者: hello风一样的男子 | 来源:发表于2019-04-23 16:39 被阅读0次

    身份认证

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

    用户界面

    image image.gif ​

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

    用户名

    admin

    **密码 **

    admin

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

    HTTP API

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

    1. 发送一个post请求到http://<SKIL_IP_Address>:<port>/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 工作间

    image image.gif ​

    由于工作间使用Apache Zeppelin作为解释器后端,你还可以通过导航到http://<SKIL_IP_Address>: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/开始/身份认证

          本文链接:https://www.haomeiwen.com/subject/iufbgqtx.html