Amazon和Evernote的身份验证设置

Jim*_*ell 5 c# oauth-2.0 asp.net-identity identityserver4

如果您参考https://docs.microsoft.com/zh-cn/aspnet/core/migration/1x-to-2x/identity-2x?view=aspnetcore-2.2,则可以看到可以配置OpenID Connect(OIDC)各种提供商的身份验证如下:

脸书

services.AddAuthentication()
        .AddFacebook(options =>
        {
            options.AppId = Configuration["auth:facebook:appid"];
            options.AppSecret = Configuration["auth:facebook:appsecret"];
        });
Run Code Online (Sandbox Code Playgroud)

谷歌

services.AddAuthentication()
        .AddGoogle(options =>
        {
            options.ClientId = Configuration["auth:google:clientid"];
            options.ClientSecret = Configuration["auth:google:clientsecret"];
        });
Run Code Online (Sandbox Code Playgroud)

微软

services.AddAuthentication()
        .AddMicrosoftAccount(options =>
        {
            options.ClientId = Configuration["auth:microsoft:clientid"];
            options.ClientSecret = Configuration["auth:microsoft:clientsecret"];
        });
Run Code Online (Sandbox Code Playgroud)

我的问题是,是否有人需要提供支持Amazon和Evernote OIDC的设置?

小智 3

不幸的是,Login with Amazon 和 Evernote 都不支持 Open ID Connect。其他提到的服务也可以,这可以通过访问每个服务的适当配置站点来验证:GoogleMicrosoft

还有其他一些未在 .Net 中预配置但可以与它一起使用的 ofc: Salesforce

您可能注意到,Open ID Connect 的配置通常存储在带有“/.well-known/openid-configuration”后缀的站点上。这称为 OpenID Connect 元数据文档,它包含应用程序登录所需的大部分信息。这包括要使用的 URL 和服务公共签名密钥的位置等信息。

现在让我们为自定义 Open ID Connect 提供商进行 .Net 配置(我将使用 Salesforce,因为它支持 Open ID):

services.AddAuthentication()
.AddFacebook(options =>
{
    options.AppId = Configuration["auth:facebook:appid"];
    options.AppSecret = Configuration["auth:facebook:appsecret"];
})
.AddOpenIdConnect("OpenIdConnectSalesforce", "Salesforce", options =>
{
    options.Authority = "https://login.salesforce.com";
    options.ClientId = Configuration["auth:salesforce:appid"];
    options.ClientSecret = Configuration["auth:salesforce:appsecret"];
    options.ResponseType = "code";
});
Run Code Online (Sandbox Code Playgroud)

启动 Web 应用程序后,我们可以看到使用 Salesforce 登录的附加按钮: 在此输入图像描述

对于Evernote和Amazon,您可以分别使用他们的SDK和API来实现他们的登录方法。我确实相信他们支持 OAuth。