我有SSO实现要实现,并且我有2个共享auth cookie的应用程序。
这是第一个应用程序(登录表单应用程序)中的ConfigureServices方法的代码:
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpClient();
services.AddDataProtection()
.PersistKeysToFileSystem(new DirectoryInfo(@"C:\Tylde\Progetti\_commonCookies"))
.SetApplicationName("NAU");
services.AddAuthentication("AuthCookie")
.AddCookie("AuthCookie", config =>
{
config.Cookie.Name = "User.Cookie";
config.LoginPath = "/Authentication/SignIn";
});
services.AddControllersWithViews();
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));
}
这是第二个中的ConfigureServices方法的代码:
public void ConfigureServices(IServiceCollection services)
{
services.AddDataProtection()
.PersistKeysToFileSystem(new DirectoryInfo(@"C:\Tylde\Progetti\_commonCookies"))
.SetApplicationName("NAU");
services.AddControllersWithViews();
}
现在在本地IIS中配置了应用程序,其URL为:
http://localhost:8081/Authentication/SignIn 和 http://localhost:8082/Home
有人可以帮助我吗?
谢谢,抱歉我的英语!
答案 0 :(得分:0)
基于您在多个域之间共享Cookie的选择,您可以执行以下步骤
app1.product.com
和app2.product.com
C:\Windows\System32\drivers\etc
或Linux OS:/etc/hosts
)中找到hosts文件127.0.0.1至app1.product.com app2.product.com
所做的假设是您具有自定义身份验证,但是,当您更喜欢将任何授权服务器与Bearer令牌一起使用时,最好在中间件级别使用令牌处理验证,这样您就不必依赖cookie作为cookie并不是很安全,如果您希望使用仅cookie的SSO,请将cookie的http属性设置为true。
HTH