问题标签 [aspnet-contrib]

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 投票
1 回答
382 浏览

asp.net - 使用 AspNet.Security.OpenIdConnect.Server (OIDC) 的中央授权和身份验证端点

我正在使用 Visual Studio 2015 Enterprise Update 1 和 ASP.NET 5 rc1-final 来构建一个端点,该端点会发出并使用 JWT 令牌,如此所述。在这种方法中,我们有一个“全部完成”的项目——该项目使用 OIDC 发布令牌,使用 JWT 不记名身份验证来验证它们,然后使用 Authorize 属性保护对各种控制器的访问——所有这些都在同一个项目中。

现在我们想通过创建一个发布和验证令牌的 OIDC 授权和身份验证端点来重构此解决方案。然后,我们需要“n”个额外的端点,这些端点依赖于该 OIDC 端点作为认证令牌的中央机构。这将使我们能够在我们不断增长的服务主干上建立额外的端点,而无需将授权和身份验证编码到每个端点中。

虽然我了解如何配置 OIDC 以从一个端点发出令牌,但尚不清楚如何将我的另一个端点指向 OIDC 端点以进行令牌身份验证。目前,JWT 身份验证和 OIDC 在中间件“配置”方法中同时配置,所以我猜也许在所有从属站点上,我会在调用 app.UseJwtBearerAuthentication 时使用一小段代码,只是将 JWT 中间件指向 OIDC 端点?如果是这种情况,app.UseJwtBearerAuthentication 使用 OIDC 来允许 IdentityModel 使用 HTTP 仍然会发生一些神奇的事情,所以我不清楚在从属服务器上是否也需要这个。

任何关于如何建立单个 OIDC 授权和身份验证端点然后让“n”个从属端点指向该端点以对 JWT 令牌进行身份验证的任何建议都将不胜感激。

0 投票
1 回答
2152 浏览

authentication - 如何使用/验证 AspNet.Security.OpenIdConnect.Server (RC1) 颁发的令牌?

我已经从有关如何实施 AspNet.Security.OpenIdConnect.Server 的帖子中了解了所有信息。

精确点,你听到了吗?;)

我已经设法将代币发行和代币消费分开。我不会显示“身份验证服务器端”,因为我认为该部分已设置完毕,但我将展示如何在自定义 AuthorizationProvider 中构建身份验证票证:

并在身份验证服务器上启动:

果然,当我收到这个 HTTP 请求时,我确实得到了一个访问令牌,但我不确定该访问令牌是否包含资源服务器期望的所有数据。

现在,在资源服务器端,我正在使用 JWT 承载身份验证。在启动时,我有:

当我向资源服务器发出这个 HTTP 请求时,我得到一个 401 Unauthorized:

有路由的控制器用没有参数/api/user/myroles的平原装饰。[Authorize]

我觉得我在身份验证和资源服务器中都缺少一些东西,但不知道它们是什么。

询问“如何验证 AspNet.Security.OpenIdConnect.Server 颁发的令牌”的其他问题没有答案。我会很感激这方面的一些帮助。

另外,我注意到示例提供程序中注释掉了 OAuth Introspection,并且在某处读到 Jwt 不会很快得到支持。我找不到给我 OAuth Instrospection 的依赖项。


更新我已经包含了我的两个startup.cs,来自每个身份验证和资源服务器。是否有任何错误会导致资源服务器始终为每个请求返回 401?

在整个过程中,我没有真正触及的一件事是签约。它似乎在身份验证服务器上为 JWT 生成签名,但资源服务器(我猜)不知道签名密钥。回到 OWIN 项目,我必须创建一个机器密钥并放在两台服务器上。

0 投票
1 回答
930 浏览

asp.net - 单元测试 AspNet.Security.OpenIdConnect.Server (OIDC/ASOS)

我正在使用 Visual Studio 2015 Enterprise Update 1 和 ASP.NET 5 rc1-final 来构建一个端点,该端点发出和使用 JWT 令牌,如这里详细描述的那样。

现在我开始进行单元测试,在测试 AspNet.Security.OpenIdConnect.Server (OIDC/ASOS) 的某些方面时遇到了摩擦。具体来说,一些 ASOS 原语,例如 LogoutEndpointContext 不是抽象的,因此它们不容易被模拟。通常我只会对这些类型进行假冒,但 DNX 似乎不支持假冒,至少现在还不支持。这些类型也是密封的,所以我不能专门化它们。

