gpt4 book ai didi

c# - 如何将 Asp.Net Identity 与 Azure AD 授权相结合

转载 作者:行者123 更新时间:2023-12-03 17:03:03 26 4
gpt4 key购买 nike

如何将 Asp.Net Identity 与 Azure AD 授权集成

是否可以通过 OpenIdConnect 将 Asp.Net Identity 与 Azure AD 授权集成?我想拥有一个用于本地授权的授权提供程序(通过标准 Asp.net 核心标识,第二个通过 Azure AD

        _services
.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, options =>
{
options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.ClientId = clientId;
options.ClientSecret = clientSecret;
options.Authority = $"{baseAuthorityUrl}/{tenantId}/v2.0";
options.CallbackPath = new PathString(callBackPath);
options.Scope.Add("email");
options.Scope.Add("profile");
options.ResponseType = "code id_token";

options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true;
options.TokenValidationParameters = new TokenValidationParameters
{
NameClaimType = "name"
};
})

这适用于 Azure AD 授权,但我无法将授权方法从 Azure AD 更改为 ASp.Net Identity。任何帮助深表感谢

最佳答案

我建议使用默认的 ASP.NET Identity 模板来启动项目:

  • 使用 ASP.NET 标识(个人用户帐户模板)创建新应用程序。
  • 使用迁移为数据库播种 Add-Migration Name , Update-Database .
  • 添加您的 OIDC 提供商:
    services
    .AddAuthentication(options =>
    {
    options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
    options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;

    }).AddCookie()
    .AddOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, options =>
    {

    options.SignInScheme = IdentityConstants.ExternalScheme;

    options.ClientId = ClientId;
    options.ClientSecret = ClientSecret;
    options.Authority = $"{baseAuthorityUrl}/{tenantId}/v2.0";
    options.CallbackPath = new PathString("/signin-oidc");
    options.Scope.Add("email");
    options.Scope.Add("profile");
    options.ResponseType = "code id_token";

    options.SaveTokens = true;
    options.GetClaimsFromUserInfoEndpoint = true;

    options.TokenValidationParameters = new TokenValidationParameters
    {
    NameClaimType = "name"
    };

    });

  • 确保使用 IdentityConstants.ExternalScheme对于 SignInScheme,否则身份将无法正确接受外部登录信息。

    Asp.net 将创建一个与您的外部帐户相关联的本地帐户,以便您可以使用本地身份系统执行授权。

    关于c# - 如何将 Asp.Net Identity 与 Azure AD 授权相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55596541/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com