powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / SSO - несколько вопросов.
25 сообщений из 221, страница 2 из 9
SSO - несколько вопросов.
    #39680734
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я правильно понимаю, что обычно юзают какой-то клиент (либу) на стороне service provider-a?

Ему скармливаешь endPoints и сам клиент уже рулит всеми токенами, проверками на членство в ролях и т.п.
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680744
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомЯ правильно понимаю, что обычно юзают какой-то клиент (либу) на стороне service provider-a?

Ему скармливаешь endPoints и сам клиент уже рулит всеми токенами, проверками на членство в ролях и т.п.

Зависит от задач, от архитектуры, от топологии, от подходов и технологий. Нет конкретного решения.
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680775
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАгнец за бортомЯ правильно понимаю, что обычно юзают какой-то клиент (либу) на стороне service provider-a?

Ему скармливаешь endPoints и сам клиент уже рулит всеми токенами, проверками на членство в ролях и т.п.

Зависит от задач, от архитектуры, от топологии, от подходов и технологий. Нет конкретного решения.

Самому писать клиента что ли? Со всеми этими refresh-ами, секретными ключами и т.п.?
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680778
Фотография Arpanx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже ковыряю реализацию на IdentityServer4

У меня после того как я авторизируюсь получаю Хеш.
Потом иду " http://localhost:5000/.well-known/openid-configuration/jwks" получаю ключи шифрования
Потом имея ХЕШ и ключи вычисляю токены доступа.
Все, после этого могу этим токеном подписывать обращение к WebAPI

Информация о ролях и доступах получаю вот отсюда, уже потом после того как получу токены.
" http://localhost:5000/connect/userinfo"
Эта информацию использую на клиенте Ангуляр для того чтобы интерфейс графический пользователю отображать нужный.
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680781
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомСамому писать клиента что ли? Со всеми этими refresh-ами, секретными ключами и т.п.?

Зачем?

http://docs.identityserver.io/en/release/reference/client.html
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680787
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arpanx,

А что является id юзера? Он же регистрируется на IdentityServer4?
Ты получаешь от него userID и его используешь уже в своём приложении?

И как тут без "личного" кабинета?
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680791
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом,

Посмотри как это сделано на хабре. Единый вход для всех сайтов и сервисов TM, на каждом сайте свой личный кабинет, однако управление аккаунтом (логин/пароль) перекидывает на SSO.
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680795
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttоднако управление аккаунтом (логин/пароль) перекидывает на SSO.

Это и есть "личный кабинет", правильно?
Управляем логином/паролем + отключаем/подключаем соцсети - типа самый минимум.
userID - тот, что хранится в SSO и он "центральный".
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680796
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему, интересно в таком случае список провайдеров на основных сайтах такой бедный?

Ведь нужно, чтобы сервер-провайдер аутентификации реализовывал OAuth, а добавить его может и сам пользователь.

Хочу по FB, хочу - вообще по левому сайту какому-нибудь?
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680797
Фотография Arpanx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом
1) Отправляем запрос к IdentityServer4 обычный GET-запрос из JSClienta/Ангуляра
https://localhost:44318/connect/authorize?
client_id=angularclient
&redirect_uri=https%3A%2F%2Flocalhost%3A44311
&response_type=id_token%20token
&scope=dataEventRecords%20securedFiles%20openid20profile
&nonce=N0.258698376964128451532801480909
&state=15328014791890.33345671067938976&ui_locales=de-CH

