【问题标题】:Asp.net core 2 - External Authentication in WebApiAsp.net core 2 - Web Api 中的外部身份验证
【发布时间】:2018-06-16 11:42:43
【问题描述】:

现在我知道已经有很多关于此的帖子,但我的情况不同。所以请多多包涵。

当我在 .Net Framework 上创建 WebApi 并选择个人用户帐户时,它已经为我搭建了一个用于外部身份验证的工作代码。

有AccountController、Startup.auth.cs等文件有外部认证的代码

现在我知道 .net 核心的情况发生了变化。但是个人用户帐户上的 net.core web api 没有提供任何类似的功能。

当我尝试在 .net Core 上对 WebApi 执行相同操作时,它只为我提供了一个选项来选择某些 Azure 应用程序。 在下图中,使用 .net 核心上的 WebApi,蓝色指向的下拉菜单仅提供一个选项,即 Azure AD b2c 应用程序。没有帐户控制器被搭建,也没有其他用于外部身份验证的配置文件。

没有我需要的文件。

我已经尝试了这些链接: https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/external-authentication-services

https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/

但第一个链接是针对 .net 框架的,对我没有帮助。第二个仅适用于 asp.net 核心上的 Web 应用程序,但 NOT WebApi

我需要在 web api 中进行外部身份验证,因为我希望所有来自 Web 或移动设备的用户都通过 Google 或 facebook 进行身份验证。 任何人请指出我正确的方向。我在这里错过了什么吗?有什么文件可以帮助我解决这个问题吗?

【问题讨论】:

  • 我也有同样的问题。你解决了吗?

标签: authentication .net-core asp.net-core-2.0 asp.net-core-webapi asp.net-authentication


【解决方案1】:

选择“个人用户帐户”时,您要选择“在应用内存储用户帐户”。

以这种方式创建应用程序时,脚手架将创建 AccountController。 以这种方式创建项目后,您可以转到 Startup.cs

您必须在 ConfigureServices 方法中添加(对于 google):

services.AddAuthentication()
    .AddGoogle(options => 
    {
        //Set client Id and secret here
        options.ClientId = "clientId_here";
        options.ClientSecret = "ClientSecret_here";
    });

欲了解更多信息,请查看:https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/

【讨论】:

    【解决方案2】:

    您可以使用 JSON Web 令牌或 JWT。

    这里有一篇文章来指导正确的道路:https://auth0.com/blog/securing-asp-dot-net-core-2-applications-with-jwts/

    【讨论】:

      猜你喜欢
      • 2017-09-28
      • 2016-12-22
      • 2017-01-23
      • 2022-01-27
      • 2018-01-28
      • 2017-11-24
      • 2014-06-04
      • 2018-05-13
      • 2018-06-15
      相关资源
      最近更新 更多