我遇到问题,而集成外部提供商,即谷歌与Thinktecture身份服务器v3。我得到以下错误:“客户端应用程序不知道或未被授权。 做任何人有任何关于这个错误的想法。Thinktecture Identity server v3谷歌提供商
回答
看起来像客户端(您希望可以使用Google登录的应用程序)未在客户端商店中注册。请问您能否显示您的启动配置?
不是我的问题,但我确实有同样的错误。在下面粘贴我的代码,因为评论无法实现。 – Whoever 2015-02-27 22:56:02
@无论如何,它看起来像在客户端和服务器上的RedirectUri值不匹配。
客户端启动时的RedirectUri属性定义了在身份服务器进行身份验证后将被调用的URI。服务器配置中的RedirectUris定义了可以请求认证的允许URI的列表。客户端启动RedirectUri必须包含在服务器的RedirectUris列表中。
看起来您的客户端的RedirectUri目前正指向服务器的URI。您的客户端是否在端口46289上运行?如果是这样,请尝试将客户端启动时RedirectUri属性的值更改为https://localhost:46289。假设您的客户端真的可以通过https访问,您可能还想尝试修改服务器的redirectUris值以使用https而不是http。
服务器客户商店:
public static IEnumerable<Client> Get()
{
return new[] {
new Client {
Enabled = true,
ClientName = "MVC Client",
ClientId = "mvc",
Flow = Flows.Implicit,
RedirectUris = new List<string>{
"https://localhost:46289/" // client home url
客户端启动:
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
app.UseCookieAuthentication(new CookieAuthenticationOptions {
AuthenticationType = "Cookies"
});
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions {
Authority = "https://localhost:44300/identity",
ClientId = "mvc",
RedirectUri = "https://localhost:46289/", //must be in server's Client.RedirectUris
ResponseType = "id_token",
SignInAsAuthenticationType = "Cookies"
});
尝试了两个,更改重定向uri和https,仍然是相同的错误。在添加客户端相关的nuget包时也注意到,它进行了很多修改,这些修改不在Thinktecture下载的MVC示例中。不知道为什么他们将服务器和客户端代码放在同一个样本中,我甚至不知道服务器端和客户端在哪里开始,可能错过了其他地方重要的东西。猜猜我必须回到没有MVC的更简单的例子重新开始。谢谢你的帮助。 – Whoever 2015-03-02 20:52:45
你看过http://identityserver.github.io/Documentation/docs/overview/simplestOAuth.html上的示例吗?这在同一个解决方案中有一个自己托管的服务器,一个web api和一个控制台。我_think_通过从http://列出的两个“Getting Started”示例中的每一个中选择一个项目,我得到了当前示例(一个自托管服务器和一个IIS中的mvc网站,每个都位于其自己的.sln中) identityserver.github.io/Documentation/docs/,然后做一些微小的调整,例如关闭服务器端的SSL,并按照上文所述调整服务器/客户端配置中的URI。 – BinaryMash 2015-03-03 22:26:43
是的,我刚刚完成了这一步。它有服务器,Web API和客户端。但在MVC示例中,它从服务器跳转到添加cookie和openidconnect软件包,然后将[授权]添加到控制器。我无法分辨服务器端和客户端在哪里开始。我将服务器部分留在一个空项目中,然后创建一个单独的MVC项目,并从cookie/openid步骤开始,并获得该客户端未知错误。不知道我是否正确理解整个事情。我现在要回去检查一下网络托管的服务器示例,也许是一些个人客户端。似乎需要学习很多。 – Whoever 2015-03-04 04:20:21
我已经工作过同样的问题,但只是针对身份验证服务器的身份(谷歌是未来解决我的名单上) 。我看到了这个问题,因为客户端的范围没有在Mvc和Server上设置。要解决我添加了作用域到启动类的问题(MVC的客户端)如下:
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
Authority = "https://localhost:44301",
Scope = "openid profile email roles",
ClientId = "mvc",
RedirectUri = "https://localhost:44300/",
ResponseType = "id_token",
SignInAsAuthenticationType = "Cookies"
});
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "Cookies"
});
}
}
..和也是在客户端的服务器的列表:
public static class Clients
{
public static IEnumerable<Client> Get()
{
return new[]
{
new Client
{
Enabled = true,
ClientName = "MVC Client",
ClientId = "mvc",
Flow = Flows.Implicit,
RequireConsent = true,
RedirectUris = new List<string>
{
"https://localhost:44300/"
},
PostLogoutRedirectUris = new List<string>
{
"https://localhost:44300/"
},
AllowedScopes = new List<string> {
Constants.StandardScopes.OpenId,
Constants.StandardScopes.Profile,
Constants.StandardScopes.Email,
Constants.StandardScopes.Roles
}
}
};
}
}
在相对于OP向Google提出的问题可能值得检查一下您的范围是否与Google开发者控制台中的应用设置支持的范围相关。有一个很好的SO张贴在支持范围在Where can I find a list of scopes for Google's OAuth 2.0 API?
希望帮助:)
我有这个问题。服务器中的RedirectUris条目几乎与在客户端Startup.Configuration中与RedirectUri匹配;除了最后的斜线外。
https://localhost:46289/
是不一样的
https://localhost:46289
当我加斜杠,我的登录页面出现。
我犯了同样的错误...... :) – 2015-12-03 14:16:30
这个匹配是一个精确的字符串匹配(不区分大小写),而不是使用Uri类的更聪明的东西! – Lukos 2016-02-02 11:39:20
就我而言,我是不小心,并改变Startup.cs UseOpenIdConnectAuthentication下的数值(这是什么集成的Web应用程序使用连接到它)当我应该已在客户端改变的值。 Get(),这是服务器配置的允许的客户端。
一旦我解决了这些问题,我能够将客户端和服务器分成两个应用程序,只有一些NuGet包和UseCookieAuthentication/UseOpenIdConnectAuthentication在客户端应用程序中。
如果客户端未启用,重定向URI不匹配列表中的一个(使用不区分大小写的精确匹配),请求的作用域不在允许的作用域列表中,如果该流程请求不符合允许的内容(每个客户端只能有一个)和/或客户端ID不匹配。
- 1. 如何使用ASP.NET身份设置Thinktecture Identity Server v3 beta 1-2?
- 2. Thinktecture隐式流与外部身份提供商(脸谱,谷歌,adfs等...)
- 3. Identity Server V3
- 4. 谷歌Apps域作为OpenID提供商
- 5. 谷歌地图V3丰富的厂商
- 6. Thinktecture IdentityServer v3与WindowsAuth
- 7. AWS Cognito:收到“请提供有效的公共提供商”与谷歌
- 8. 谷歌番石榴供应商示例
- 9. 会话过期问题:Azure Thinktecture Identity Server单点登录
- 10. 从谷歌搜索应用隐藏搜索提供商?
- 11. 谷歌OpenID提供商在Azure上一直失败
- 12. HybridAuth与谷歌提供商在验证时随机返回“invalid_request”
- 13. 谷歌云端点与另一个oAuth2提供商
- 14. Identity Server v3仅作为联合网关
- 15. thinktecture身份识别服务器v3
- 16. MSDAORA提供商
- 17. Thinktecture Identity Server 3:防止未经授权访问WEB API的客户机密
- 18. 如何把谷歌地图v3的fancybox谷歌地图v3
- 19. 扩展服务提供商(提供商)
- 20. GPS提供商不提供
- 21. 谷歌吉斯:提供与参数
- 22. 谷歌电视频道提供
- 23. 谷歌不提供Angular.js应用程序
- 24. 谷歌地图V3错误
- 25. 谷歌地图API V3 2.0.6
- 26. 谷歌日历Api v3 EventDateTime
- 27. GWT +谷歌地图API V3
- 28. 谷歌地图v3 OverlayView.getProjection()
- 29. 谷歌地图API V3 Over_Query_Limit
- 30. 谷歌地图v2与v3
我有同样的问题 – akokani 2015-02-10 15:03:48