После этого запроса клиента перебрасывает из его родного JSClienta на ASP.NET MVC сайт IdentityServer4 c формой логина/пароля.
2) на сервере IdentityServer4 заполянем форму login/password
3) IdentityServer4 в ответ на успешную авторизацию делает Callback на заранее указанный адрес, (на неуспешную делает callback на другой заранее согласованный url клиента для неавторизованного случая)
и сообщает на Хеш:
"#id_token=eyJhbGciOiJSUzI1NiIsImtpZCI6IjA2RDNFNDZFOTEwNzNDNUQ0QkMyQzk5ODNCRTlGRjQ0OENGNjQwRDQiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJCdFBrYnBFSFBGMUx3c21ZTy1uX1JJejJRTlEifQ.eyJuYmYiOjE1MzI4MDI2ODQsImV4cCI6MTUzMjgwMjcxNCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NDQzMTgiLCJhdWQiOiJhbmd1bGFyY2xpZW50Iiwibm9uY2UiOiJOMC4xMjUxMzQyNzQyNzcwNzEzNjE1MzI4MDI2Nzg4MTkiLCJpYXQiOjE1MzI4MDI2ODQsImF0X2hhc2giOiJVSkozNlBTb3hPd0h2MmI5TWdCM1V3Iiwic2lkIjoiMWYzYjAzMDdlY2VkNzRiM2ZhMmI0MmVlNjJiMmZjODMiLCJzdWIiOiJhYWJhYWZmOC1mMmRlLTQ3YzEtYmRjZC02MzQxZjM1ZDA3ODciLCJhdXRoX3RpbWUiOjE1MzI4MDI2ODQsImlkcCI6ImxvY2FsIiwiYW1yIjpbInB3ZCJdfQ.BHk-bTLwtopb7jp4Nigy_G3rBFZ1bBJuouk_fbCUmXAlmpin02AcoZQZazs76PfU2xjsFhl7bKJ8E9TA2kQ8nsNEy0f88J44L_MgzIfUp3lkaMqa1gsUo7iAZAf5kbtHVFXlsxAfX2enJLhWNyhJWpozC4LksEJ-ChmLvKJxfM3KBabz98Md3KBatx90_Awsy6zXfvVjqXaUVno_WUeDY0S7aWpwdedtdvfv7Ypg9EzCsSN_UyTnrV78iNRnbmMQzwcQ3M0WTitAV5oyoz8uDHH3gpWfgQXVG8s9m2sNGja7WCHHRNhCwY5Eh3lQLTtG8BYcFJS8ZzXn4UqjKWOHlQ&access_token=1d275edf73f5a0ba856707e6b201484b8b9cb37a1c8822e6ec7ae7b0f917b509&token_type=Bearer&expires_in=330&scope=openid%20profile%20dataEventRecords%20securedFiles&state=15328026788190.44407987383214875&session_state=o4dw9uykjgBcxJ_S5mgbCz2BLKn_9AArUB0uPW-qcPo.dd523232979f073b91eb7dfa08c9b0c1"

