/// <summary> /// Adds Azure Active Directory Authentication to your application. /// </summary> /// <param name="builder">The <see cref="AuthenticationBuilder"/>.</param> /// <param name="scheme">The identifier for the virtual scheme.</param> /// <param name="openIdConnectScheme">The identifier for the underlying Open ID Connect scheme.</param> /// <param name="cookieScheme">The identifier for the underlying cookie scheme.</param> /// <param name="displayName">The display name for the scheme.</param> /// <param name="configureOptions">The <see cref="Action{AzureADOptions}"/> to configure the /// <see cref="AzureADOptions"/> /// </param> /// <returns>The <see cref="AuthenticationBuilder"/>.</returns> public static AuthenticationBuilder AddAzureAD( this AuthenticationBuilder builder, string scheme, string openIdConnectScheme, string cookieScheme, string displayName, Action <AzureADOptions> configureOptions) { AddAdditionalMvcApplicationParts(builder.Services); builder.AddPolicyScheme(scheme, displayName, o => { o.ForwardDefault = cookieScheme; o.ForwardChallenge = openIdConnectScheme; }); builder.Services.Configure(TryAddOpenIDCookieSchemeMappings(scheme, openIdConnectScheme, cookieScheme)); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <IConfigureOptions <AzureADOptions>, AzureADOptionsConfiguration>()); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <IValidateOptions <AzureADOptions>, AzureADOptionsValidation>()); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <IConfigureOptions <OpenIdConnectOptions>, AzureADOpenIdConnectOptionsConfiguration>()); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <IConfigureOptions <CookieAuthenticationOptions>, AzureADCookieOptionsConfiguration>()); builder.Services.Configure(scheme, configureOptions); builder.AddOpenIdConnect(openIdConnectScheme, null, o => { }); builder.AddCookie(cookieScheme, null, o => { }); return(builder); }
public static AuthenticationBuilder AddAzureADBearer( this AuthenticationBuilder builder, string scheme, string jwtBearerScheme, Action<AzureADOptions> configureOptions) { builder.AddPolicyScheme(scheme, displayName: null, configureOptions: o => { o.ForwardDefault = jwtBearerScheme; }); builder.Services.Configure(TryAddJwtBearerSchemeMapping(scheme, jwtBearerScheme)); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton<IConfigureOptions<AzureADOptions>, AzureADOptionsConfiguration>()); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton<IValidateOptions<AzureADOptions>, AzureADOptionsValidation>()); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton<IConfigureOptions<JwtBearerOptions>, AzureADJwtBearerOptionsConfiguration>()); builder.Services.Configure(scheme, configureOptions); builder.AddJwtBearer(jwtBearerScheme, o => { }); return builder; }
/// <summary> /// Adds JWT Bearer authentication to your app for Azure AD B2C Applications. /// </summary> /// <param name="builder">The <see cref="AuthenticationBuilder"/>.</param> /// <param name="scheme">The identifier for the virtual scheme.</param> /// <param name="jwtBearerScheme">The identifier for the underlying JWT Bearer scheme.</param> /// <param name="configureOptions">The <see cref="Action{AzureADB2COptions}"/> to configure the /// <see cref="AzureADB2COptions"/>. /// </param> /// <returns>The <see cref="AuthenticationBuilder"/>.</returns> public static AuthenticationBuilder AddAzureADB2CBearer( this AuthenticationBuilder builder, string scheme, string jwtBearerScheme, Action <AzureADB2COptions> configureOptions) { builder.AddPolicyScheme(scheme, displayName: null, configureOptions: o => { o.ForwardDefault = jwtBearerScheme; }); builder.Services.Configure(TryAddJwtBearerSchemeMapping(scheme, jwtBearerScheme)); builder.Services.TryAddSingleton <IConfigureOptions <AzureADB2COptions>, AzureADB2COptionsConfiguration>(); builder.Services.TryAddSingleton <IConfigureOptions <JwtBearerOptions>, JwtBearerOptionsConfiguration>(); builder.Services.Configure(scheme, configureOptions); builder.AddJwtBearer(jwtBearerScheme, o => { }); return(builder); }