问题标签 [identitymodel]
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.
asp.net - 将事件侦听器附加到 Microsoft.IdentityModel.Logging
这是一个使用框架 4.7 的 asp.net 应用程序。
我正在尝试在 asp.net 应用程序中附加到 Microsoft.IdentityModel.Logging.IdentityModelEventSource.Logger(我在 OWIN 启动类中使用 OpenIdConnect,我遇到了问题,希望附加到此记录器可能会给我一些线索)。
在我的 OWIN Startup 类中,在 Configuration() 方法中,我有以下内容:
在我的 Listener_EventWritten 方法中,我有以下内容:
此方法会触发很多次,但“e.Message”始终为空。我究竟做错了什么?
identityserver4 - 带有“native.hybrid”客户端的 WinFormsSample 不再起作用?
如果我将此示例中的客户端更改为“native.hybrid” https://github.com/IdentityModel/IdentityModel.OidcClient.Samples/tree/master/WinFormsWebView
并设置 Flow = OidcClientOptions.AuthenticationFlow.Hybrid
然后登录到 IS4 工作(延迟 5 秒后),但我的默认 Web 浏览器中出现了一个新的登录表单。
使用客户端“interactive.public”可以正常工作。我的问题是我的原生寡妇应用程序应该使用哪个流程?我的意思是它是“OpenID Connect 混合流程”,请参阅https://identityserver4.readthedocs.io/en/latest/topics/grant_types.html
如果使用混合流,如何适应这个样本?
identityserver4 - 使用 Identity4 和 OidcClient 的授权代码流
对于 Winforms 桌面应用程序,我将使用 PKCE 的授权代码流。作为身份提供者,我使用IdentityServer和客户端库 OicdClient。下一步我必须决定使用哪个浏览器进行用户登录:
对于 SystemBrowser 来说,流程的简单/清晰的实现。对于 Extended WebBrowser 来说,有些用户可能没有 SystemBrowser。但是 WebBrowser 是一个旧的 IE 版本?是否允许用于安全身份验证?
尽管如此,我还是尝试了“Extended WebBrowser”示例,并偶然将它集成到我的原型环境中,并使用自己的 IS4 服务器。因此,我需要对代码流和重定向有所了解。我已经用纯 .Net 类实现了这个授权代码流,但是使用 OicdClient 让我有点困惑(一开始就像一个黑盒子)。
我的问题是重定向如何与这个库一起工作,谁负责重定向,谁负责接收带有代码的重定向(以交换访问令牌)?
代码流包含以下步骤(没有详细信息,如 clientID、PKCE ...):
- 向 IS4 发送代码请求
- 带有登录页面的 IS4 响应(显示在浏览器中)
- 成功登录后 IS4 发送到重定向 URL 的代码
- HttpListener 使用代码接收此重定向,并且
- 使用代码向 IS4 发送请求以接收访问令牌
使用 OidcClient 并使用自动模式:
这对我来说太神奇了。只有调用 LoginAsync() 才能使其工作......
重要的一点似乎是带有 IBrowser 接口的选项的 Browser 属性及其对该方法的实现:
如果我尝试映射到流程步骤:
- 登录页面:OpenBrowser(options.StartUrl);
- 重定向将由 IS4 完成?示例中的 SystemBrowser 不执行此操作。
- 接收代码:await listener.WaitForCallbackAsync();
1 和 5 可能是由 OicdClient 完成的。这个例子很清楚,需要确认重定向是由IS4完成的。
另一个示例扩展 WebBrowser中的实现
- 完成:browser.Navigate(options.StartUrl);
- 由 IS4 重定向
- 接收事件句柄中的代码:NavigateError ???
这里有什么问题吗?在 IS4 上调用 AccountController.Login 来调用 /connect/authorize/callback? 使用redirect_uri。但这并没有出现在 BeforeNavigate2 中。相反,NavigateError 事件出现在结果设置为:
identityserver4 - 使用 Identity4 和 OidcClient 的授权代码流的 netstandard 示例
是否有任何用于使用 Identity4 和 OidcClient 的授权代码流的 netstandard 2.0 示例?像仅在 .net 核心中的SystemBrowser
angular - 如何从 asp.net core 3.0 / angular 应用程序验证用户并授权该应用程序使用 IdentityServer4 进行 api 访问
我已经使用IdentityModel.OidcClient和IdentityServer4为 WinForms 应用程序实现了这个任务。下一个任务是为 Angular 做这件事。ID4 的文档说,本机应用程序和 SPA 可以使用相同的流程进行处理,即“授权代码”流程作为交互式客户端。那么是否可以使用 Angular 中第一个实现的 dll(.net 标准 2.0)?它使用 OidcClient 在系统浏览器中登录,接收带有代码的重定向 uri,最后从代码中获取访问令牌。
或者我应该使用 OAuth2.0 的 JavaScript 实现,参见oidc-client.js
c# - .NET 生成无效的 JWT 令牌
我正在使用 IdentityModel.Tokens.Jwt 在我的 WindowsService 中生成 JWT 令牌,如下所示:
然后,我正在编写该令牌JwtSecurityTokenHandler
并将其发送到 WebAPI 控制器的请求中:
在 API 方面,我正在尝试验证令牌:
这会引发以下错误:
IDX12741:JWT:'[PII 已隐藏。有关更多详细信息,请参阅 https://aka.ms/IdentityModel/PII。] '必须具有三个段 (JWS) 或五个段 (JWE)。'
还有一个生成令牌的例子,它实际上看起来像一次发送的两个令牌,这让我感到困惑:
有什么建议吗?
c# - 使用带有 IdentityModel 4.1.1 的刷新令牌请求访问令牌
我正在为 OAuth2.0 使用 IdentityModel 4.1.1 现在,我在创建 TokenClient 实例期间卡住了,该实例用于使用刷新令牌请求新的访问令牌。
这是我正在做的代码,
IdentityModel4.1.1 pkg提供的TokenClient类下面,
上面的类表示需要将 HttpMessageInvoker 作为第一个参数传递,但我对此完全置若罔闻。我还提到了 IdentityModel文档,但没有得到任何线索
asp.net-mvc - 找不到 IdentityServer4 的 DiscoveryClient
尝试访问发现客户端以访问其他端点并遵循 http://docs.identityserver.io/en/aspnetcore1/endpoints/discovery.html
在 .Net 7.5 MVC 应用程序中安装了 IdentityModel nuget 包。但是找不到DiscoveryClient
。
有什么变化Identitymodel
吗IdentityServer4
此外,无法找到“Tokenclient”的参数。
c# - IdentityModel - RequestClientCredentialsTokenAsync
当我从单元测试调用它时,这种RequestClientCredentialsTokenAsync
生成令牌(oauth2)的方法对我来说很好,但是从 API MVC .Net Framework 4.6.1 我有这个异常:(对不起,异常是法语)
<Error>
<Message>
Une erreur s'est produite lors de l'envoi de la demande.
</Message>
<ExceptionMessage>
Une erreur s'est produite lors de l'envoi de la demande.
</ExceptionMessage>
<ExceptionType>System.InvalidOperationException</ExceptionType>
<StackTrace>
à JwtBearerAuthentication.JwtAssertionTokenManager.AcquireAccessToken() dans C:\Users\S851029\source\repos\Sources\AF.EFormSignature.JwtBearerAuthentication\JwtAssertionTokenManager.cs:ligne 55 à JwtBearerAuthentication.JwtAssertionTokenManager.GetAccessToken(Boolean forceRefresh) dans C:\Users\S851029\source\repos\Sources\AF.EFormSignature.JwtBearerAuthentication\JwtAssertionTokenManager.cs:ligne 28 à AF.EFormSignature.Web.Controllers.IdentiteNumeriqueController.RecuperationStatutIdentite() dans C:\Users\S851029\source\repos\Sources\AF.EFormSignature.Web\Controllers\IdentiteNumeriqueController.cs:ligne 72 à lambda_method(Closure , Object , Object[] ) à System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters) à System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments) à System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary
emplacement précédent au niveau duquel l'exception a été levée --- à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)à System.Web.Http.Filters .AuthorizationFilterAttribute.d__2.MoveNext() --- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée --- à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) à System.Web.Http.Controllers.ExceptionFilterResult.d__0.MoveNext() 出现错误。Une erreur s'est produite lors de l'envoi de la demande。System.Net.Http.HttpRequestException → System.Runtime。CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)à IdentityModel.Client.HttpClientTokenRequestExtensions.d__7.MoveNext() 发生错误。无法从服务器远程 System.Net.WebException à System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult, TransportContext& context) à System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar) 发生错误。Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement au-delà d'une certaine durée ou une connexion établie a échoué car l'hôte de connexion n'a pas répondu 171.18.28.75:443 System.Net。 Sockets.SocketException à System.Net。