этот ответ Ангуляр/JSClient запоминает где-то у себя в store сессии
4) потом Ангуляр/JSClient ломиться Get-запросом опять на Identity сервер на специальный URL
" http://localhost:44318/.well-known/openid-configuration/jwks",
в ответ сервер присылает какие-то ключи. что-то такое:
{"keys":[{"kty":"RSA","use":"sig","kid":"06D3E46E91073C5D4BC2C9983BE9FF448CF640D4","x5t":"BtPkbpEHPF1LwsmYO-n_RIz2QNQ","e":"AQAB","n":"sOzqgYngkiOaAuK15FI-SUzhU9uq7SLCfDI-h5uOeKwW9gpH6iyDiXp1mCCCWJiGEWvwxfCpjP7rSj9Trv7cx1h2M33EMRQ3ImJkYIlxeoEwgOaXwL3mK0931bUk4s2HKUUi5pAR7Y7QlEzzaL3EeyfdkRkXspAGMgmZHTnxMILnXWeFuyApRtPJkg2jIohwkARtTHjocZ9E2pgIHZ-s4H9A1jk0vFIwDoX5vmAyjkbwrZkSa2Sk1mf1ELpH261YaWCUVqbuzqmi-JOi1s0L9ONJORSLh6wNw2oH9ExRyp9dZHcoLSKvhiwxCzO_9xNt4S1JZLgejfTu8EKKZe8-0w","x5c":["MIIDDjCCAfqgAwIBAgIQSkEsGuYMeZRFzN5Z75UPGTAJBgUrDgMCHQUAMBQxEjAQBgNVBAMTCWRhbWllbmJvZDAeFw0xMDAxMjAyMzAwMDBaFw0yMDAxMjAyMzAwMDBaMBoxGDAWBgNVBAMTD2RhbWllbmJvZHNlcnZlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALDs6oGJ4JIjmgLiteRSPklM4VPbqu0iwnwyPoebjnisFvYKR+osg4l6dZgggliYhhFr8MXwqYz+60o/U67+3MdYdjN9xDEUNyJiZGCJcXqBMIDml8C95itPd9W1JOLNhylFIuaQEe2O0JRM82i9xHsn3ZEZF7KQBjIJmR058TCC511nhbsgKUbTyZINoyKIcJAEbUx46HGfRNqYCB2frOB/QNY5NLxSMA6F+b5gMo5G8K2ZEmtkpNZn9RC6R9utWGlglFam7s6poviTotbNC/TjSTkUi4esDcNqB/RMUcqfXWR3KC0ir4YsMQszv/cTbeEtSWS4Ho307vBCimXvPtMCAwEAAaNeMFwwEwYDVR0lBAwwCgYIKwYBBQUHAwEwRQYDVR0BBD4wPIAQ1My0H7LinPSutQIwzgufiqEWMBQxEjAQBgNVBAMTCWRhbWllbmJvZIIQbEw9c+es77BHxIknuXjKhjAJBgUrDgMCHQUAA4IBAQA4yFhqLKYcA3e8dUCwKsD2iikow5amT+DWjqhZEEZxkGA/I47hCoUHYW+jMiwJBiiSVYmnu0fCCjOgvS5i9DgAIhVIs+mhuNPSThwNf/IsCxoM1dPfw3JEXYffP/7/Yk8wyxQJ+9VGIO1H19am6d/jolKMfBNIk/2rHSeLzph6C1GkL+OcZevqOoElC1/jt5LoHtUw2vnK4E6uZpNpvUD7AmMSkXd9979F7pZxY/Bn2AqeQVYfGuLvimVJSJNNx26L5k6Ah+sH+bXV3LX0wXOV4JfnUh3tpe15ymQDZQ72jmCZe6JQu9ylHYXzEXYfOCJEoxyDaSfau4/ZkLJZMout"],"alg":"RS256"}]}

Затем Ангуляр/JSClient (на клиенте в смысле) проверять валидный ли был ответ от сервера в тот раз когда он нам Callback сделал и прислал какой-то Хеш.
Для этого он берет этот Хеш из Callback и ключи шифрования который он получил по ссылке " http://localhost:44318/.well-known/openid-configuration/jwks" и что-то там проеверяет/вычисляет.
если все прошло успешно то на клиенте (Ангуляр/JSClient ) у нас есть вычисленные:
access_token: "549972f7f4bae1211c67f323d6615fbbb5fe8a9073aad5d1d87ed4773f3e07db"
id_token: "eyJhbGciOiJSUzI1NiIsImtpZCI6IjA2RDNFNDZFOTEwNzNDNUQ0QkMyQzk5ODNCRTlGRjQ0OENGNjQwRDQiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJCdFBrYnBFSFBGMUx3c21ZTy1uX1JJejJRTlEifQ.eyJuYmYiOjE1MzI4MDQ0MDgsImV4cCI6MTUzMjgwNDQzOCwiaXNzIjoiaHR0cHM6Ly9sb2NhbGhvc3Q6NDQzMTgiLCJhdWQiOiJhbmd1bGFyY2xpZW50Iiwibm9uY2UiOiJOMC4wNzc5NDE5NjQxNzk5OTk0MzE1MzI4MDQ0MDg0OTEiLCJpYXQiOjE1MzI4MDQ0MDgsImF0X2hhc2giOiJMWlMtS3hUQTVMYXVXSl9lOGp0Q1JBIiwic2lkIjoiMWYzYjAzMDdlY2VkNzRiM2ZhMmI0MmVlNjJiMmZjODMiLCJzdWIiOiJhYWJhYWZmOC1mMmRlLTQ3YzEtYmRjZC02MzQxZjM1ZDA3ODciLCJhdXRoX3RpbWUiOjE1MzI4MDI2ODQsImlkcCI6ImxvY2FsIiwiYW1yIjpbInB3ZCJdfQ.TRp3GJfnWQhkglyKMGHKpJ1qQ1mXTYaLExOX8gJiQH3p7IVq7dMM-LzWir7bsG--sxHt4bvv-RawDfKese9uO2S9PpKRf-uc5Q3_PQe0qQ1t4uMsdDLL_mLtneJMey5SldSSeMxXfd3GXSw8GVyQDPanLmzEzjeUqX8gg8d6FIomCsFPdfoUg12P4QKJ-Yz0v-WDDxuVEfrm8r3RVUHxnyempDhhyQs8dDb5htXdlBKah1pahI0RCJojbdq-ozyMmI6X7Rt00LyKni7mRp6QDpkE3yecm0LROnjIjtKq0OuKhr5XOcuZNKWqk9H5XkkshEB-T5bjP0a2sV97MqUbyg"

