Как создать сервер идентификации для пользователей без страницы согласия?

У нас есть внутреннее приложение для внутренних пользователей, которое мне нужно защитить с помощью OAuth2 / OIDC и подумать об использовании IdentityServer4. Конечные пользователи не будут авторизовывать какие-либо приложения, поэтому страницы согласия быть не должно. Мне не удалось найти подходящих примеров, это либо образцы клиентов MVC со страницами согласия, либо клиенты консольных приложений для потоков пароля владельца ресурса.

Единственное, что у меня получилось, это то, что мне нужно реализовать IResourceOwnerPasswordValidator в приложении IDSRV. С этой частью я в порядке. Но я не мог понять, как настроить приложение IDSRV и приложение MVC в их Startups.

Что мне нужно сделать, чтобы защитить приложение .NET Core ASP.NET MVC с помощью IdentityServer4 с помощью потока паролей владельца ресурса?

Буду признателен за любую помощь.

Решение:

Я закончил тем, что использовал гибридный поток с входом пользователя в систему вручную вместо потока пароля владельца ресурса. Вот рабочее решение, которое я создал:

https://github.com/deastr/IdentityServer4.HybridFlow.NoConsent




Ответы (1)


В определение клиента добавьте следующее

RequireConsent = false,
person GlennSills    schedule 30.11.2016
comment
Я пробовал AllowedGrantTypes = GrantTypes.ResourceOwnerPassword и RequireConsent = false, но вместо перенаправления я просто получаю ошибку unauthorized_client. Изменение типа гранта на неявное работает, но затем меня перенаправляют на страницу согласия даже с RequireConsent = false .. - person dstr; 02.12.2016
comment
Вы пробовали включить ведение журнала? По моему опыту работы с IdentityServer3, включение ведения журнала - самый простой способ решить такого рода проблему начало работы. Вы можете сделать журнал Identity Server очень подробным отслеживанием того, что происходит - это обычно объясняет мне эти проблемы. - person GlennSills; 02.12.2016
comment
Да, при запуске хоста IdentityServer4 в качестве консольного приложения отображаются все виды журналов, что очень помогло. Мне удалось сделать то, что я хочу, используя гибридный поток и RequireConsent = false. Спасибо. - person dstr; 02.12.2016
comment
@YahyaHussein, я помню, у меня была такая же реакция, как и у вас :-) - person GlennSills; 13.04.2020