У меня есть два идентификационных сервера и один веб-API. То, что я пытаюсь сделать, - это аутентификация API с одним или обоими IdentityServers и возможностью переключения, если он сходит. Если возможно, мне также хотелось бы добавить новый IdentityServer во время выполнения.Лучшая практика работы с несколькими службами IdentityServer4
Есть ли какая-либо передовая практика здесь?
На данный момент это выглядит так.
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
Authority = $"http://localhost:5000",
ScopeName = "my.scope",
RequireHttpsMetadata = false,
ScopeSecret = "secret",
});
Если я отключу IdentityServer на порту 5000, я больше не могу использовать API. Что и следовало ожидать.
У вас должен быть избыточный идентификатор для балансировки нагрузки. Тогда сеть позаботится об этом. – leastprivilege
Я сделал очень простое промежуточное программное обеспечение, которое перенаправляет вызовы localhost: 5000 на правильный идентификационный сервер. Это отлично работает .. один раз (?). После этого он направляется прямо к серверу идентификации и игнорирует все, что я установил для Управления. Обновляет ли он уровень хостов во время выполнения? – Evelie
Могу ли я каким-то образом попросить его повторить полномочия, если один из звонков истечет? Даже если я реализую правильный балансировщик нагрузки, теперь он будет по-прежнему иметь такое же поведение, так как IdentityServer сообщает, какие адреса использовать ... поэтому все вызовы после начального будут перемещаться по балансировщику нагрузки. Я не против этого. Но если возможно, я хотел бы повторить попытку, если IdentityServer опустится. На данный момент API будет умирать с IdentityServer, даже с балансировщиком нагрузки. – Evelie