Все мы авторизировались есть токены которыми мы можем подписывать свой запрос, у нас есть доступ, все хорошо.
Информацию о токене записали в store сессии браузера
Теперь на клиенте нам интересно знать информацию о пользователе. Какие у него есть роли и т.д. Чтобы понимать какие части пользовательского интерфейса можно показывать, а какие не нужно.
для этого надо обратиться на
" http://localhost:5000/connect/userinfo"
и подписаться в Headers
headers = headers.set('Accept', 'application/json');
headers = headers.set(
'Authorization',
'Bearer ' + decodeURIComponent(token)

на выходе имеем что-то типа такого:
email:"admin@gmail.com"
given_name:"admin@gmail.com"
name:"admin@gmail.com"
preferred_username:"admin@gmail.com"
role:["admin", "dataEventRecords.user", "dataEventRecords", "securedFiles.user", "securedFiles"]
scope:["dataEventRecords", "securedFiles"]
sub:"aabaaff8-f2de-47c1-bdcd-6341f35d0787"

Все. Это все касается способа
AllowedGrantTypes = GrantTypes.Implicit,
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680799
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArpanxЗатем Ангуляр/JSClient (на клиенте в смысле) проверять валидный ли был ответ от сервера в тот раз когда он нам Callback сделал и прислал какой-то Хеш.
Для этого он берет этот Хеш из Callback и ключи шифрования который он получил по ссылке

Странно. Всё что я читал - все проверки на сервере.

А "хеш" используется один раз и используется на сервере приложения. Зачем его в ангуляре хранить? o_O
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680800
Фотография Arpanx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом ,
я описал то что наблюдаю в рабочем примере. Логин/пароль, да проверят сам сервер и он решает пускать пользователя или не пускать. На клиенте вычисляются эти 2 или 3 токена (один токен на доступ, другой на refresh-токена, еще там один для чего-то ), т.е. сервер их не сообщает в открытом виде, клиент их из хеша сам добывает. В принципе хеш можно не хранить, токены хранят. Когда токен протухает, клиент сам молча на фоне делает рефреш.
Если пользователь 1 раз авторизовался на сервере и остается там авторизованный, то клиент второй раз не заставляет его вводить логин/пароль, а сам молча добывает токены.
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680801
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомЭто и есть "личный кабинет", правильно?
Управляем логином/паролем + отключаем/подключаем соцсети - типа самый минимум.
userID - тот, что хранится в SSO и он "центральный".

Это скорее управление параметрами аутентификации. Личный кабинет, это управление функциями сайта, применительно к профилю пользователя, об этом SSO ничего не знает, да и знать не должен.

Ну, в общем где тебе хранить учётные записи, решай сам :)
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680823
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомЯ правильно понимаю, что обычно юзают какой-то клиент (либу) на стороне service provider-a?

