Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, AlexNek, Вы писали:
AN>>Зато удобнее будет делать авторизацию. Не зря же ведь микрософт IS 5 взял
НС>Ты же в курсе что он платный, и сильно платный?
Да, хотя еще не до конца понял, как будет с NET6.0 — у кого доход больше млн. тот платит?
Re[9]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
Здравствуйте, AlexNek, Вы писали:
S>>Брр... Что мешает на клиенте сделать подпись приватным ключом и не передавать его на сервер? AN>Клиент и приватный ключ как то для меня не совмещается вместе.
Там два варианта:
1. Вычислять хеш пароля на клиенте и передавать не пароль а хеш по HTTPS-каналу.
2. Клиент генерит себе закрытый ключ, а на сервер отправляет только открытый.
S>>А что через это окошко данные на сервер не передаются? AN>Но не через rest api
И что? Какое это имеет значение?
Re[9]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
Здравствуйте, AlexNek, Вы писали:
НС>>С трудом понимаю что все таки ты хочешь. AN>Вся проблема в том, что на сервере нет прямого доступа к базе
И что ты хочешь? Где хранить пользователей, если БД нет?
AN>Проблема с этим вариантом видимое переключение
Тем не менее безопасен только он.
AN>, ... хотя можно во фрэйме вызывать.
Тоже не очень хорошая практика. В строке браузера должен отображаться урл страницы логина с статусом сертификата, чтобы пользователь видел что он пароль туда, куда надо вводит, а не в какую то обманку.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[9]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
Здравствуйте, AlexNek, Вы писали:
НС>>Ты же в курсе что он платный, и сильно платный? AN>Да, хотя еще не до конца понял, как будет с NET6.0 — у кого доход больше млн. тот платит?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, AlexNek, Вы писали:
НС>>>С трудом понимаю что все таки ты хочешь. AN>>Вся проблема в том, что на сервере нет прямого доступа к базе
НС>И что ты хочешь? Где хранить пользователей, если БД нет?
Почему нет? Нет только прямого доступа к таблицам чего хочет DbContext, ну и EF соотвественно также нет.
Re[10]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, AlexNek, Вы писали:
AN>>Почему нет? Нет только прямого доступа к таблицам чего хочет DbContext, ну и EF соотвественно также нет.
НС>А что есть?
А что это имеет какой то смысл в конексте вопроса? Допустим, некий интерфейс с набором функций FindUserBy... и прочих.
Всё что позволяет написать вместо
Здравствуйте, AlexNek, Вы писали:
НС>>А что есть? AN>А что это имеет какой то смысл в конексте вопроса?
Я до сих пор не могу понять в чем твой вопрос.
AN>Допустим, некий интерфейс с набором функций FindUserBy... и прочих. AN>Всё что позволяет написать вместо AN>
Так в чем проблема то? Заменить дефолтную реализацию на EF не так уж и сложно. Не особо сложно и весь Aspnet.Idenity оттуда выкинуть. Только по прежнему непонятно зачем тебе это нужно и что ты при помощи такого шага хочешь решить.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[14]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
НС>Здравствуйте, AlexNek, Вы писали:
НС>>>А что есть? AN>>А что это имеет какой то смысл в конексте вопроса?
НС>Я до сих пор не могу понять в чем твой вопрос.
Ну можно пойти по шагам. Какой из шагов непонятен?
A1. Создаем Blazor WebAssembly Hosted Applications https://timheuer.com/blog/deploy-blazor-webassembly-applications-on-azure-using-github-actions-wasm/
Запускаем, создаем базу всё работает.
A2. Смотрим, что с базой данных. Это MsSQL, она расположена на сервере и к ней происходит "прямой доступ" через DBContext.
A3. Что имеется? Скажем так, что идентичная база данных раположеная на том же сервере. Но что это за база, какого типа и какие там есть таблицы сервер не знает. У него есть только интерфейс через который он может работать с базой.
Вариант С
С1. Создаем проект с IdentityServer4 как сервер и также свой проект как клиент использую ASP.NET Core
С2. Смотрим, что с базой данных на сервере. Это MsSQL, она расположена на сервере и к ней происходит "прямой доступ" через DBContext. Модель базы такая же, но данные несколько отличаются.
С3. Для IS4 также есть Custom Store и дополнительные данные. Все также можно заменить на "свои" вызовы.
Re[15]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, AlexNek, Вы писали:
AN>>Ну можно пойти по шагам. Какой из шагов непонятен?
НС>Мне непонятно что ты хочешь получить и зачем, а не твои шаги.
То бишь, по шагам никаких вопросов нет, всё понятно?
Хочу получить рабочий вариант A1 с п.3 вместо п.2
Re[17]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
Здравствуйте, AlexNek, Вы писали:
AN>Хочу получить рабочий вариант A1 с п.3 вместо п.2
Ты специально так формулируешь, чтобы тебя сложно было понять? Еще раз — почему не устраивает необходимость продеплоить для IS его собственную БД? Откуда IS должен брать при отсутствии БД информацию для валидации клиентов и пользователей?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[18]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, AlexNek, Вы писали:
AN>>Хочу получить рабочий "вариант A" с п.3 вместо п.2
НС>Ты специально так формулируешь, чтобы тебя сложно было понять?
Сорри, но я не могу даже вообразить какие еще сложности могут быть с пониманием
Что непонятного в описанных ранее шагах?
НС>Еще раз — почему не устраивает необходимость продеплоить для IS его собственную БД?
Ну так это "Вариант С". Там создаются другие данные несовместимые с "вариантом Б". Кроме того, визуальное переключение окон неприемлимо.
НС>Откуда IS должен брать при отсутствии БД информацию для валидации клиентов и пользователей?
Ну почему опять — нет базы???
Да есть же база, только доступ к ней — не через локальный DBContext. Это всё отличие.
У меня есть только красный овал, всё что в зеленой рамке недоступно.
Во всех примерах, по умолчанию "зеленая рамка" должна быть доступна.
Re[19]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
Здравствуйте, AlexNek, Вы писали:
НС>>Еще раз — почему не устраивает необходимость продеплоить для IS его собственную БД? AN>Ну так это "Вариант С". Там создаются другие данные несовместимые с "вариантом Б".
Ну пипец. Я задаю вопрос, а в ответ опять какие то варианты. Какие такие несовместимые данные, почему оним вдруг создаются?
AN> Кроме того, визуальное переключение окон неприемлимо.
Это небезопасно. Еще раз — единственный безопасный способ аутентификации в OAuth2 в случае неконтроллируемого делоймента — Auth Code Flow with PKCE.
Если на безопасность пофик — зачем тебе тогда вообще OAuth2 и IS? Сделай простейшую схему с API Key.
И, в любом случае, это совсем другая история, не имеющая вообще никакого отношения к потребности IS в собственной БД.
НС>>Откуда IS должен брать при отсутствии БД информацию для валидации клиентов и пользователей? AN>Ну почему опять — нет базы??? AN>Да есть же база, только доступ к ней — не через локальный DBContext
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, AlexNek, Вы писали:
НС>>>Еще раз — почему не устраивает необходимость продеплоить для IS его собственную БД? AN>>Ну так это "Вариант С". Там создаются другие данные несовместимые с "вариантом Б".
НС>Ну пипец. Я задаю вопрос, а в ответ опять какие то варианты.
Почему какие то? Это ссылка на то что было уже описано. Могу еще раз скопировать
Вариант С
С1. Создаем проект с IdentityServer4 как сервер и также свой проект как клиент использую ASP.NET Core
С2. Смотрим, что с базой данных на сервере. Это MsSQL, она расположена на сервере и к ней происходит "прямой доступ" через DBContext. Модель базы такая же, но данные несколько отличаются.
С3. Для IS4 также есть Custom Store и дополнительные данные. Все также можно заменить на "свои" вызовы.
AN>> Кроме того, визуальное переключение окон неприемлимо.
НС>Это небезопасно. Еще раз — единственный безопасный способ аутентификации в OAuth2 в случае неконтроллируемого делоймента — Auth Code Flow with PKCE.
Ну так это и есть варант А, что сделал микрософт. Только он выглядит "приличнее".
НС>Выкинь из головы все свои подробности реализации и ответь на заданные вопросы прямо.
Сорри, но имею понятию в каких категориях Вы мыслите что бы ответить адекватно.
Похоже мы слишком по разному мыслим. Если уж и картинка не помогает.
Но попробую.
НС>Какие такие несовместимые данные, почему оним вдруг создаются?
Хэш пароля пользователя минимум другой.
НС>А какой есть?
Никакого нет ДБ контекста, есть только интерфейс доступа. Код что ли нужен?
Re[21]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
Здравствуйте, AlexNek, Вы писали:
НС>>Ну пипец. Я задаю вопрос, а в ответ опять какие то варианты. AN>Почему какие то?
Потому что ты не отвечаешь на вопросы по исходной задаче, а вместо этого пытаешься впихнуть свои решения.
НС>>Это небезопасно. Еще раз — единственный безопасный способ аутентификации в OAuth2 в случае неконтроллируемого делоймента — Auth Code Flow with PKCE. AN>Ну так это и есть варант А, что сделал микрософт.
И?
НС>>Выкинь из головы все свои подробности реализации и ответь на заданные вопросы прямо. AN>Сорри, но имею понятию в каких категориях Вы мыслите что бы ответить адекватно.
Зато мы все тут имеем понятие про твой специфический контекст, ага. Ну, как знаешь.
AN>Похоже мы слишком по разному мыслим.
https://rsdn.org/Info/howtoask.xml
НС>>Какие такие несовместимые данные, почему оним вдруг создаются? AN>Хэш пароля пользователя минимум другой.
Где другой хеш пароля? Кто создает другой хеш пароля? Как его IS проверит, если к нему доступа нет?
НС>>А какой есть? AN>Никакого нет ДБ контекста
Пипец просто.
AN>, есть только интерфейс доступа.
Какой такой интерфейс доступа? БД все таки есть и коннект внутри процесса доступен, просто к ней нет DBContext? Или у процесса вообще доступа к БД нет?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[22]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, AlexNek, Вы писали:
НС>>>Ну пипец. Я задаю вопрос, а в ответ опять какие то варианты. AN>>Почему какие то?
НС>Потому что ты не отвечаешь на вопросы по исходной задаче, а вместо этого пытаешься впихнуть свои решения.
Это не решения,а обяснения того что уже сделано и попробовано.
НС>>>Это небезопасно. Еще раз — единственный безопасный способ аутентификации в OAuth2 в случае неконтроллируемого делоймента — Auth Code Flow with PKCE. AN>>Ну так это и есть варант А, что сделал микрософт. НС>И?
И я его хочу использовать
НС>>>Выкинь из головы все свои подробности реализации и ответь на заданные вопросы прямо. AN>>Сорри, но имею понятию в каких категориях Вы мыслите что бы ответить адекватно.
НС>Зато мы все тут имеем понятие про твой специфический контекст, ага. Ну, как знаешь.
Ну отчего специфический? вроде совершенно общеизвестный
AN>>Похоже мы слишком по разному мыслим.
НС>https://rsdn.org/Info/howtoask.xml
Может быть это требуется?
Когда задаете вопрос, укажите с самого начала, что вы все это уже сделали (1..6);
НС>>>Какие такие несовместимые данные, почему оним вдруг создаются? AN>>Хэш пароля пользователя минимум другой.
НС>Где другой хеш пароля? Кто создает другой хеш пароля?
Базы данных пользователей созданных с помощью Микрософт и с помошью IS будут отличаться. MS и IS создают разные хэши. НС>Как его IS проверит, если к нему доступа нет?
Это прямой доступ к базе, для которого и требуется dbContext. Тут прямой доступ к реляционной таблице Users, которая описана в dbContext
IdentityUser user = dbContext.Users.FirstOrDefault(u => u.Id.Equals(userId));
Это используется по умолчанию. (Возможно не абсолютно так)
А это как я обращаюсь на самом нижнем уровне к пользователям. Мне совершенно по барабану как данные пользователя хранятся и где.
IdentityUser user = dbInterface.GetUserById(userId);
Но что бы это сделать нужно иметь интерфейс ICustomStore и возможность задать его использование вместо dbContext
Может так станет понятней?
Re[23]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
Здравствуйте, AlexNek, Вы писали:
НС>>Потому что ты не отвечаешь на вопросы по исходной задаче, а вместо этого пытаешься впихнуть свои решения. AN>Это не решения,а обяснения того что уже сделано и попробовано.
НС>>Зато мы все тут имеем понятие про твой специфический контекст, ага. Ну, как знаешь. AN>Ну отчего специфический?
От того что никто не знает, что и как там у тебя все устроено, и информацию из тебя приходится доставать клещами.
НС>>https://rsdn.org/Info/howtoask.xml AN>Может быть это требуется? AN>
AN>Когда задаете вопрос, укажите с самого начала, что вы все это уже сделали (1..6);
Нет, требуется:
Описывайте симптомы проблемы, а не свои предположения
Задавайте ясные и четкие вопросы
НС>>Где другой хеш пароля? Кто создает другой хеш пароля? AN>Базы данных пользователей созданных с помощью Микрософт
Ты в Microsoft звонил и они тебе прислали базу твоих пользователей? Что за "Базы данных пользователей созданных с помощью Микрософт"?
НС>>Как его IS проверит, если к нему доступа нет? AN>Это прямой доступ к базе, для которого и требуется dbContext.
Нет, для прямого доступа не требуется DBContext.
AN>Но что бы это сделать нужно иметь интерфейс ICustomStore и возможность задать его использование вместо dbContext
Такая возможность есть, и не одна. Чтобы ответить подробнее — надо нормально задать вопрос.
AN>Может так станет понятней?
Пока не особо.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[24]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
НС>>>Зато мы все тут имеем понятие про твой специфический контекст, ага. Ну, как знаешь. AN>>Ну отчего специфический?
НС>От того что никто не знает, что и как там у тебя все устроено, и информацию из тебя приходится доставать клещами.
Так это абсолютно стандартные знания. Ничего особенного. Хотя да, Blazor — это несколько молодая тема.
AN>>Может быть это требуется? НС>Нет, требуется: НС>
НС>Описывайте симптомы проблемы, а не свои предположения
НС>Задавайте ясные и четкие вопросы
Ну именно так и начиналось. Вот что есть, а вот что надо.
НС>>>Где другой хеш пароля? Кто создает другой хеш пароля? AN>>Базы данных пользователей созданных с помощью Микрософт
НС>Ты в Microsoft звонил и они тебе прислали базу твоих пользователей? Что за "Базы данных пользователей созданных с помощью Микрософт"?
Тут уж мне пора хвататься за голову, как можно дойти то такой мысли?
Создаём проект, допустим тот же Blazor WebAssembly Hosted Applications, запускаем его, создаем базу, регистрируем пользователей — вот и база с пользователями и паролями.
Или хотелось что бы было написано типа: База данных пользователей созданная с помощью программы на основе стандартного темплате от американской софтваре фирмы Микрософт, сделанной в визуал студии 2019?
НС>>>Как его IS проверит, если к нему доступа нет? AN>>Это прямой доступ к базе, для которого и требуется dbContext.
НС>Нет, для прямого доступа не требуется DBContext.
Ну теперь уже мне интересно, а что требуется SQL? Или что? Или прямой доступ нужно было обязательно в скобки взять?
AN>>Но что бы это сделать нужно иметь интерфейс ICustomStore и возможность задать его использование вместо dbContext
НС>Такая возможность есть, и не одна. Чтобы ответить подробнее — надо нормально задать вопрос.
У меня на работе был коллега, который также не понимал моих объяснений, пока я не понял какими категориями он мыслит и не стал отвечать такими же категориями.
Но я пока никак не могу врубится в какой вселенной вы живете, и что означают для вас "нормальные вопросы".
Ну например, я не знаю другой официальной возможности подменить доступ к данным пользователя, кроме как через ICustomStore, хотя бы для IS.