混合 IdentityServer4 和 Web API .net 4.5.2
Mixing IdentiyServer4 and WebAPI .net 4.5.2
我是 IdentityServer 的新手。我已遵循 IdentityServer4 教程 here
但本教程仅展示了如何保护 .net 核心 API。我找不到任何使用 IdentityServer4 的教程,它还展示了如何保护 .net 4.# WebAPI。我在 Whosebug 上找到了一个 post,它建议使用 Microsoft Katana JWT 中间件,但我不知道这将如何实现,因为我是新手。
任何人都可以向我指出一个教程(或组合,如果需要的话),这将为我指明正确的方向。提前致谢。
更新:
我正在尝试将 IdentityServer3 用于 API 并将 IdentityServer4 用于授权服务器。
我已经创建了一个 IdentityServer4 授权服务器,这似乎工作正常。
我创建了一个 WebAPI(使用完整的 .Net 框架 - 在本例中为 4.7.1)。我已按照 IdentityServer3 文档中有关如何将 IdentityServer 合并到 API 中的说明进行操作。因此,正如预期的那样,当我尝试通过浏览器直接导航到控制器时,我现在得到了 401 未经授权的访问,所以这是安全的。
我已经创建了一个控制台客户端。我已将其配置为指向 IdentityServer4 身份验证服务器,现在取回访问令牌。
只有现在,当我在客户端上使用此访问令牌设置 BearerToken 时,我仍然得到 401 未授权。授权服务器我都用过http和https了。。。又开始摸不着头脑了!
Here 是完整的示例。正如您发现自己的简短指南中所述,
您所需要的(在添加所有必要的包之后)就是向您添加以下内容 Startup.cs:
app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
{
Authority = "https://identity.identityserver.io",
RequiredScopes = new[] { "api1", "api2" }
});
事实证明,当与 ValidationMode = ValidationMode.ValidationEndpoint
选项一起使用时,来自 Identityserver 3 的 IdentityServerBearerTokenAuthentication
与 Identityserver 4 不兼容。切换到 ValidationMode.Local 解决了这个问题。
我是 IdentityServer 的新手。我已遵循 IdentityServer4 教程 here
但本教程仅展示了如何保护 .net 核心 API。我找不到任何使用 IdentityServer4 的教程,它还展示了如何保护 .net 4.# WebAPI。我在 Whosebug
任何人都可以向我指出一个教程(或组合,如果需要的话),这将为我指明正确的方向。提前致谢。
更新:
我正在尝试将 IdentityServer3 用于 API 并将 IdentityServer4 用于授权服务器。
我已经创建了一个 IdentityServer4 授权服务器,这似乎工作正常。
我创建了一个 WebAPI(使用完整的 .Net 框架 - 在本例中为 4.7.1)。我已按照 IdentityServer3 文档中有关如何将 IdentityServer 合并到 API 中的说明进行操作。因此,正如预期的那样,当我尝试通过浏览器直接导航到控制器时,我现在得到了 401 未经授权的访问,所以这是安全的。
我已经创建了一个控制台客户端。我已将其配置为指向 IdentityServer4 身份验证服务器,现在取回访问令牌。
只有现在,当我在客户端上使用此访问令牌设置 BearerToken 时,我仍然得到 401 未授权。授权服务器我都用过http和https了。。。又开始摸不着头脑了!
Here 是完整的示例。正如您发现自己的简短指南中所述, 您所需要的(在添加所有必要的包之后)就是向您添加以下内容 Startup.cs:
app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
{
Authority = "https://identity.identityserver.io",
RequiredScopes = new[] { "api1", "api2" }
});
事实证明,当与 ValidationMode = ValidationMode.ValidationEndpoint
选项一起使用时,来自 Identityserver 3 的 IdentityServerBearerTokenAuthentication
与 Identityserver 4 不兼容。切换到 ValidationMode.Local 解决了这个问题。