我正在尝试使用IIS上托管的Owin和ASP.Net来实现令牌身份验证解决方案,并且无法使dafault数据保护在正在生成的承载令牌上正常工作。该解决方案似乎工作正常,除了我可以从一台机器上的auth服务器生成承载令牌,资源API可以在另一台机器上使用这些令牌。从我研究的所有内容中,除非我实现自己的数据保护,否则默认情况下应该使用machine.config文件中的validationKey来保护令牌。我已经尝试将机器密钥/验证密钥添加到我的web.config中,但没有运气。
Startup类中的Configuration方法如下所示:
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
// Setup auth
ConfigureOAuth(app);
WebApiConfig.Register(config);
app.UseWebApi(config);
}
如何使默认数据保护工作,以便使用验证密钥保护数据?配置中还有另一个步骤吗?
答案 0 :(得分:0)
您需要拥有 machineKey 节点,以便Auth服务器和资源服务器共享web.config文件中的相同machineKey。您不必进行任何额外的配置设置。
OAuth中间件将使用授权服务器中的默认数据保护提供程序,因此它将使用" validationKey"存储在machine.config文件中的 machineKey 节点中的值,以发出访问令牌并对其进行保护。当您将访问令牌发送到资源服务器时,同样的情况适用,它将使用相同的 machineKey 来解密访问令牌并从中提取身份验证票证。
礼貌 - Taiseer Joudeh http://bitoftech.net/2014/09/24/decouple-owin-authorization-server-resource-server-oauth-2-0-web-api/。