问题标签 [openiddict]

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 投票
3 回答
4197 浏览

asp.net-core - UseOpenIdConnectServer 不工作

我刚刚将我的 dotnet core webapi 应用程序从netcoreapp1.0更新为netcoreapp2.0。我正在使用 openiddict 基于此示例进行身份验证和授权。

配置服务方法:

配置方法:

AuthorizationProvider类:

以下代码不起作用:

它说“IApplicationBuilder”不包含“UseOpenIdConnectServer”的定义,并且找不到接受“IApplicationBuilder”类型的第一个参数的扩展方法“UseOpenIdConnectServer”(您是否缺少 using 指令或程序集引用?)

我该如何解决?添加自定义提供程序的替代方法是什么?

0 投票
1 回答
469 浏览

oauth - 过期后刷新令牌吊销

我在“刷新令牌”过期后撤销它时遇到问题。我有一个标准表“OpenIddict Tokens”,其中 openiddict 存储令牌。在我配置 OpenIddict 的 Startup 类中,我设置了:

收到令牌后,/connect/token我立即尝试刷新我的令牌。我收到“指定的刷新令牌不再有效”错误,我注意到在数据库中仍然有关于过期刷新令牌的注释。

它应该留在那里还是应该从数据库中删除?

0 投票
1 回答
693 浏览

asp.net-core - Openiddict 隐式流令牌过早过期

我的 openiddict 配置为

当我在本地测试时,令牌似乎与上面指定的一样长,但在生产(Windows Server 2016 IIS 10)上它过早过期(大约 1 小时)。netcore1 和 netcore2 都是这种情况。我知道我可以选择进行静默令牌更新,但现在想避免该过程。这种行为有什么已知的原因吗?

0 投票
1 回答
1313 浏览

authentication - 为什么 OpenIddict 中有很多身份验证流程?

我是 .Net Core WebAPI 身份验证的新手。我发现 OpenIddict 是一种易于使用的身份验证服务,但在我开始使用它之前,我注意到 GitHub 中有具有不同身份验证流程的示例。我找不到有关这些身份验证流程的任何文档,因此我想到了以下问题。如果有人可以提供有关该领域的见解,我将不胜感激。GitHub 网址:https ://github.com/openiddict/openiddict-core

  1. 为什么会有不同的流程..使用哪一个?我猜如果是这样的话,每个流程都适合不同的应用程序性质,

    一个。每个流程的优缺点是什么?

    湾。是否有任何最佳实践或指南可帮助确定适合该特定应用程序的正确选项(身份验证流程)?

提前致谢。

0 投票
1 回答
881 浏览

.net - openiddict 密码/刷新流 Microsoft.AspNetCore.Authorization.DefaultAuthorizationService[2] 用户授权失败:(null)

我在尝试配置 PasswordFlow/Refresh 示例时被困了几天,需要一些帮助来解决我的问题。

我尝试了 Kevin Chalet 在 7 月 19 日提出的使用 OAuthValidationDefaults.AuthenticationScheme 的建议

我能够成功登录,但是当我尝试进行 GET 调用 /api/company 并为用户获取此授权失败时。我升级到 .NET Core 2.0 并使用 Angular 2.0(带有 angular-jwt)。我正在获取访问令牌和刷新令牌。我能够在浏览器上解码令牌。我将非常感谢您的帮助!

我还添加了 UserClaimsPrincipalFactory.cs

这是我正在调用的 api。(没什么特别的)

当我的 /api/user 被调用时记录。

0 投票
1 回答
414 浏览

openiddict - 以另一种方式将 OpenIddict 实体注册到 DbContext

是否有另一种方法可以将所需的实体集注册OpenIddict到一个DbContextexcept 调用 options.UseOpenIddict();services.AddDbContext<OpenIdDictDbContext>(options => {...})

我有这种方法的麻烦,因为我有更多DbContexts,我想分享DbContextOptions

在 .Net Core 2 中,如果您可以DbContextOptions对 all使用 nongeneric,DbContexts或者您必须DbContextOptions<T>对 all使用 nongeneric DbContexts。所以,如果可能的话,我想要第一种方法。

0 投票
1 回答
2608 浏览

