如何在ASP.NET REST API中从identityServer中获取JWT

时间:2014-01-20 00:59:34

标签: asp.net api rest thinktecture-ident-server

我花了几天时间试图加快速度,但自从我上次触摸一个网络项目以来,一切都发生了变化,我现在完全不知所措,无处可去。我正在尝试将这些部分组合成一个隐式授权流 - 只是一个简单的Web API,它尊重我本地I.S实例发出的令牌。

我已经能够下载和配置I.S. v2本地。我将它发送到登录页面后,以JWT格式发出身份验证令牌。我可以看到令牌信息作为来自IS的重定向URL的一部分返回,例如'access_token = ...& token_type = urn:ietf:params:oauth:token-type:jwt& expires_in = 599'。

所以现在我需要配置我的asp.net API站点来接受这些令牌,我无法弄清楚如何。正如我所说,我有一段时间没有完成网络工作,所以Owin,WIF以及其他更多内容对我来说都是全新的。

我的API网站接受这些令牌需要做的关键步骤是什么?我想我不确定要包含哪些软件包,与WIF方面相关的web.config中的内容,我是否需要编写任何代码才能使其正常工作,或者是否应该有一些配置设置的组合才能激活它?我是否需要创建自定义ClaimsAuhtorizationManager?

拜托,我在这里形状不好,我一直在看这些东西好几天,我仍然不知道甚至弄清楚还有什么可以尝试。我发现的每个样本都与我的情况有很大不同,使它对我无益(大多数指向Azure或ADFS,或者使用现已弃用的旧类)。这不是因为缺乏努力,我一直在阅读我可以拿到的所有东西,并在网上搜索了好几天。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

IdSrv发布标准的JWT令牌 - 因此没有任何特定的内容。

你可以,例如使用Microsoft的JWT处理程序。对于Web API v2,典型的方法是使用JWT中间件 - 这是一个示例:

https://github.com/thinktecture/Thinktecture.AuthorizationServer/blob/master/samples/Flows/ResourceServer%20(Web%20API%20v2)/App_Start/AuthConfig.cs