这迫使我编写一些脆弱的反射代码来构造这些密封的 ASOS 类型。这是一个需要 LogoutEndpointContext 的示例 XUnit 测试,因此我可以测试我的 OpenIdConnectServerProvider 事件处理(在这种情况下,非 POST 注销应该引发异常);注意我为了实例化 LogoutEndpointContext 必须做的反射:

任何关于如何更好地实例化/模拟/伪造/专门化像 LogoutEndpointContext 这样的密封 ASOS 类型的建议都将非常感激。

0 投票
2 回答
4748 浏览

asp.net - 在 asp.net vnext 上使用不记名令牌身份验证刷新令牌

我有一个使用 asp.net vnext 的 angularJS 应用程序,它使用 JwtBearerAuthentication 进行身份验证。为了验证应用程序,我使用AspNet.Security.OpenIdConnect.Server。当我登录时,我收到一个 json 响应,其中包含可用于授权请求的 access_token。我也想收到刷新令牌。这怎么可能?

启动.cs

授权提供者.cs

AngularJS 登录代码

0 投票
1 回答
2354 浏览

authentication - ASP.NET 核心 1.0。Bearer Token,无法访问自定义声明

我正在尝试使用 ASP.NET Core 1.0 为 SPA 设置承载身份验证。我几乎可以使用 OpenIdConnect Server 为 JwtToken 工作,但有一个问题是我的自定义声明没有随令牌一起返回。

我的 Startup.cs 身份验证逻辑如下:

access_token 和 refresh_token 都成功生成,当在 Authorization 标头系统中传递 access_token 时,将请求视为已授权。

唯一的问题是除了 NameIdentifier 之外的所有声明都没有通过。

我使用以下代码接收我对经过身份验证的请求的声明:

我的声明未通过或未从令牌中提取的原因可能是什么?

0 投票
1 回答
840 浏览

authorization - 编写可通过 asp.net 身份用户和不记名令牌访问的单个 API

我已经创建了 asp.net mvc 6 应用程序并使用实体框架 7 配置了 asp.net 身份用户,工作正常。然后我添加 AspNet.Security.OpenIdConnect.Server了也可以正常工作的令牌提供程序服务器。

然后我创建了一个 api 控制器,如下所示:

问题:我想以这样的方式配置授权,以便不记名令牌或 asp.net 身份用户有效(并且属于某个角色),我想允许用户访问 API。

这是我在 startup.cs 中尝试的:

然后,如果我添加[Authorize(Policy="API")]到我的 api 控制器,那就只尊重不记名令牌,而不是身份用户。

任何帮助表示赞赏!

0 投票
1 回答
568 浏览

oauth-2.0 - 使用 AspNet.Security.OpenIdConnect.Server 获取用户的配置文件

最近我花了一些时间研究 AspNet.Security.OpenIdConnect.Server。我使用MVC 示例作为我的客户端/服务器应用程序的代码库。

我现在需要实现的是从外部提供商 (Google) 获取用户的个人资料信息并将信息保存到服务器的数据库中。

获取和保存配置文件信息的正确位置以及实施它的正确方法是什么?

0 投票
2 回答
8780 浏览

asp.net-core - How do you troubleshoot AspNet Core missing dependencies?

So I made a change to my project.json which caused a re-restore which is coming up with a bunch of unresolvable dependencies. How do you figure out what is going on here? This was definitely working as I wrote quite a bit of code against this project.json file.

0 投票
1 回答
637 浏览

authentication - ASP.NET 5 OpenIdConnect Refresh_Token

我正在尝试创建token一个refresh_token

关注@Shaun Luttin 的帖子回答

当我请求这样的令牌时

我得到这样的令牌

它工作正常,但没有refresh_token属性初始化。我怎么能得到那个?

0 投票
1 回答
2136 浏览

c# - AspNet.Security.OpenIdConnect.Server。刷新令牌

据我所知,ASOS 支持开箱即用的刷新令牌。要获得刷新令牌,我需要为offline_access我的令牌请求添加范围。但是它们存储在哪里?如何更改令牌的到期日期或将其删除?如何确定为哪个用户创建刷新令牌?