После успешного входа в систему, по умолчанию промежуточное ПО IdentityServer пытается перенаправить на страницу согласия, где информировать пользователя о «разрешенных областях». На этой странице показаны утверждения о том, что клиентский сайт MVC получит доступ к: идентификатору пользователя, профилю пользователя, электронной почте и т. Д.
Если вы не настроили такое, вы можете установить: «RequireConsent = false» при определении клиента MVC. В этом случае IdentityServer будет перенаправлен обратно на «RedirectUris», не показывая страницу согласия.
Пример:
public static IEnumerable<Client> GetClients()
{
return new List<Client>
{
new Client
{
ClientId = "mvc",
ClientName = "mvc Client",
ClientSecrets =
{
new Secret("secret".Sha256())
},
AllowedGrantTypes = GrantTypes.Implicit,
AllowAccessTokensViaBrowser = true,
RedirectUris = { "http://localhost:5002/signin-oidc" },
PostLogoutRedirectUris = { "http://localhost:5002/signout-callback-oidc" },
AllowedScopes =
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile,
IdentityServerConstants.StandardScopes.Email
},
RequireConsent = false
}
};
}
Еще одна вещь, которую я заметил в демонстрациях и быстрых запусках IdentityServer4, это то, что вам нужны следующие пакеты NuGet:
Для сайта клиента:
IdentityModel,
Microsoft.AspNetCore.All
Для приложения аутентификации IdentityServer:
IdentityServer4,
IdentityServer4.AccessTokenValidation,
IdentityServer4.AspNetIdentity,
Microsoft.AspNetCore.All
Вы можете установить эти пакеты только для того, чтобы заставить демо работать.