Во-первых, вы не должны передавать токены между вашими приложениями.Все ваши приложения должны быть отдельными client
, но у них обычно будет один и тот же центральный URL-адрес органа (ваш сервер идентификации), который они будут использовать для получения токенов.Все это будет легко с точки зрения пользователя из-за единого входа, достигнутого в центральном органе с использованием аутентификации cookie - когда пользователь входит в главное приложение, когда другие приложения перенаправляют пользователя для получения токена, они пропускают страницу входаиз-за аутентификации cookie и может перейти непосредственно на страницу согласия (также можно пропустить страницу согласия, установив для свойства клиента RequireConsent
значение false, что обычно делается для приложений сторонних производителей).
Чтобы ответить на некоторые ваши вопросы:
Как второе приложение узнает, что токен действителен?
Что ж, в действительности это не нужно, если выне передавайте токен между приложениями, но технически он может проверить токен через свою подпись или с помощью конечной точки самоанализа.
Должны ли приложения работать в одном домене, чтобы это работало?
Они не обязательно должны находиться в одном домене.
будет ли токен содержать всю эту информацию, или мы можем получить этот последний для каждого приложения, использующего один и тот же токен?
Утверждения, которые содержит токен, в значительной степени контролируются в зависимости от области, которую запрашивает клиент (по крайней мере, по умолчанию).Таким образом, если у каждого приложения запрашивается собственный токен, оно должно запросить все области, в которых оно заинтересовано.Многие из этих действий могут быть переопределены и расширены из-за безумной гибкости Identity Server 4, поэтому почти всегда у вас будет способ выполнить то, что вы хотите.