1
0
mirror of https://github.com/bitwarden/server.git synced 2025-04-05 13:08:17 -05:00
bitwarden/bitwarden_license/src/Portal/Utilities/EnterprisePortalServiceCollectionExtensions.cs
2020-09-04 13:56:08 -04:00

42 lines
1.6 KiB
C#

using System;
using Bit.Core.Identity;
using Bit.Core.Models.Table;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
namespace Bit.Portal.Utilities
{
public static class EnterprisePortalServiceCollectionExtensions
{
public static (IdentityBuilder, IdentityBuilder) AddEnterprisePortalTokenIdentityServices(
this IServiceCollection services)
{
services.TryAddTransient<ILookupNormalizer, LowerInvariantLookupNormalizer>();
var passwordlessIdentityBuilder = services.AddIdentity<User, Role>()
.AddUserStore<UserStore>()
.AddRoleStore<RoleStore>()
.AddDefaultTokenProviders();
var regularIdentityBuilder = services.AddIdentityCore<User>()
.AddUserStore<UserStore>();
services.TryAddScoped<EnterprisePortalTokenSignInManager, EnterprisePortalTokenSignInManager>();
services.ConfigureApplicationCookie(options =>
{
options.LoginPath = "/login";
options.LogoutPath = "/logout";
options.AccessDeniedPath = "/access-denied";
options.Cookie.Name = $"Bitwarden_BusinessPortal";
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromDays(2);
options.ReturnUrlParameter = "returnUrl";
options.SlidingExpiration = true;
});
return (passwordlessIdentityBuilder, regularIdentityBuilder);
}
}
}