【问题标题】:OWIN AuthorizeEndpoint with redirect_uri different than uri of web apiOWIN AuthorizeEndpoint 的 redirect_uri 与 web api 的 uri 不同
【发布时间】:2014-03-07 03:47:38
【问题描述】:

我成功地为 asp.net Web API 使用不记名令牌身份验证,如默认单页应用程序模板中所示。但现在我想使用来自不同站点(不同 url)的相同 Web API。

当我从不同站点向 Web API AuthorizeEndpoint(默认为 /api/Account/ExternalLogin)发出请求时,我收到 error: invalid_request。我想问题出在 redirect_uri 值上,因为将其更改为与 web api 在同一域上运行的站点的值可以解决问题。

应用程序 OAuthAuthorizationServerProvider 中的

ValidateClientRedirectUri 方法不会被触发。因此,根据我在 Katana 源中的搜索,错误来源在 OAuthAuthorizationServerHandler.InvokeAuthorizeEndpointAsync 中。

其他人有同样的问题还是我做错了什么?

【问题讨论】:

  • 我遇到了同样的问题。你找到合适的解决方案了吗?
  • 我没有。最后,我为 OAuthAuthorizationServerProvider 编写了自定义扩展,并使用了该流程而不是隐式授权流程。如果您需要有关此的更多信息,我可以分享。但是后来我注意到了这篇文章:http://www.asp.net/aspnet/overview/owin-and-katana/owin-oauth-20-authorization-server。还没来得及看,但也许有一些有用的东西。

标签: asp.net oauth asp.net-web-api owin asp.net-web-api2


【解决方案1】:

Katana OAuth 中间件并非设计为跨应用程序 - 它主要用于将 OAuth 授权服务器“嵌入”到业务资源中。

如果您想要一个合适的(免费)授权服务器 - 看看这里: https://github.com/thinktecture/Thinktecture.AuthorizationServer/wiki

【讨论】:

  • 感谢您的快速回答。只是为了澄清。无法从另一个应用程序(使用 oauth 隐式流)(使用 facebook 作为身份提供者)获取使用 Katana OAuth 中间件的 Web api 应用程序的访问令牌?
  • 不知道有没有可能。但我当然知道它不是为这个用例设计的。
  • 根本不正确,它在拆分集合和资源 api 时非常有用。
  • 令牌始终用于特定目标,不能在不同的应用程序上重复使用。仅当您使用客户端凭据流并在 sts 中强制目标 url 接受时。
  • 这是真的吗???那么这篇文章是关于stackoverflow.com/a/21358918/1129978
【解决方案2】:

不记名令牌似乎是声明哈希的哈希,它是您的应用程序本地的。

我们正在使用带有单独验证处理程序的 jwt 令牌。跨应用程序工作。

仍在寻找更好的方法,但目前可行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    相关资源
    最近更新 更多