- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试让 ASP.Net Core 使用 OpenID Connect 对 Thinktecture V2 进行身份验证(我们当前需要 WS-Trust,因此无法升级)。
我的配置如下
app.UseCookieAuthentication(new CookieAuthenticationOptions());
X509Store certStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);
certStore.Open(OpenFlags.ReadOnly);
var cert = certStore.Certificates.Find(X509FindType.FindByThumbprint, "CertThumbprint", false);
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
RequireHttpsMetadata = false,
ClientId = _config["OpenID:ClientId"],
ClientSecret = _config["OpenID:ClientSecret"],
Authority = _config["OpenID:Authority"],
ResponseType = OpenIdConnectResponseType.Code,
PostLogoutRedirectUri = _config["OpenID:PostLogoutRedirectUri"],
SignInScheme = "Cookies",
CallbackPath = "/signin-oidc",
TokenValidationParameters = new TokenValidationParameters()
{
IssuerSigningKey = new X509SecurityKey(cert[0]),
},
Configuration = new OpenIdConnectConfiguration
{
Issuer = "https://identityserver/IdentityServer/issue",
AuthorizationEndpoint = "https://identityserver/IdentityServer/issue/oidc/authorize",
TokenEndpoint = "https://identityserver/IdentityServer/issue/oidc/token",
UserInfoEndpoint = "https://identityserver/IdentityServer/issue/oidc/userinfo",
}
});
配置.json
"OpenID": {
"ClientId": "Test",
"ClientSecret": "{6DD502AB-2AB1-4028-BD4A-85C91790EC7B}",
"Authority": "https://identityserver/IdentityServer/issue/oidc",
"PostLogoutRedirectUri": "https://localhost:44353/" }
当我尝试进行身份验证时,出现以下异常:
HttpRequestException:响应状态代码不表示成功:400(错误请求)。
来自 thinktectureIdentityServer.svclog 的跟踪是
如果有人可以提供任何帮助,我们将不胜感激。
最佳答案
我通过处理 OnAuthorizationCodeReceivedEvent 并手动处理代码兑换解决了上述错误,其中我添加了基本授权 header 来授权客户端。
new OpenIdConnectOptions
{
...
Events = new OpenIdConnectEvents
{
OnAuthorizationCodeReceived = async context =>
{
context.HandleCodeRedemption();
var requestMessage = new HttpRequestMessage(HttpMethod.Post, context.Options.Configuration.TokenEndpoint);
requestMessage.Content = new FormUrlEncodedContent(context.TokenEndpointRequest.Parameters);
var authString = string.Format("{0}", Convert.ToBase64String(Encoding.ASCII.GetBytes(_config["OpenID:ClientId"] + ":" + _config["OpenID:ClientSecret"])));
requestMessage.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", authString);
var responseMessage = await context.Backchannel.SendAsync(requestMessage);
responseMessage.EnsureSuccessStatusCode();
var tokenResonse = await responseMessage.Content.ReadAsStringAsync();
var jsonTokenResponse = JObject.Parse(tokenResonse);
context.TokenEndpointResponse = new OpenIdConnectMessage(jsonTokenResponse);
}
}
...
});
为了进行最终调用来检索 UserInfo,我必须对身份服务器进行更改,以在响应中包含与 Id token 中的主题相匹配的主题。这涉及更新 UserInfoController 以在 Get 方法中添加声明。
关于asp.net-core - 配置 ASP.Net Core 以使用 OIDC 针对 Thinktecture V2 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39455776/
我上周正在研究这个主题,不幸的是我无法弄清楚。我了解身份验证和授权之间的区别。 我将感谢有关该主题的任何指导。 我一般需要的是为几个由 apis 驱动的网站实现单点登录,这些网站也应该处理身份验证。用
集成外部提供商(即Google与Thinktecture Identity Server v3)时出现问题。出现以下错误:“客户端应用程序未知或未获得授权。” 是否有人对此错误有任何想法。 最佳答案
我开始在我的项目中使用 ThinkTecture.IdentityModel,但我遇到了一个严重的问题。请帮助我。 错误 1“类型‘System.IdentityModel.Tokens.Securi
我在 IdentityServer 中设置了以下客户端: new Client { ClientName = "My web application", Enabled = true,
在我的依赖方应用程序 (ASP.NET MVC4) 中,我有一个注销链接,可以让我退出 IdentityServer。我正在登陆它的“成功注销”页面,其中包含返回我的应用程序的链接。我想要做的是单击
我无法从 Thinktecture 授权服务器获取访问 token 。成功获得授权代码后,我尝试向 token 端点发出 POST 请求,但总是收到 400 Bad Request 和此响应:消息:“
我确信答案是显而易见的,但目前我还不知道。 当我的代码尝试调用/connect/userinfo 并且消息是“insufficient_scope”时,我得到了 403。 https://github
我正在尝试使用 Thinktecture 示例构建示例 Web 应用程序 ResourceAuthorization来自 github。 现在我在用授权属性装饰的 Controller 中有一个 Ac
我正在使用 thinktecture identityserver安全 token 服务我正在尝试设置一个场景,其中我有一个使用 WCF 服务的客户端。我被困在遇到下一个错误的地方: MessageS
如 leastprivilege 中所述,有两种方法可以使用 Thinktecture.IdentityModel 设置声明授权检查。一种是设置过滤器。另一种是为要检查的 Action 添加属性。 我
如何在Thinktecture IdentityServer v3中启用日志记录? 我目前正在得到一个通用错误页面,说“有一个意外错误”。 我能够弄清楚,ErrorPageFilterAttribut
Thinktecture IdentityServer V3 是否支持 SAML 还是仅支持 OAuth? 最佳答案 IdentityServer v3 支持任何与 Katana 兼容的 Owin 中
我有一个现有的数据库,其中包含用户凭据以及这些用户凭据可以访问的应用程序的 map 。在身份服务器中,我将每个应用程序设置为客户端,并且用户可以成功进行身份验证。但是,任何用户都会获得任何应用程序的授
我正在制作 Thinktecture IdentityServer v3 的演示。目的是让身份服务器作为它自己的网站在 Azure 网站下运行。 将会有其他(多个)Azure 网站使用身份服务器对用户
我想使用 ASP.NET SimpleMembership 对使用我的 WebAPI 的用户进行身份验证。 Thinktecture 有一个很棒的身份验证库,名为 Thinktecture.Ident
我正在使用 Thinktecture.IdentityServer.v2 应用程序为几个内部应用程序执行 SSO,但我想为每个应用程序自定义登录页面以获得更流畅的用户体验。我似乎找不到办法做到这一点。
我正在尝试遵循简单指南 mvcGettingStarted .现在,我已经实现了 GoogleAuthentication 和 FacebookAuthentication 提供程序,一切都按预期工作
你好,我一直在努力弄清楚如何将 IdentityServer3 配置为一个 Multi-Tenancy 联合提供程序,它可以转换和丰富从 ADSF、Google+、Microsoft 帐户返回的声明。
我有几个仍在开发中的 mvc 应用程序,它们使用带有 SimpleMembership 的表单来注册和验证用户,这些应用程序使用相同的数据库,并且我从简单的成员资格到 UserProfile 表周围都
我正在 Windows Server 2008 R2 Standard 上的 qa 环境中运行 thinktecture IdentityServer v2 以及两个依赖方。 IdentityServ
我是一名优秀的程序员,十分优秀!