C# 如何将Asp.Net身份与Azure广告授权相结合
如何将Asp.Net身份与Azure AD授权集成 是否可以通过OpenIdConnect将Asp.Net身份与Azure AD授权集成?我希望有两个授权提供商,一个用于本地授权(通过standart Asp.net核心标识,另一个通过Azure AD)C# 如何将Asp.Net身份与Azure广告授权相结合,c#,asp.net-core,asp.net-identity,C#,Asp.net Core,Asp.net Identity,如何将Asp.Net身份与Azure AD授权集成 是否可以通过OpenIdConnect将Asp.Net身份与Azure AD授权集成?我希望有两个授权提供商,一个用于本地授权(通过standart Asp.net核心标识,另一个通过Azure AD) _services .AddAuthentication(options => { options.DefaultAuthenticateSc
_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标识。非常感谢您提供的任何帮助我建议使用默认的ASp.Net标识模板启动项目:
添加迁移名称
,更新数据库
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
进行登录,否则该标识将无法正确接受外部登录信息
Asp.net将创建一个与您的外部帐户关联的本地帐户,以便您可以使用本地标识系统执行授权