Skip to content

Commit

Permalink
* RestService HTTPS configuration details and other minor fixes
Browse files Browse the repository at this point in the history
Signed-off-by: chaoxinhu <chaoxinhu@hotmail.com>
  • Loading branch information
chaoxinhu committed Mar 13, 2020
1 parent ba7ef35 commit 5efe3d8
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 10 deletions.
7 changes: 2 additions & 5 deletions readthedocs/zh_CN/docs/weidentity-endpoint.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,10 @@ WeIdentity提供依托于Endpoint Service而存在的数据授权。授权的详

一个标准的数据授权凭证其CPT ID为101。它的Claim中包括以下内容:

- 授权发起者(fromWeId):表示这个凭证是由哪个WeID所发起的
- 必须和凭证的Issuer一致,且在链上存在
- 授权发起者(fromWeId):表示这个凭证是由哪个WeID所发起的;此发起者必须和凭证的Issuer一致,且在链上存在
- 授权接收者(toWeId):表示这个凭证是由哪个WeID所接收的
- 授权时间(duration):表示此授权的持续时间,单位为毫秒
- 服务地址(serviceUrl):表示此授权的目的服务地址
- 只支持HTTP/HTTPS协议
- 必须是以标准URL形式存储,必须包括主机名、端口及路径
- 服务地址(serviceUrl):表示此授权的目的服务地址。只支持HTTP/HTTPS协议,且必须是以标准URL形式存储,必须包括主机名、端口及路径(如https://127.0.0.1:6010/data-auth/guest)
- 资源ID(resourceId):表示此授权所请求的资源ID,以UUID形式表示

简而言之,调用者必须传入一个CPT101授权凭证,此凭证中包含数据授权的主机地址、资源ID,由Endpoint Service的服务端进行查验,确认凭证合法且服务地址(serviceUrl)已在本服务端后台注册过。查验通过后,Endpoint Service会将请求以RPC请求的形式转向在本服务端注册的各端点后台,并由各后台根据传入的资源ID,返回资源信息。具体的调用方式可以查阅API文档。
Expand Down
2 changes: 1 addition & 1 deletion readthedocs/zh_CN/docs/weidentity-rest-api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1879,7 +1879,7 @@ WeIdentity 数据授权 API
- Value
- Required
* - authToken
- CPT101数据授权凭证
- CPT101数据授权凭证,需通过DataToolUtils.serialize()方式生成
- Y
* - signedNonce
- 签名的Nonce值(当前暂不校验,可任意填入)
Expand Down
37 changes: 33 additions & 4 deletions readthedocs/zh_CN/docs/weidentity-rest-deploy.rst
Original file line number Diff line number Diff line change
Expand Up @@ -90,18 +90,47 @@ Server 的环境要求与 WeIdentity-Java-SDK 的 `环境要求 <./weidentity-in
* 拷贝您 WeIdentity 合约部署者的私钥到 ``keys/priv`` 目录下,并重命名为 ``ecdsa_key``。如果您使用部署工具部署了 WeIdentity 合约,这个文件在 ``output/admin/`` 目录。如果您使用源码部署,这个文件在源代码根目录下。

* 修改 ``dist/conf/application.properties`` ,填入需要打开的监听端口地址(用于 RestServer 监听外来的 HTTP/HTTPS RESTful 请求,默认为 6001/6000,不可被其他程序占用;HTTPS接口默认不开放)。同时,请确认用来调用默认合约部署者私钥的暗语;由于此暗语可直接调用 WeIdentity 合约部署者的私钥,权限较高(详见 \ `RestService API 说明文档 <./weidentity-rest-api.html>`_\ ),因此请您务必对其进行修改
* 修改 ``dist/conf/application.properties`` ,填入需要打开的监听端口地址(用于 RestServer 监听外来的 HTTP/HTTPS RESTful 请求,默认为 6001,不可被其他程序占用

.. code-block:: bash
# HTTP请求端口
# 默认的HTTP/HTTPS请求端口
server.port=6001
# HTTPS请求端口,默认不开放
# 当开启HTTPS时的HTTP请求端口,默认未实现重定向,可忽略
server.http.port=6000
* 如果您需要启用HTTPS,``dist/conf/application.properties`` 中,请将SSL开启,同时配置服务端证书并将证书的详细信息填入以下配置项中。如果您暂时没有合适的证书,当前,Rest Service已经默认提供了一份自签(Self-Signed)证书,其keystore默认密码也已给出。

.. code-block:: bash
# 是否启用HTTPS:默认为否,需要改成true
server.ssl.enabled=true
# 证书的keystore
server.ssl.key-store=classpath:tomcat.keystore
# keystore的访问密码,默认的自签证书密码为123456
server.ssl.key-store-password=
# keystore种类(如JKS,PKCS12)
server.ssl.keyStoreType=JKS
# key的假名
server.ssl.keyAlias=tomcat
.. note::
当前,Rest Service 不论是 HTTP/HTTPS 方式,其访问 IP 均为 6001。出于安全考量,我们暂时未实现在启用 HTTPS 方式时的 HTTP 访问重定向功能。

.. note::
如果您使用了自签证书,且准备通过使用 Postman 作为客户端访问 HTTPS,您需要在 Postman 的设置 File -> Setting -> General 中,手动将 SSL certificate verification 关闭;如果您使用 CA 签名证书,则需要在 Postman 的设置菜单 File -> Setting -> Certificates 中,安装此证书(及其证书链)。

.. note::
关于如何生成您自己的自签名证书,可以参考以下文档:https://hutter.io/2016/02/09/java-create-self-signed-ssl-certificates-for-tomcat/ 。本教程不涉生成 CA 证书的步骤。

* 同时,请在 ``dist/conf/application.properties`` 中确认用来调用默认合约部署者私钥的暗语;由于此暗语可直接调用 WeIdentity 合约部署者的私钥,权限较高(详见 \ `RestService API 说明文档 <./weidentity-rest-api.html>`_\ ),因此请您务必对其进行修改。

.. code-block:: bash
# 合约部署者私钥暗语
default.passphrase=ecdsa_key
* 如果您需要连接使用MySQL,则需要在``dist/conf/weidentity.properties``内修改关于datasource相关的MySQL配置。
* 最后,如果您需要连接使用MySQL,则需要在``dist/conf/weidentity.properties``内修改关于datasource相关的MySQL配置。

2. Server 使用说明
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down

0 comments on commit 5efe3d8

Please sign in to comment.