我使用带OpenIDConnect的ASP.NET Core 1.1.2通过IdentityServer连接到单一登录服务器。
"Microsoft.AspNetCore.Authentication.OpenIdConnect": "1.1.2"
现在我有一个奇怪的问题,直到昨天才发生。
浏览器上没有创建重定向到SSO服务器之前应创建的初始cookie。
在浏览器上使用开发人员控制台,我可以看到
Set-Cookie
头,但没有存储cookies。
Content-Length: 0
Date: Mon, 14 Jan 2019 18:50:10 GMT
Location: http://mysso.com/connect/authorize?client_id=8111797110116117109&redirect_uri=http%3A%...ZD7cNnuWSmAoGyk2kERmR4hemQKsP2OKNbABYvybQCrdCMggrggDuY-5ZXnCTFf3oG11cR4Eh5N3Uarh99MD1nvJZrO4WsWDO73OQrEjh-zK3AceJzjfB2GH0gKKw-51SpcUWNgSTbQe517
Server: Kestrel
Set-Cookie: .AspNetCore.Correlation.oidc.I3lU6aE3BFH_4uuJ6KlgbpFl6Dij_WC-nyhlbUfvAPI=N; expires=Mon, 14 Jan 2019 18:07:24 GMT; path=/; httponly
Set-Cookie: .AspNetCore.OpenIdConnect.Nonce.CfDJ8BWkCPQm5ElIof7iuryYpWDHYvyls6nYDr84XfQAIcLzg0ktLHIGOP7Tp_eqbvDOTdcQqnKIIogwMad9tWSy9v8BPnN8VUBucuz8qc9kv5Pkpe5aCg9oh6dgQD79a-w8Lc9haFm_tOEze1Wzna3XG7OzcGhw8kwyU5j3K_sK3Z7Y-u3cE_pey9DVbBzZkZStJXpoNjG_HWJHBjuqv7ADfCc91Oi83Ieuk7bBue8md1v2WqvSji3ziHkqyw9FKTV44Iw2Kg4o8Rf_3G-Q9ITNwr8=N; expires=Mon, 14 Jan 2019 18:07:24 GMT; path=/; httponly
X-Powered-By: ASP.NET
我检查了cookie是否在创建之前过期,但是它们都还有10分钟的剩余时间。
这个问题发生在所有主要浏览器(边缘浏览器、Chrome浏览器、火狐浏览器)上,不仅仅是我的电脑,其他浏览器也是。
配置代码
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
Authority = Configuration["SSOConfig:ServerUrl"],
AuthenticationScheme = "oidc",
SignInScheme = AuthenticationScheme.Cookies,
RequireHttpsMetadata = false,
ClientId = Configuration["SSOConfig:ClientId"],
ClientSecret = Configuration["SSOConfig:ClientSecret"],
ResponseType = "code id_token",
Scope = { "openid", "offline_access" },
SaveTokens = false,
我尝试手动添加cookie,但它正在工作。
HttpContextAccessor.HttpContext.Response.Cookies.Append("Test", "test");