默认 Data Protector - Owin 令牌验证

Default Data Protector - Owin Token Auth

我正在尝试使用 Owin 和 ASP.Net 托管在 IIS 上的令牌身份验证解决方案,但无法让默认数据保护在正在生成的不记名令牌上正常工作。该解决方案似乎工作正常,除了我可以从一台机器上的身份验证服务器生成不记名令牌并且资源 API 可以在另一台机器上使用这些令牌。从我研究的所有内容来看,默认情况下 machine.config 文件中的 validationKey 应该用于保护令牌,除非我实施自己的数据保护。我也尝试过将机器密钥/验证密钥添加到我的 web.config,但没有成功。

Startup class 中的配置方法如下所示:

    public void Configuration(IAppBuilder app)
    {
        HttpConfiguration config = new HttpConfiguration();

        // Setup auth
        ConfigureOAuth(app);
        WebApiConfig.Register(config);
        app.UseWebApi(config);
    }

如何使默认数据保护起作用,以便它使用验证密钥保护数据?配置中还有其他步骤吗?

您需要让 Auth Server 和 Resource Server 的 machineKey 节点在 web.config 文件中共享相同的 machineKey。您不必进行任何额外的配置设置。

OAuth 中间件将使用授权服务器中的默认数据保护提供程序,因此它将使用存储在 machine.config 中的 machineKey 节点中的 "validationKey" 值文件来颁发访问令牌并保护它。当您将访问令牌发送到您的资源服务器时,同样的情况也适用,它将使用相同的 machineKey 来解密访问令牌并从中提取身份验证票证。

礼貌 - Taiseer Joudeh http://bitoftech.net/2014/09/24/decouple-owin-authorization-server-resource-server-oauth-2-0-web-api/.