.net - 为 OpenIddict MVC Core 2.0 设置自定义范围

我对 MVC 中的 OpenId 和 auth 相当陌生,并创建了一个 OpenIddict 身份验证服务器和客户端 mvc 应用程序,如授权代码流示例中所示。https://github.com/openiddict/openiddict-samples 我需要companyId从我的应用程序用户添加到我的声明中,并且我正在尝试找出所需的步骤。

到目前为止,我发现了以下内容:

我通过添加新的声明AuthorizationController.CreateTicketAsync创建一个新的 ClaimsPrincipal 来添加声明和范围,然后通过调用添加范围ticket.SetScopes

我将目的地添加到我在 AuthorizationController.CreateTicketAsync 中的声明中,以将其添加到 IdentityToken。

我添加检查范围并有条件地在 UserInfoController 中添加声明

在我的客户端中调用 AddOpenIdConnect 时,我将范围添加到我的选项中,以便将其添加到请求中。

这似乎按预期工作。

有人可以对这些步骤发表评论,或者指出一个显示这种特定实施方式的示例吗?(这似乎很基本,但我不知道我在这个过程中是否做了一些非常糟糕的事情)。

0 投票
1 回答
403 浏览

asp.net - ASP.NET Core 2.0 OpenIdDict with Facebook mobile application

Could you please provide me an example or description how to return an access token to the mobile application with facebook login.

Here is the workflow that I want to achieve:

  1. Mobile user registers via Facebook
  2. User is registered on the server database after successful Facebook login
  3. OpenIdDict Access Token is returned from server to the mobile application

I have already implemented local user password workflow but cannot find any example of Facebook login via mobile app.

0 投票
2 回答
1189 浏览

.net - 资源服务器 API 上的 OpenIddict MVC 核心 2.0 和 JWT

我一直在设置一个 OpenIdDict authserver 以与我们现有的 mvc core 2.0 Web 应用程序一起使用。在我们的生产应用程序上实现 OpenIdConnect 部分之前,我正在使用代码流并制作了一个测试 mvc webapp 资源服务器。

一切似乎都按预期工作,我可以登录并访问我的资源。

我需要在新的身份验证架构下为我的其余客户端获取 api 承载身份验证。Api 放在同一个资源服务器上。

我已经使用以下方法为 JWT 设置了 OpenIddict:

...添加了 JwtBearer

...并在 AuthorizationController.Exchange 中添加了用于处理密码流令牌请求的代码。

在我的资源服务器 Startup.cs 上,我添加了 AddOpenIdConnect 并添加了signingKey(与我的身份验证服务器上的密钥相同)。

设置完成后,我的资源服务器仍然可以进行身份​​验证并且一切正常,我可以使用 restclient 从我的身份验证服务器获取 jwt 令牌,但是当尝试访问资源服务器上的我的 api 时,它失败了,因为没有承载方案的验证器。

如果我在资源服务器上使用 TokenValidationParameters 中的相同签名密钥添加调用 AddBearerToken ,它实际上可以工作。挑战成功,我可以访问我的资源。

但是我怀疑我的设置远非正确,因为我可以看到,在调用我的 api 时,我的令牌验证正在资源服务器上进行,所以我留下了 2 个问题。

  1. 是否可以让 JwtBearer 中间件将验证转发到我的身份验证服务器?(openidConnect 可以处理吗?)

  2. 是否可以让我的资源服务器转发/通过令牌发出请求也是我的身份验证服务器,这样我的休息 api 客户端就不必处理 2 个服务器?

0 投票
1 回答
603 浏览

c# - 将 ASP.NET Core 1.1 更新到 ASP.NET Core 2.0 后,返回语句 SignIn(ticket.Principal, ticket.AuthenticationScheme); 给出 500 错误

我最近将我的项目从 ASP.NET core 1.1 更新到 ASP.NET core 2.0。我正在使用openiddict进行身份验证。

这是我的控制器,负责请求/响应。

这个退货声明

抛出 500 内部服务器错误。该代码在此返回语句之前完美运行,但在执行此返回语句时出现 500 内部服务器错误。

这是我的文件方法的启动。

这是调试日志