Ему скармливаешь endPoints и сам клиент уже рулит всеми токенами, проверками на членство в ролях и т.п.
Что у тебя service провайдер?
Твой сервер с веб проектом prjMy или сервер аутентификации sso организации?
Либа зависит от протокола и того как написана.
Я юзал oisaml и там либа ставится перед всеми запросами. Фильтром.
В web.xml я писал адрес idp сервера и адрес куда он редиректит юзверя от себя в твое приложение prjMy.
Ты только решаешь в своем фильтре пускать или нет, т.к. с редиректом пришло что это Иванов Иван Иванович.
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680824
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомhVosttоднако управление аккаунтом (логин/пароль) перекидывает на SSO.

Это и есть "личный кабинет", правильно?
Управляем логином/паролем + отключаем/подключаем соцсети - типа самый минимум.
userID - тот, что хранится в SSO и он "центральный".да. И кабинет не твой как бы, а кабинет sso.
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680826
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arpanx,
+1
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680828
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЛичный кабинет, это управление функциями сайта,тут непонятки, т.к. он назвал кабинетом формочку ввода пароля sso.
Ну и хранилище логин пароль для формочки.
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680838
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Да не важно это :)
К вопросу о том что где размещать, без постановки, условий задачи и прочее, обращаться рано.
Ответ сам найдётся, когда человек разберётся, что ему в конце концов нужно.
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680861
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Что у тебя service провайдер?
Service Provider - это web-приложение, которое отдает функционал аутентификации / авторизации серверу SSO.
SSO - это сервер SSO
Auth provider - это контакты / фейсбуки / гуглы и прочее.
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680866
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123тут непонятки, т.к. он назвал кабинетом формочку ввода пароля sso.

Ну, как бы... Одно дело на сайте разместить кнопку "Логин VK", другое дело - дать юзеру привязывать к своему основному аккаунту разнообразные учетки. Если это не личный кабинет (пусть и на SSO) - тогда я не знаю, что такое личный кабинет.

К тому же, SSO-сервер также "мой".
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680875
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомService Provider - это web-приложение, которое отдает функционал аутентификации / авторизациину, или твое веб приложение prjMy.
www.host/prjMy
OK

Агнец за бортомЕсли это не личный кабинет (пусть и на SSO) - тогда я не знаю, что такое личный кабинет.можно конечно назвать.
Можно назвать профилем как на sql.ru. это я больше ему писал.
Кроме того, даже если sso сервер твой это все равно внешняя система.
ОК.
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680891
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня вопрос по теме.

Я правильно понимаю, что все эти токены - это всё о stateless?

Секретная часть ключа (для валидации токенов) - она одна и та же всё время жизни сервера и не меняется? А по хорошему, наверное - она вообще прописана где-то навсегда должна быть?

Типа - все credentials - гоняются между браузером и сервером приложения (в виде токена), и на сервере просто проверяется их подлинность, в виде секретного ключа?

Сессий нет?
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680901
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомСессий нет?ты можешь сделать куками и / или вообще без токенов.
У меня были сессии.
Ну и протокол смотри. В SAML внутри XML ходила инфа.
Это что больше ты любишь.
Что тебе даст та сторона, смотри стандарт конкретного сервера.
А у себя ты просто пропускаешь юзверя.
Нафига токены?
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680906
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Нафига токены?

Задача - аутентификация через соц. сети.
Подзадача - сделать это через сервер SSO.

Сервер SSO имеет у себя кучу разных плюшек/вариантов авторизации. Так что, наверное, имеет смысл.
...
Рейтинг: 0 / 0
SSO - несколько вопросов.
    #39680910
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как правильней обновлять access token? Напрямую из ангуляра к SSO или через Service Provider?

Ибо если мы говорим о stateless - получается - только из ангуляра.
Если через service provider - тогда надо "мутить" сессии.
...
Рейтинг: 0 / 0
25 сообщений из 221, страница 2 из 9
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / SSO - несколько вопросов.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]