|
oauth 2.0 Authorization code vs Authorization code with PKCE
|
|||
---|---|---|---|
#18+
По теме сабжа понял, что для мобильных и браузреных приложений Authorization code flow не достаточно. Надо использовать Authorization code with PKCE. В этом флоу добавляется передача хеша, сгенерированного по одностороннему алгоритму и его проверка на другом этапе. Объясните плиз на пальцах от какой проблему это спасёт ? ну то есть было вот так - тут была такая вот уязвимость, а вот с PKCE вдруг стало безопасно. авторThe user clicks Login within the application. Auth0's SDK creates a cryptographically-random code_verifier and from this generates a code_challenge. Auth0's SDK redirects the user to the Auth0 Authorization Server (/authorize endpoint) along with the code_challenge. Your Auth0 Authorization Server redirects the user to the login and authorization prompt. The user authenticates using one of the configured login options and may see a consent page listing the permissions Auth0 will give to the application. Your Auth0 Authorization Server stores the code_challenge and redirects the user back to the application with an authorization code, which is good for one use. Auth0's SDK sends this code and the code_verifier (created in step 2) to the Auth0 Authorization Server (/oauth/token endpoint). Your Auth0 Authorization Server verifies the code_challenge and code_verifier. Your Auth0 Authorization Server responds with an ID Token and Access Token (and optionally, a Refresh Token). Your application can use the Access Token to call an API to access information about the user. The API responds with requested data. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 12:43 |
|
oauth 2.0 Authorization code vs Authorization code with PKCE
|
|||
---|---|---|---|
#18+
questioner, Вот вам сударь https где перехват сложен и отправка кешей вместо информации уже выше крыши защита. Это вы потрудитесь рассказать как это мало для вас. Можете и не отвечать. Нам как то всё равно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 13:11 |
|
oauth 2.0 Authorization code vs Authorization code with PKCE
|
|||
---|---|---|---|
#18+
PetroNotC Sharp questioner, Вот вам сударь https где перехват сложен и отправка кешей вместо информации уже выше крыши защита. Это вы потрудитесь рассказать как это мало для вас. Можете и не отвечать. Нам как то всё равно. Опять ты... можешь и не писать. Я задал конкретный вопрос. Мне интересно увидеть кейс когда Authorization code flow не достаточно , Authorization code with PKCE хватает ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 13:15 |
|
oauth 2.0 Authorization code vs Authorization code with PKCE
|
|||
---|---|---|---|
#18+
questioner, А закон форума знаем? Вопрошающий работает больше отвечающих. Тогда форум эффективен. Мы тебе должны эксплоит создать, показать недостаток, и научить пофиксить. Так то ли? Ты журналист? Или может о _проблеме_ расскажешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 13:48 |
|
oauth 2.0 Authorization code vs Authorization code with PKCE
|
|||
---|---|---|---|
#18+
жду ответа от душевно здоровых пользователей форума) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 14:09 |
|
oauth 2.0 Authorization code vs Authorization code with PKCE
|
|||
---|---|---|---|
#18+
questioner, Стас уже бежит с плакатом - не слушай петро. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 14:12 |
|
oauth 2.0 Authorization code vs Authorization code with PKCE
|
|||
---|---|---|---|
#18+
Чтото Остапа Петро понесло сегодня. Уже начал праздновать Новый год? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 14:18 |
|
oauth 2.0 Authorization code vs Authorization code with PKCE
|
|||
---|---|---|---|
#18+
lleming, Сегодня отсюда) 22415364 . Завтра не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 14:23 |
|
oauth 2.0 Authorization code vs Authorization code with PKCE
|
|||
---|---|---|---|
#18+
questioner Объясните плиз на пальцах от какой проблему это спасёт ? ну то есть было вот так - тут была такая вот уязвимость, а вот с PKCE вдруг стало безопасно. в спецификациях OAuth без бутылки не разобраться, я когда изучал самая вменяемая документация была вроде у MS и Okta... Что касается вопроса про "Authorization code with PKCE" - это невозможно изучать без отрыва от rfc8252, конкретно нас интересут section-7.2 : rfc82527.2. Claimed "https" Scheme URI Redirection Some operating systems allow apps to claim "https" scheme [RFC7230] URIs in the domains they control. When the browser encounters a claimed URI, instead of the page being loaded in the browser, the native app is launched with the URI supplied as a launch parameter. Such URIs can be used as redirect URIs by native apps. They are indistinguishable to the authorization server from a regular web- based client redirect URI. An example is: https://app.example.com/oauth2redirect/example-provider As the redirect URI alone is not enough to distinguish public native app clients from confidential web clients, it is REQUIRED in Section 8.4 that the client type be recorded during client registration to enable the server to determine the client type and act accordingly. App-claimed "https" scheme redirect URIs have some advantages compared to other native app redirect options in that the identity of the destination app is guaranteed to the authorization server by the operating system. For this reason, native apps SHOULD use them over the other options where possible. Суть происходящего в следующем: - implicit flow считается западлом, потому что пользователь вводит свой пароль в приложении, а не на доверенном ресурсе (ну и еще приложение секрет должно хранить, в итоге получается что секрет доступен всем) - в случае authorization code flow имеют место быть следующие проблемы: -- если мы не хотим хранить секрет в приложении, то нам нужен свой собственный сайт, на который будет проходить редирект после попытки авторизации, а этот сайт в свою очередь будет побуждать браузер/операционную систему передать управление нашему приложению -- если сайта у нас нет, то можно при запуске слушать какой-то порт на локалхосте и редиректы с сервера авторизации слать туда, здесь секрет все равно нужно хранить + нет гарантий что кто-то другой уже порт не слушает, можно для пущей надежности в операционной системе зарегистрировать url-схему, чтобы нам когда нужно передавалось управление, однако хранение секрета - это дыра - вот в случае использования "Claimed "https" Scheme URI Redirection" получается так, что секрет нам на самом деле какбы и не нужен вовсе: мы доверяем операционной системе и браузеру, в том плане, что после всех редиректов управление в конце концов перейдет к нам - т.е. суть "Authorization code with PKCE" заключается в том, что оно на самом деле ничего не усиливает, а просто девальвирует необходимость секрета при этом сохраняя совместимость с обычным flow ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 14:34 |
|
oauth 2.0 Authorization code vs Authorization code with PKCE
|
|||
---|---|---|---|
#18+
Андрей Панфилов, значит моя изначальная картинка - враньё. Вот оф. дока. Тут и правда нет никакого client secret https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.3 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 16:57 |
|
oauth 2.0 Authorization code vs Authorization code with PKCE
|
|||
---|---|---|---|
#18+
questioner, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
вон оно в Authorization передает id и secret ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 17:22 |
|
|
start [/forum/topic.php?fid=59&msg=40123943&tid=2120274]: |
0ms |
get settings: |
15ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
38ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
224ms |
get tp. blocked users: |
0ms |
others: | 2405ms |
total: | 2694ms |
0 / 0 |