Elixir:如何使用JOSE.JWK.to_file保存用于Guardian / JWT身份验证的密钥文件

奥莱·斯帕曼(Ole Spaarmann)

我正在使用Guardian设置JWT身份验证。建议使用JWK(Json Web密钥)对JWT进行加密/签名。要生成所说的JWK,我使用JOSE.JWK

由于我的密钥文件可能会存储在源代码管理中,因此我希望对其进行密码保护。密码通过System.get_env(访问环境变量)传递到elixir应用程序中

我可以生成文件,也可以使用密码读回。但是它在我的配置文件中失败config/dev.exs错误是

**(Mix.Config.LoadError)无法加载config config / dev.exs **(CompileError)config / dev.exs:2:模块JOSE.JWK未加载且找不到

我的dev.exs:

use Mix.Config

# Configure Guardian for JWT Authentication
config :guardian, Guardian,
  allowed_algos: ["HS512"], # optional
  verify_module: Guardian.JWT,  # optional
  issuer: "MyApp",
  ttl: { 30, :days },
  verify_issuer: true, # optional
  secret_key:  System.get_env("GUARDIAN_KEY_PASSPHRASE") |> JOSE.JWK.from_file(System.get_env("GUARDIAN_KEY_FILE")),
  serializer: MyApp.GuardianSerializer

在控制台中,一切正常。所以我想当配置文件被解析时,模块还没有被加载。有办法解决吗?

编辑:它似乎与何时加载模块以及如何以及何时评估和编译配置文件有关。JSON.JWK在匿名函数中包装对的调用,例如:

use Mix.Config

# Configure Guardian for JWT Authentication
config :guardian, Guardian,
  allowed_algos: ["HS512"], # optional
  verify_module: Guardian.JWT,  # optional
  issuer: "MyApp",
  ttl: { 30, :days },
  verify_issuer: true, # optional
  secret_key: fn -> System.get_env("GUARDIAN_KEY_PASSPHRASE") |> JOSE.JWK.from_file(System.get_env("GUARDIAN_KEY_FILE")) end,
  serializer: MyApp.GuardianSerializer
彼得·麦克莱恩

仅Guardian的master分支支持config.exs文件中的功能。发行版本(0.10.x)不支持功能。

该问题正在此处跟踪:https : //github.com/ueberauth/guardian/issues/136您可以在此处查看新代码:https : //github.com/ueberauth/guardian/blob/master/lib/guardian.ex#L292-296,尤其是第294行

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从表示为十六进制二进制的 AES 密钥使用 node-jose 创建 JWK

来自分类Dev

如何使用JWK for ES256 alg验证JWT?

来自分类Dev

如何从JWK密钥集中选择有效的密钥进行Apple登录令牌验证?

来自分类Dev

签名的 JWT 和 JWK 之间的 jose4j 算法不匹配

来自分类Dev

如何从nodejs中身份服务器4的jwk返回中提取公钥?

来自分类Dev

应该使用哪个OAuth 2.0提供程序的JWK来验证OpenID Connect`id_token`?

来自分类Dev

如何使用〜/ .ssh / config文件为GitHub设置基于SSH密钥的身份验证?

来自分类Dev

如何使用〜/ .ssh / config文件为GitHub设置基于SSH密钥的身份验证?

来自分类Dev

如何在Windows 10上使用基于密钥的身份验证共享文件夹?

来自分类Dev

如何确定使用哪个SSH密钥文件对登录进行身份验证?

来自分类Dev

如何使用密钥文件 (PHP / Laravel) 对 SpeechClient V1 进行身份验证

来自分类Dev

如何使用 Python 从带有身份验证密钥的 URL 下载 JSON 文件

来自分类Dev

使用JWT进行身份验证

来自分类Dev

使用gundb进行JWT身份验证

来自分类Dev

使用 Api 密钥的 Web Api 承载 JWT 令牌身份验证在令牌身份验证成功后的连续调用中失败

来自分类Dev

