Go to main content

手册页第 7 部分:标准、环境、宏、字符集和杂项

退出打印视图

更新时间: 2018年8月8日 星期三
 
 

webui-service(7)

名称

webui-service - Oracle Solaris WebUI 服务

用法概要

svc:/system/webui/server:default

描述

WebUI SMF 服务是一个运行 WSGI 应用程序的 Apache 实例,通过 HTTPS 调用协调者。缺省情况下,WebUI 侦听端口 6787。要侦听端口 443 然后将请求重定向到端口 6787,请参见示例 1“侦听端口 443”。

在启动时自动生成自签名证书。还可以在部署期间提供证书,如示例 2“设置 SSL 证书”中所示。

协调者是最小的 Web 应用程序中间件,为 Web 应用程序提供以下服务:

  • 用户验证

  • 用户会话和 RAD 令牌保护

  • RAD-Rest 请求重定向

  • 验证的文件服务

可以通过 REST API 使用以下名称空间来获得这些服务:

/solaris

为 WebUI 框架及其所有应用程序保留。如果用户通过验证,则将重定向到显示板应用程序,否则将重定向到登录页面。

/solaris/api/login

用于用户验证的 REST API

POST 请求

主体中包含以下 JSON 有效荷载的 POST 请求将为提供的 username 启动新的 PAM 验证对话:

{
"username": "username"
"inactivity_timeout":  timeout in minutes
}

此请求通过 RAD 验证模块进行处理。

可以省略 username。在这种情况下,PAM 可能会提示您提供 username,具体取决与其配置。username 是普通的 Oracle Solaris username

此外,inactivity_timeout 是可选的。缺省值为 24h

如果成功,将返回 JSON 有效荷载以及头中的 auth-token cookie。

如果失败,将会返回 HTTP 未经授权 (401) 错误。

用户会话令牌的有效性取决于:

  • 在请求主体中指定的会话不活动超时

  • 可以通过 coordinator/absolute_timeout SMF 属性修改的绝对超时

  • 关联隐藏 RAD 令牌的有效性

可以重用此 cookie,以便随后使用 WebUI 访问 RAD REST 接口,并且它还用作 WebUI 框架的用户会话。

返回的 JSON 主体具有以下组成部分:

state

state 组成部分具有下列值之一:

SUCCESS

验证已成功完成

CONTINUE

您正在验证对话中,需要更多信息才能继续。

您需要正确处理 messages 字段。

ERROR

RAD/REST 验证模块中发生意外错误

messages

messages 组成部分是 JSON 对象列表,其中包含要显示到用户界面的消息。消息具有两个元素:要输出的消息以及样式,样式可以是以下项之一并要求特定的行为,如下所述:

PROMPT_ECHO_ON

收集来自用户的输入,从而启用响应回显;例如,当 PAM 需要知道 username 时。

PROMPT_ECHO_OFF

收集来自用户的输入,从而禁用响应回显;例如,要求提供口令。

TEXT_INFO

向用户显示信息。您是否需要确认此内容取决于要显示的 UI。

ERROR_MSG

向用户显示错误。您是否需要确认此内容取决于要显示的 UI。

以下是消息示例:

{
  "state": "CONTINUE",
  "messages": [
    {
      "style": "PROMPT_ECHO_OFF",
      "message": "Password: "
    }
  ]
}
PUT 请求

PUT 请求用于继续进行通过 POST 启动的对话,并向 WebUI 反馈更新。

请求主体必须至少包含收集的响应数据,类似如下:

{
  "responses": [
  "password"
  ]
}

如果没有响应,您可以在 JSON 中将数组替换为空值(如同以上 POST 示例)。

如果未提示提供数据,可能出现此情况,例如,如果只是 TEXT_INFO 消息,此时不需要响应。


注 - “响应”列表中的项目数必须与 PROMPT_ECHO_ONPROMPT_ECHO_OFF 消息数完全相同。

如果成功提交响应,您将收到类似以上 POST 示例的 JSON 有效载荷,以及状态和更多消息(如果需要任何更多提示)。

如果成功完成,您将收到状态值 SUCCESS。在这种情况下,您将收到的有效载荷中包含其他值,如以下 GET 请求中所述。

如果验证失败,您将收到 HTTP 错误代码 401(未经授权)。

GET 请求

头中包含 auth-token cookie 的 GET 请求将返回 JSON 有效载荷(如果该 cookie 有效)。

如果您正在进行 PAM 验证对话,您收到的有效载荷与状态值为 CONTINUE 时从 POST 或 PUT 收到的有效载荷相同。

