Совсем недавно начал использовать IdentityServer4 (IS4), играя с семплами и т. Д.
У меня есть настройка, в которой запускается IS4 (с использованием примера пользовательского интерфейса MVC), настроенный с Google в качестве внешнего поставщика. У меня также есть настройка API, а также клиент (веб-приложение MVC). При аутентификации, и пользователь нажимает «Google» в разделе «Внешний вход», он / она перенаправляется в Google, как и ожидалось. Однако после ввода имени пользователя и пароля я ожидал увидеть экран согласия Google, но вместо этого я перенаправлен обратно на экран согласия в IS4. Это почему? Разве конечный пользователь не должен давать согласие на доступ к его / ее информации профиля Google на странице, которая явно принадлежит Google (т. Е. HTTPS и сертификат Googles)?
Я признаю, что, поскольку мне также требуется согласие пользователя на доступ к моему API, у меня может появиться 2 экрана согласия (один для информации профиля из Google и один для доступа к API из моей собственной конфигурации IS4), но если я У меня не было API в моей настройке, и я просто хотел использовать IS4 в федеративной настройке для предоставления идентификаторов токенов. У меня не было бы необходимости получать согласие моего собственного API, и поэтому я ожидал бы увидеть только экран согласия от моих внешних провайдеров. (например, Google, Facebook, Twitter и т. д.).
Мой внешний провайдер настроен так:
services.AddAuthentication()
.AddGoogle("Google", options =>
{
options.ClientId = "<my client id>";
options.ClientSecret = "<my client secret>";
options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
});
Может ли кто-нибудь, пожалуйста, просветить меня: -)
Спасибо