- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我确信答案是显而易见的,但目前我还不知道。
当我的代码尝试调用/connect/userinfo 并且消息是“insufficient_scope”时,我得到了 403。
上面的代码行检查 JWT 中的范围声明,并希望找到“openid”的值以使/connect/userinfo 端点正常工作。
在我的 JWT 中,如果它有类似的东西:
"scope": "openid"
...那么端点就可以了。相反,如果我有:
"scope": ["openid", "email", "profile"]
...然后它失败了。
我是否应该永远没有范围声明的列表/数组?也许我在某处缺少配置设置?
用代码更新
对不起。当然代码会让问题更清楚。
客户端存储
public ClientStore()
{
_clients = new List<Client>
{
new Client
{
AlwaysSendClientClaims = true,
RequireConsent = false,
Enabled = true,
ClientName = @"MVC Client",
ClientId = @"mvc",
PostLogoutRedirectUris = new List<string>
{
"http://localhost:8080/index.html"
},
RedirectUris = new List<string>
{
"http://localhost:8080/loginCallback.html"
}
}
};
}
范围商店
public ScopeStore()
{
var scopes = new List<Scope>
{
StandardScopes.OpenId,
StandardScopes.Profile,
StandardScopes.Email,
StandardScopes.Address,
StandardScopes.AllClaims,
StandardScopes.RolesAlwaysInclude
};
_scopes = scopes;
}
Startup.cs
var certFile = env.ApplicationBasePath + "/cert.pfx";
app.Map("/core", core =>
{
var factory = new IdentityServerServiceFactory();
var configuration = new Configuration();
configuration.AddJsonFile("config.json");
var userService = new EndUserService(configuration.Get("ConnectionString"));
factory.UserService = new Registration<IUserService>(resolver => userService);
var scopeStore = new ScopeStore();
factory.ScopeStore = new Registration<IScopeStore>(resolver => scopeStore);
var clientStore = new ClientStore();
factory.ClientStore = new Registration<IClientStore>(resolver => clientStore);
var cert = new X509Certificate2(certFile, "test");
var idsrvOptions = new IdentityServerOptions
{
CorsPolicy = CorsPolicy.AllowAll,
Factory = factory,
RequireSsl = false,
SigningCertificate = cert,
LoggingOptions = new LoggingOptions() {
EnableWebApiDiagnostics = true,
EnableHttpLogging = true
}
};
core.UseIdentityServer(idsrvOptions);
});
Login.html
var config = {
client_id: "mvc",
redirect_uri: "http://localhost:8080/loginCallback.html",
response_type: "id_token token",
scope: "openid email profile",
authority: "http://localhost:44319/core",
post_logout_redirect_uri: "http://localhost:8080/index.html"
};
var mgr = new OidcTokenManager(config);
更新 #2
好吧,这是 Mono 与 Windows 的对比。在 Windows 中工作正常,在 Mono 中损坏。显然已知问题:https://github.com/IdentityServer/IdentityServer3/issues/1373#issuecomment-104756822
最佳答案
事实证明,Microsoft 的 JWT 库在解释 JWT 声明时存在一个错误。此处描述:https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/pull/153
等待该拉取请求被接受或以其他方式解决问题。
关于openid - Thinktecture "insufficient_scope"错误。单一范围声明与范围列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30382464/
我上周正在研究这个主题,不幸的是我无法弄清楚。我了解身份验证和授权之间的区别。 我将感谢有关该主题的任何指导。 我一般需要的是为几个由 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
我是一名优秀的程序员,十分优秀!