Промежуточное ПО для сервера идентификации 2

Заранее спасибо!

В нашем веб-API мы используем Identity Server 2 для аутентификации (который довольно старый), теперь мы решили использовать идентификационный сервер 4, но наше требование заключается не только в переходе с IdSrv2 на IdSer4, нам необходимо поддерживать оба сервера, поэтому наши старые клиенты могут общаться с помощью токена IdSer2, а новые могут общаться с помощью токена IdSer4.

Мы попытались добавить условное промежуточное программное обеспечение на основе пользовательского значения заголовка.

        app.UseWhen(context => !context.Request.Headers.ContainsKey("x-identityServerVersion"), branch =>
        {
            var options = new IdentityServerBearerTokenAuthenticationOptions
            {
                Authority = "https://localhost:44379/identity", //Identity Server 3 URL
                AuthenticationType = "Bearer",
                RequiredScopes = new[] { "sampleApi" }
            };
            branch.UseIdentityServerBearerTokenAuthentication(options); 
        });

        app.UseWhen(context => context.Request.Headers.ContainsKey("x-identityServerVersion"), branch =>
        {
            var options = new IdentityServerBearerTokenAuthenticationOptions
            {
                Authority = "http://localhost:52700", //Identity Server 4 URL
                AuthenticationType = "Bearer",
                RequiredScopes = new[] { "sampleApi" }
            };
            branch.UseIdentityServerBearerTokenAuthentication(options);
        });

Приведенный выше пример кода работает нормально с IdSer3 и IdSer4, но мы сталкиваемся с проблемой с IdSer2 и IdSer4, так как отсутствует промежуточное программное обеспечение для настройки IdSer2 (так как есть несколько свойств, которые недоступны в вышеупомянутом промежуточном программном обеспечении, например: Эмитент, Аудитория и Ключ подписи)

0 ответов

Другие вопросы по тегам