Я использую IdentityServer4 для реализации единого входа на нескольких основных веб-сайтах ASP.net.Я могу войти через один сайт, и он успешно заходит на другой сайт.Однако я нахожу странным то, что после того, как я вошел на оба сайта, любая страница, требующая аутентификации / авторизации, перенаправляет меня обратно на конечную точку авторизации, если я за это время просмотрел другой сайт.Пример:
+-----+--------------------+-------------------------------------+---------------------------------------------------------------------+
| Seq | Host | Request | Response |
+-----+--------------------+-------------------------------------+---------------------------------------------------------------------+
| 1 | apple.example.com | GET /About | 302 Found; Location=https://login.example.com/connect/authorize?... |
| 2 | login.example.com | GET /connect/authorize?... | 302 Found; Location=https://login.example.com/Account/Login?… |
| 3 | login.example.com | GET Account/Login?… | 200 OK |
| 4 | login.example.com | POST /Account/Login?... | 302 Found; Location=/connect/authorize/callback?... |
| 5 | login.example.com | GET /connect/authorize/callback?... | 200 OK |
| 6 | apple.example.com | POST /signin-oidc | 302 Found; Location=https://apple.example.com/About |
| 7 | apple.example.com | GET /About | 200 OK |
| 8 | banana.example.com | GET /About | 302 Found; Location=https://login.example.com/connect/authorize?... |
| 9 | login.example.com | GET /connect/authorize?... | 200 OK |
| 10 | banana.example.com | POST /signin-oidc | 302 Found; Location=https://banana.example.com/About |
| 11 | banana.example.com | GET /About | 200 OK |
| 12 | banana.example.com | GET /About | 200 OK |
| 13 | banana.example.com | GET /About | 200 OK |
| 14 | apple.example.com | GET /About | 302 Found; Location=https://login.example.com/connect/authorize?... |
| 15 | login.example.com | GET /connect/authorize?... | 200 OK |
| 16 | apple.example.com | POST /signin-oidc | 302 Found; Location=https://apple.example.com/About |
| 17 | apple.example.com | GET /About | 200 OK |
| 18 | apple.example.com | GET /About | 200 OK |
+-----+--------------------+-------------------------------------+---------------------------------------------------------------------+
До Seq = 11 все работает как положено.Я вошел в оба сайта (яблоко и банан), но только один раз ввел свои учетные данные.Я в последний раз загружал страницу на banana.example.com.Пока я остаюсь на этом сайте (строки 12 и 13), файл cookie сайта работает.Но если я загружаю другую страницу на apple.example.com, она возвращает меня к конечной точке авторизации, даже если я уже аутентифицирован на этом сайте.Это удивительно для меня.Это продолжает происходить - каждый раз, когда я переключаю сайты, мне приходится снова подключаться к серверу идентификации.Мне не нужно повторно вводить свои учетные данные, но перенаправления немного раздражают.Я особенно обеспокоен тем, что это будет мешать запросам POST.
Наши сайты таковы, что пользователи часто используют несколько сайтов одновременно, вкладывая туда и обратно.
Это так, как это должно работать, или что-то не так с моей конфигурацией?Я ожидаю, что нужно будет только один раз попасть в конечную точку авторизации для каждого сайта.