如果您有完全验证的有效会话,您将收到状态值设置为 SUCCESS 的有效载荷,且 JSON 中包含一些其他值。

username

进行验证的用户名

如果 cookie 无效,将返回 HTTP 未经授权 (401)。

DELETE 请求

头中包含 auth-token cookie 的 DELETE 请求将尝试删除用户会话及其关联的 RAD 连接。如果成功,将返回以下 JSON 有效载荷:

{ username: username }

如果失败,将返回 HTTP 错误请求 400 错误。

/solaris/api/rad

RAD/Rest URL 访问点。允许您使用 REST 通过 HTTPS 处理 RAD 查询。

POST 请求

将 RAD-REST 请求与其 JSON 主体有效载荷重定向到内部 rad-http 守护进程进行处理。

有关更多有效载荷格式信息,请参见《RAD REST Developer Guide》。

/solaris

显示板应用程序登录页面

/solaris/analytics

分析 (Analytics) 应用程序登录页面

/solaris/js

用于存储 js 框架文件 (JET) 的未经验证的目录

其他 WSGI 应用程序可以使用名称空间的其余部分。

选项

以下配置属性是 webui/server:default 服务的 conf 属性组的成员:

listen_addresses

符合 Apache 侦听指令格式的 ip:port 字符串列表。如果未指定任何值,则 Web 服务器将使用缺省端口侦听所有可用的 IP 地址。

cert_file

缺省证书文件位置

cert_key_file

缺省证书密钥文件位置

ca_cert_path

缺省 CA 证书路径位置

server_name

要在服务器用于标识自身的 Apache 配置中用作 ServerName 的值

absolute_timeout

绝对最长用户会话持续时间,以分钟为单位

default_landing_page

包含当用户请求 https://hostname:6787/ 时将会重定向到的相关名称空间的字符串

redirect_root_url

用于确定 Apache 是否应该将 root URL (/) 重定向到 Solaris 显示板应用程序的布尔值。

redirect_from_https

用于确定服务是否应该侦听端口 443 然后将请求重定向到端口 6787 的布尔值

cipher_suite

Apache 使用的密码

protocol

Apache 使用的安全协议

导入格式

webui/server SMF 服务会在启动和刷新时将专门格式化的文件导入首选项系统。这些文件由已安装的应用程序定义,例如 analytics(7) WebUI 应用程序在 analytics(5) 中提供导入格式文档。

如果由于任何原因导致导入失败,则 webui/server SMF 服务将进入降级状态以标记导入失败。有关失败的详细信息,请参见 webui/server SMF 日志。

示例

示例 1 监听端口 443

缺省情况下,WebUI 侦听端口 6787。要侦听端口 443 然后将请求重定向到端口 6787,请将 conf/redirect_from_https 属性值设置为 true

$ svccfg -s webui/server:default
svc:/system/webui/server:default> listprop conf/redirect_from_https
conf/redirect_from_https boolean     false
svc:/system/webui/server:default> setprop conf/redirect_from_https=true
svc:/system/webui/server:default> listprop conf/redirect_from_https
conf/redirect_from_https boolean     true
svc:/system/webui/server:default> refresh
svc:/system/webui/server:default> restart
svc:/system/webui/server:default> exit
$ svcprop -p conf/redirect_from_https webui/server:default
true
示例 2 设置 SSL 证书

Oracle Solaris 11.4 提供自签名证书以用于缺省 webui/server 配置。具有证书颁发机构 (Certificate Authority, CA) 提供的正确签名的证书的客户可能希望改用该证书。

要替换自签名证书配置,请执行以下过程,替换正确的文件名:

# SVC=svc:/system/identity:cert
# svccfg -s $SVC setprop certificate/cert/pem_value \
  = astring: "$(cat /path/to/signed/certificate.crt )"
# svccfg -s $SVC setprop certificate/cert/private_key/pem_value \
  = astring: "$(cat /path/to/signed/certificate.key )"
# svccfg -s $SVC setprop certificate/ca/pem_value \
  = astring: "$(cat /path/to/issuer/certificate.crt )"
# svcadm refresh $SVC
# svcadm restart -sr $SVC

由于 SMF 依赖项,重新启动 svc:/system/identity:cert 也会启动 svc:/system/webui/server

另请参见

sstore(1)libsstore(3LIB)analytics(5)analytics(7)attributes(7)ssid(7)sstore(7)sstoreadm(1)svcadm(8)

附注

可以使用 svcadm 命令对 sstored 服务执行管理操作,例如启用、禁用或重新启动服务。