You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by GitBox <gi...@apache.org> on 2022/01/24 14:35:57 UTC

[GitHub] [apisix] starsz commented on a change in pull request #6127: docs: update the jwt-auth zh version

starsz commented on a change in pull request #6127:
URL: https://github.com/apache/apisix/pull/6127#discussion_r790801984



##########
File path: docs/zh/latest/plugins/jwt-auth.md
##########
@@ -107,6 +115,68 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13
 }'
 ```
 
+### 启用具有 Vault 兼容性的 jwt-auth
+
+有时候在生产中拥有一个集中式密钥管理解决方案,如 `Vault` 是很自然的。您不必每次在您的组织更改部分签署密钥(HS256/HS512 的密钥或 RS256 的 public_key 和 private_key)时更新 APISIX Consumer。或者出于隐私考虑,您不想通过 APISIX admin APIs 使用密钥。APISIX 在这里为您提供了保障,`jwt-auth` 能够引用 Vault 的密钥。
+
+**注意**:对于该集成支持的早期版本,该插件期望存储在 Vault 路径中的密钥名称为「`secret`,`public_key`,`private_key`」其中之一,方可成功使用该密钥。
+
+要启用 Vault 的兼容性,只需要在 `jwt-auth` 插件内添加空的 Vault 对象。
+
+1. 用在 Vault 储存的 HS256 签名密钥来进行 jwt 签名和认证。
+
+```shell
+curl http://127.0.0.1:9080/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+    "username": "jack",
+    "plugins": {
+        "jwt-auth": {
+            "key": "key-1",
+            "vault": {}
+        }
+    }
+}'
+```
+
+这里插件在 Vault 路径(`<vault.prefix from conf.yaml>/consumer/jack/jwt-auth`)中为 Consumer 配置的用户名 `jack` 查找密钥 `secret`,并将其用于后续签名和 `jwt` 验证。如果在同一路径中没有找到密钥,该插件就会记录错误,无法执行 `jwt` 验证。

Review comment:
       I think the statement is not so casual also.

##########
File path: docs/zh/latest/plugins/jwt-auth.md
##########
@@ -107,6 +115,68 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13
 }'
 ```
 
+### 启用具有 Vault 兼容性的 jwt-auth
+
+有时候在生产中拥有一个集中式密钥管理解决方案,如 `Vault` 是很自然的。您不必每次在您的组织更改部分签署密钥(HS256/HS512 的密钥或 RS256 的 public_key 和 private_key)时更新 APISIX Consumer。或者出于隐私考虑,您不想通过 APISIX admin APIs 使用密钥。APISIX 在这里为您提供了保障,`jwt-auth` 能够引用 Vault 的密钥。
+
+**注意**:对于该集成支持的早期版本,该插件期望存储在 Vault 路径中的密钥名称为「`secret`,`public_key`,`private_key`」其中之一,方可成功使用该密钥。
+
+要启用 Vault 的兼容性,只需要在 `jwt-auth` 插件内添加空的 Vault 对象。
+
+1. 用在 Vault 储存的 HS256 签名密钥来进行 jwt 签名和认证。
+
+```shell
+curl http://127.0.0.1:9080/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+    "username": "jack",
+    "plugins": {
+        "jwt-auth": {
+            "key": "key-1",
+            "vault": {}
+        }
+    }
+}'
+```
+
+这里插件在 Vault 路径(`<vault.prefix from conf.yaml>/consumer/jack/jwt-auth`)中为 Consumer 配置的用户名 `jack` 查找密钥 `secret`,并将其用于后续签名和 `jwt` 验证。如果在同一路径中没有找到密钥,该插件就会记录错误,无法执行 `jwt` 验证。
+
+2. RS256 rsa 密钥对, 包括公钥和私钥都存粗在 Vault 中。
+
+```shell
+curl http://127.0.0.1:9080/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+    "username": "kowalski",
+    "plugins": {
+        "jwt-auth": {
+            "key": "rsa-keypair",
+            "algorithm": "RS256",
+            "vault": {}
+        }
+    }
+}'
+```
+
+该插件在 Vault kv 路径(`<vault.prefix from conf.yaml>/consumer/kowalski/jwt-auth`)中为插件 Vault 配置中提到的用户名 `kowalski` 查询 `public_key` 和 `private_key` 密钥。如果没有找到,认证失败。

Review comment:
       Ditto.

##########
File path: docs/zh/latest/plugins/jwt-auth.md
##########
@@ -107,6 +115,68 @@ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f13
 }'
 ```
 
+### 启用具有 Vault 兼容性的 jwt-auth
+
+有时候在生产中拥有一个集中式密钥管理解决方案,如 `Vault` 是很自然的。您不必每次在您的组织更改部分签署密钥(HS256/HS512 的密钥或 RS256 的 public_key 和 private_key)时更新 APISIX Consumer。或者出于隐私考虑,您不想通过 APISIX admin APIs 使用密钥。APISIX 在这里为您提供了保障,`jwt-auth` 能够引用 Vault 的密钥。
+
+**注意**:对于该集成支持的早期版本,该插件期望存储在 Vault 路径中的密钥名称为「`secret`,`public_key`,`private_key`」其中之一,方可成功使用该密钥。
+
+要启用 Vault 的兼容性,只需要在 `jwt-auth` 插件内添加空的 Vault 对象。
+
+1. 用在 Vault 储存的 HS256 签名密钥来进行 jwt 签名和认证。
+
+```shell
+curl http://127.0.0.1:9080/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+    "username": "jack",
+    "plugins": {
+        "jwt-auth": {
+            "key": "key-1",
+            "vault": {}
+        }
+    }
+}'
+```
+
+这里插件在 Vault 路径(`<vault.prefix from conf.yaml>/consumer/jack/jwt-auth`)中为 Consumer 配置的用户名 `jack` 查找密钥 `secret`,并将其用于后续签名和 `jwt` 验证。如果在同一路径中没有找到密钥,该插件就会记录错误,无法执行 `jwt` 验证。
+
+2. RS256 rsa 密钥对, 包括公钥和私钥都存粗在 Vault 中。
+
+```shell
+curl http://127.0.0.1:9080/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+    "username": "kowalski",
+    "plugins": {
+        "jwt-auth": {
+            "key": "rsa-keypair",
+            "algorithm": "RS256",
+            "vault": {}
+        }
+    }
+}'
+```
+
+该插件在 Vault kv 路径(`<vault.prefix from conf.yaml>/consumer/kowalski/jwt-auth`)中为插件 Vault 配置中提到的用户名 `kowalski` 查询 `public_key` 和 `private_key` 密钥。如果没有找到,认证失败。
+
+3. 公钥在 Consumer 配置中,而私钥在 Vault 中。
+
+```shell
+curl http://127.0.0.1:9080/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+    "username": "rico",
+    "plugins": {
+        "jwt-auth": {
+            "key": "user-key",
+            "algorithm": "RS256",
+            "public_key": "-----BEGIN PUBLIC KEY-----\n……\n-----END PUBLIC KEY-----"
+            "vault": {}
+        }
+    }
+}'
+```
+
+这个插件使用 Consumer 配置中的 rsa 公钥,并直接使用从 Vault 中获取的私钥。

Review comment:
       Better to add more descriptions of this way.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org