Внешний логин сервера идентификации 4 не работает в Firefox, но работает в Chrome - PullRequest
2 голосов
/ 29 января 2020

Я реализовал сервер аутентификации с сервером идентификации 4 в ASP. NET ядро ​​3.1. Здесь я использовал Azure AD и Google в качестве поставщика внешнего входа. Эти внешние провайдеры входа работают нормально в браузере chrome, но не работают в Firefox.

Код аутентификации,

services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddMicrosoftAccount(option =>
    {
        option.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
        option.ClientId = "Client id";
        option.ClientSecret = "Client secret";
        option.AuthorizationEndpoint = "AuthorizationEndpoint";
        option.TokenEndpoint = "TokenEndpoint";
        option.SaveTokens = true;
        option.StateDataFormat = new DistributedCacheStateDataFormatter(contextAccessor, "Microsoft");      
    })
    .AddGoogle(option =>
    {
        option.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
        option.ClientId = "Client id";
        option.ClientSecret = "Client secret";
        option.SaveTokens = true;
    })
    .AddCookie(options =>
    {
        options.SlidingExpiration = true;
        options.ExpireTimeSpan = new TimeSpan(7, 0, 0, 0);
        options.Cookie.SameSite = SameSiteMode.Lax;
        options.Cookie.HttpOnly = true;
     });

При использовании браузера внешнего входа chrome работает нормально и аутентификация корректна , При использовании firefox браузер получил следующие исключения из Azure AD,

System.Exception: An error was encountered while handling the remote login.
 ---> System.Exception: OAuth token endpoint failure: Status: BadRequest;Headers: Cache-Control: no-cache, no-store
Pragma: no-cache
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
x-ms-request-id: 33040f25-8122-455c-b96a-f2cfd23acb00
x-ms-ests-server: 2.1.9926.12 - EST ProdSlices
P3P: CP="DSP CUR OTPi IND OTRi ONL FIN"
Set-Cookie: fpc=Atvp3Rwgaz5EtF1RBA6_Ip4XiiowBQAAAA7uwdUOAAAARMZjlAIAAAAO78HVDgAAAA; expires=Thu, 27-Feb-2020 08:59:59 GMT; path=/; secure; HttpOnly; SameSite=None, x-ms-gateway-slice=prod; path=/; SameSite=None; secure; HttpOnly, stsservicecookie=ests; path=/; secure; HttpOnly; SameSite=None
Date: Tue, 28 Jan 2020 08:59:59 GMT
;Body: {"error":"invalid_grant","error_description":"AADSTS54005: OAuth2 Authorization code was already redeemed, please retry with a new valid code or use an existing refresh token.\r\nTrace ID: 33040f25-8122-455c-b96a-f2cfd23acb00\r\nCorrelation ID: afb9b3fc-fb80-4796-b1e4-af31ec0261b1\r\nTimestamp: 2020-01-28 08:59:59Z","error_codes":[54005],"timestamp":"2020-01-28 08:59:59Z","trace_id":"33040f25-8122-455c-b96a-f2cfd23acb00","correlation_id":"afb9b3fc-fb80-4796-b1e4-af31ec0261b1"};

Сетевой журнал ,

network log

Примечание: Аутентификация работает нормально в localhost для Firefox и Chrome. Только после публикации Firefox не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...