Это моя начальная настройка для моего mvc, подключающегося к серверу идентификации.
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
AuthenticationType = "oidc",
SignInAsAuthenticationType = "Cookies",
Authority = "http://identity.azurewebsites.net",
RedirectUri = "http://localhost:62419/signin-oidc",
PostLogoutRedirectUri = "http://localhost:62419/signout-callback-oidc",
ClientId = "mvc",
ResponseType = "id_token",
Scope = "openid profile",
UseTokenLifetime = false,
RequireHttpsMetadata = false,
Notifications = new OpenIdConnectAuthenticationNotifications
{
SecurityTokenValidated = (context) =>
{
var identity = context.AuthenticationTicket.Identity;
var name = identity.Claims.FirstOrDefault(c => c.Type == identity.NameClaimType)?.Value;
return Task.FromResult(0);
}
}
});
Я могу попасть на сервер идентификации. Я получил сообщение
Sorry, there was an error : unauthorized_client Invalid redirect_uri
Я добавил redirectUri в таблицу ClientRedirectUris, соответствующую приведенному выше коду. Есть ли другие области, которые я забыл добавить или установить?
Я добавил URL .. Это ты ищешь.
Нет, это запрос конечной точки /connect/authorize, который должен быть перед этим в вашем журнале.
Я добавил RedirectUri в неправильную базу данных сервера идентификации. Теперь у меня может не быть ошибки Invalid redirect_uri, но loginInfo в функции ExternalLoginCallback был нулевым и возвращался к экрану входа на сервер идентификации.
Мне пришлось обновить таблицу ClientRedirectUris базы данных Identity Server.





Вы должны убедиться, что URL-адрес перенаправления соответствует URL-адресу перенаправления в конфигурации вашего клиента в IdentityServer. Например
new Client
{
ClientId = "mvc",
ClientName = "MVC Client",
AllowedGrantTypes = GrantTypes.Implicit,
// where to redirect to after login
RedirectUris = { "http://localhost:62419/signin-oidc" },
// where to redirect to after logout
PostLogoutRedirectUris = { "http://localhost:62419/signout-callback-oidc" },
AllowedScopes = new List<string>
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile
}
}
Убедитесь, что RedirectUris совпадает с URL-адресом перенаправления, установленным в вашем клиенте "http: // локальный: 62419 / signin-oidc".
http/https разница в URL-адресе перенаправления вызвала эту ошибку в моем случае. Спасибо!
Кроме того, убедитесь, что ваша область действия соответствует AlowedScopes в конфигурации вашего клиента. Было бы полезно, если бы мы могли видеть URL-адрес запроса. т.е.
https://identity.azurewebsites.net/connect/authorize?
client_id=mvc
&redirect_uri=http://localhost:62419/signin-oidc
&response_type=id_token
&scope=openid profile
&nonce=63653346343504
&state=CfDJAJDR
&response_mode=form_post
Не могли бы вы также указать фактический URL-адрес запроса, вызвавший эту ошибку?