问题标签 [micronaut-security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
26 浏览

micronaut - 令牌传播 - 传播访问令牌而不是 ID 令牌

我有 2 个网络应用程序:

  1. [网关] - 公开受 Auth0 登录 (JWT) 保护的端点
  2. [资源服务器] - 公开受 JWT 保护的端点

所有用户请求都将转到 [Gateway] 端点;并且 [Gateway] 端点的输出是消耗 [Resource Server] 端点的结果。

我已经尝试过本指南,一切看起来都很好,只是,我想传播访问令牌(从 Auth0 接收)而不是 ID 令牌。

问题:

  1. 如何传播访问令牌(从 Auth0 接收)而不是 ID 令牌?
  2. 传播访问令牌是一种不好的做法吗?

提前致谢。

0 投票
2 回答
324 浏览

java - 身份验证为空 Micronaut 3

我有一个 Micronaut 3 应用程序,在使用 JWT 令牌时,检查方法上的 Authentication 属性为空,但是,我需要从 JWT 获取所有角色。

根据 Micronaut 的最新变化

安全规则更改

SecurityRule API 已更改。该方法的最后一个参数是表示用户属性的映射。相反,该参数被替换为对身份验证的引用。这样做的好处是规则现在可以访问登录用户的用户名以及访问便捷方法 getRoles()。

在此处输入图像描述

我登录到应用程序并从身份服务器收到的请求中传递 JWT 令牌,它也具有角色。我错过了什么或犯了什么错误?

配置

在此处输入图像描述

解码 JWT

索赔

0 投票
1 回答
73 浏览

security - 如何使用 Micronaut Security 将未经授权的 WWW-Authenticate 字段添加到响应标头?

使用 Micronaut Security,我希望应用程序使用 WWW-Authenticate 标头字段响应未经授权的请求以进行基本身份验证,如下所示:

是否可以在配置文件(即 application.yaml)中执行此操作?如果不是,您如何建议使用最少的样板来执行此操作?

我当前的安全配置:

谢谢!

0 投票
0 回答
107 浏览

micronaut - 基于用户类型的 micronaut 安全多登录控制器

在我的 Micronaut 应用程序中,我将有两种不同类型的用户,即

这些用户将存储在两个不同的表中。这两个表只有共同的电子邮件 ID。

我想要两个不同的登录控制器,如何实现这个

0 投票
0 回答
146 浏览

jwt - Micronaut openid 身份验证和刷新令牌

我正在使用 micronaut 实现一个 API 网关。网关的职责之一是处理用户身份验证。我想使用外部 IdP 对用户进行身份验证,然后将 JWT 令牌传播到下游服务。我不希望 micronaut 生成自己的令牌,而是希望使用 IdP 生成的令牌。

我的网关服务的安全配置与此处描述的类似: https ://guides.micronaut.io/latest/micronaut-oauth2-okta-gradle-java.html

简而言之:

成功验证后,我将 JWT 作为 cookie 并可以使用它来授权我的请求。直到现在,一切都像魅力一样。

IdP 发行的代币有效期短,这是预期的行为。我希望 JWT 的寿命很短,并使用刷新令牌获得新的。我正在寻找一种在 micronaut 中实现刷新令牌流的方法。

完美的解决方案如下:

  • 成功认证后,JWT 和刷新令牌都作为 cookie 返回,
  • 如果网关收到带有过期 JWT 的请求,它会使用刷新令牌自动获取新请求,
  • 新的 JWT(如果发布了新的刷新令牌)被设置为 cookie。

第一个问题是如何配置 micronaut 以将刷新令牌返回给调用者(就像它返回 JWT 一样)。可以返回由 micronaut 生成的刷新令牌(例如在 cookie 中),但我没有找到让外部 IdP 生成的刷新令牌的方法。

第二个问题是是否可以将 micronaut 配置为自动执行完整的刷新令牌流(这似乎是一个非常标准的问题)。或者也许有另一个库可以用来实现这个目标?

我会很感激任何建议。