如何使用自动验证设置Vault JWT身份验证?

来自分类Dev

使用JSON密钥文件的身份验证方法:未经授权:GCR登录失败

来自分类Dev

我怎么知道LUKS是使用密码短语还是密钥文件进行身份验证?

来自分类Dev

Apollo Server - 仅使用 Passport-JWT 将身份验证应用于某些解析器

来自分类Dev

使用Oauth的Powershell Exchange EWS脚本身份验证无法使用保存密码哈希文件

来自分类Dev

Ruby on Rails-如何通过HTTPS和基本身份验证保存远程文件

来自分类Dev

使用file_get_contents进行身份验证和访问htaccess保护的文件

来自分类Dev

与Keepass + Putty一起使用SSH密钥身份验证时的sudo身份验证

来自分类Dev

Jenkins ssh密钥可用于经过身份验证的用户

来自分类Dev

使用密钥环自动使用 wget 进行身份验证

来自分类Dev

基本身份验证是基于会话的身份验证,为什么更推荐使用Jwt?

来自分类Dev

如何为Windows SSH设置UNIX的密钥身份验证?

来自分类Dev

使用密钥的扭曲的SSH服务器身份验证

来自分类Dev

使用Django的HMAC身份验证-共享密钥

Related 相关文章

  1. 1

    如何从表示为十六进制二进制的 AES 密钥使用 node-jose 创建 JWK

  2. 2

    如何使用JWK for ES256 alg验证JWT?

  3. 3

    如何从JWK密钥集中选择有效的密钥进行Apple登录令牌验证?

  4. 4

    签名的 JWT 和 JWK 之间的 jose4j 算法不匹配

  5. 5

    如何从nodejs中身份服务器4的jwk返回中提取公钥?

  6. 6

    应该使用哪个OAuth 2.0提供程序的JWK来验证OpenID Connect`id_token`?

  7. 7

    如何使用〜/ .ssh / config文件为GitHub设置基于SSH密钥的身份验证?

  8. 8

    如何使用〜/ .ssh / config文件为GitHub设置基于SSH密钥的身份验证?

  9. 9

    如何在Windows 10上使用基于密钥的身份验证共享文件夹?

  10. 10

    如何确定使用哪个SSH密钥文件对登录进行身份验证?

  11. 11

    如何使用密钥文件 (PHP / Laravel) 对 SpeechClient V1 进行身份验证

  12. 12

    如何使用 Python 从带有身份验证密钥的 URL 下载 JSON 文件

  13. 13

    使用JWT进行身份验证

  14. 14

    使用gundb进行JWT身份验证

  15. 15

    使用 Api 密钥的 Web Api 承载 JWT 令牌身份验证在令牌身份验证成功后的连续调用中失败

  16. 16

    如何使用自动验证设置Vault JWT身份验证?

  17. 17

    使用JSON密钥文件的身份验证方法:未经授权:GCR登录失败

  18. 18

    我怎么知道LUKS是使用密码短语还是密钥文件进行身份验证?

  19. 19

    Apollo Server - 仅使用 Passport-JWT 将身份验证应用于某些解析器

  20. 20

    使用Oauth的Powershell Exchange EWS脚本身份验证无法使用保存密码哈希文件

  21. 21

    Ruby on Rails-如何通过HTTPS和基本身份验证保存远程文件

  22. 22

    使用file_get_contents进行身份验证和访问htaccess保护的文件

  23. 23

    与Keepass + Putty一起使用SSH密钥身份验证时的sudo身份验证

  24. 24

    Jenkins ssh密钥可用于经过身份验证的用户

  25. 25

    使用密钥环自动使用 wget 进行身份验证

  26. 26

    基本身份验证是基于会话的身份验证,为什么更推荐使用Jwt?

  27. 27

    如何为Windows SSH设置UNIX的密钥身份验证?

  28. 28

    使用密钥的扭曲的SSH服务器身份验证

  29. 29

    使用Django的HMAC身份验证-共享密钥

热门标签

归档