54.3. ÐÑÑенÑиÑикаÑÐ¸Ñ SASL #
SASL â ÑÑо инÑÑаÑÑÑÑкÑÑÑа аÑÑенÑиÑикаÑии Ð´Ð»Ñ Ð¿ÑоÑоколов, оÑиенÑиÑованнÑÑ Ð½Ð° ÑоединениÑ. Ðа даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Postgres Pro ÑеализÑÐµÑ ÑÑи Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð° SASL: SCRAM-SHA-256, SCRAM-SHA-256-PLUS и OAUTHBEARER, а в бÑдÑÑем могÑÑ Ð¿Ð¾ÑвиÑÑÑÑ Ð¸ дÑÑгие. Ðалее опиÑÑваеÑÑÑ, как в пÑинÑипе оÑÑÑеÑÑвлÑеÑÑÑ Ð°ÑÑенÑиÑикаÑÐ¸Ñ SASL, а в ÑледÑÑÑÐ¸Ñ Ð¿Ð¾Ð´ÑÐ°Ð·Ð´ÐµÐ»Ð°Ñ Ð±Ð¾Ð»ÐµÐµ подÑобно ÑаÑÑмаÑÑиваÑÑÑÑ Ð¾ÑделÑнÑе Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ñ.
ÐоÑок ÑообÑений аÑÑенÑиÑикаÑии SASL
ЧÑÐ¾Ð±Ñ Ð½Ð°ÑаÑÑ Ð¾Ð±Ð¼ÐµÐ½ по ÑÑ ÐµÐ¼Ðµ аÑÑенÑиÑикаÑии SASL, ÑеÑÐ²ÐµÑ Ð¿ÐµÑедаÑÑ ÑообÑение AuthenticationSASL. Ðно ÑодеÑÐ¶Ð¸Ñ ÑпиÑок Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð¾Ð² аÑÑенÑиÑикаÑии SASL, Ñ ÐºÐ¾ÑоÑÑми Ð¼Ð¾Ð¶ÐµÑ ÑабоÑаÑÑ ÑеÑвеÑ, в поÑÑдке пÑедпоÑÑений ÑеÑвеÑа.
ÐÐ»Ð¸ÐµÐ½Ñ Ð²ÑбиÑÐ°ÐµÑ Ð¾Ð´Ð¸Ð½ из поддеÑживаемÑÑ Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð¾Ð² из ÑпиÑка и пеÑедаÑÑ ÑеÑвеÑÑ ÑообÑение SASLInitialResponse. ÐÑо ÑообÑение ÑодеÑÐ¶Ð¸Ñ Ð¸Ð¼Ñ Ð²ÑбÑанного Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð° и Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Â«ÐаÑалÑнÑй оÑÐ²ÐµÑ ÐºÐ»Ð¸ÐµÐ½Ñа», еÑли ÑÑо иÑполÑзÑÐµÑ Ð²ÑбÑаннÑй Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼.
Ðа ÑÑим ÑледÑÐµÑ Ð¾Ð´Ð½Ð¾ или неÑколÑÐºÐ¸Ñ ÑообÑений вÑзова Ñо ÑÑоÑÐ¾Ð½Ñ ÑеÑвеÑа и оÑвеÑов Ñо ÑÑоÑÐ¾Ð½Ñ ÐºÐ»Ð¸ÐµÐ½Ñа. ÐÑе вÑÐ·Ð¾Ð²Ñ ÑеÑÐ²ÐµÑ Ð¿ÐµÑедаÑÑ Ð² ÑообÑениÑÑ AuthenticationSASLContinue, а ÐºÐ»Ð¸ÐµÐ½Ñ Ð¾ÑвеÑÐ°ÐµÑ Ð½Ð° Ð½Ð¸Ñ ÑообÑениÑми SASLResponse. ЧаÑÑнÑе деÑали ÑообÑений завиÑÑÑ Ð¾Ñ ÐºÐ¾Ð½ÐºÑеÑного Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð°.
ÐаконеÑ, когда обмен аÑÑенÑиÑикаÑионной инÑоÑмаÑией заканÑиваеÑÑÑ ÑÑпеÑно, ÑеÑÐ²ÐµÑ Ð¿ÐµÑедаÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑное ÑообÑение AuthenticationSASLFinal и ÑÑÐ°Ð·Ñ Ð·Ð° ним ÑообÑение AuthenticationOk. Ð ÑообÑении AuthenticationSASLFinal пеÑедаÑÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе даннÑе Ð¾Ñ ÑеÑвеÑа клиенÑÑ, ÑодеÑжимое коÑоÑÑÑ Ð¾Ð¿ÑеделÑеÑÑÑ Ð²ÑбÑаннÑм Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð¾Ð¼ аÑÑенÑиÑикаÑии. ÐÑли Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼ аÑÑенÑиÑикаÑии не ÑÑебÑÐµÑ Ð¿ÐµÑедаваÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе даннÑе в завеÑÑение обмена, ÑообÑение AuthenticationSASLFinal опÑÑкаеÑÑÑ.
Ð ÑлÑÑае оÑибки ÑеÑÐ²ÐµÑ Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑеÑваÑÑ Ð¿ÑоÑеÑÑ Ð°ÑÑенÑиÑикаÑии на лÑбом ÑÑапе и пеÑедаÑÑ ÑообÑение ErrorMessage.
54.3.1. ÐÑÑенÑиÑикаÑÐ¸Ñ SCRAM-SHA-256 #
SCRAM-SHA-256 и его ваÑиаÑÐ¸Ñ Ñо ÑвÑзÑванием каналов, SCRAM-SHA-256-PLUS, оÑноÑÑÑÑÑ Ðº меÑ
анизмам аÑÑенÑиÑикаÑии по паÑолÑ. Ðни подÑобно опиÑÑваÑÑÑÑ Ð² RFC 7677 и RFC 5802.
Ðогда в Postgres Pro задейÑÑвÑеÑÑÑ SCRAM-SHA-256, ÑеÑÐ²ÐµÑ Ð¸Ð³Ð½Ð¾ÑиÑÑÐµÑ Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, коÑоÑое ÐºÐ»Ð¸ÐµÐ½Ñ Ð¿ÐµÑедаÑÑ Ð² client-first-message. ÐмеÑÑо ÑÑого иÑполÑзÑеÑÑÑ Ð¸Ð¼Ñ, пеÑеданное Ñанее в ÑÑаÑÑовом ÑообÑении. СоглаÑно ÑпеÑиÑикаÑии SCRAM, Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ бÑÑÑ Ð² UTF-8, но Postgres Pro поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑазнÑе кодиÑовки Ñимволов, и знаÑиÑ, Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Postgres Pro не вÑегда бÑÐ´ÐµÑ Ð¿ÑедÑÑавимо в UTF-8.
Ð ÑпеÑиÑикаÑии SCRAM говоÑиÑÑÑ, ÑÑо паÑÐ¾Ð»Ñ Ñакже должен пеÑедаваÑÑÑÑ Ð² UTF-8 и обÑабаÑÑваÑÑÑÑ Ð°Ð»Ð³Ð¾ÑиÑмом SASLprep. Ðднако Postgres Pro не ÑÑебÑеÑ, ÑÑÐ¾Ð±Ñ Ð¿Ð°ÑÐ¾Ð»Ñ Ð¿ÑедÑÑавлÑлÑÑ Ð² UTF-8. Ðогда ÑÑÑанавливаеÑÑÑ Ð¿Ð°ÑÐ¾Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ, он обÑабаÑÑваеÑÑÑ Ð°Ð»Ð³Ð¾ÑиÑмом SASLprep как паÑÐ¾Ð»Ñ Ð² UTF-8, вне завиÑимоÑÑи Ð¾Ñ ÑакÑиÑеÑкой кодиÑовки. Ðднако еÑли он пÑедÑÑавлен недопÑÑÑимой Ð´Ð»Ñ UTF-8 поÑледоваÑелÑноÑÑÑÑ Ð±Ð°Ð¹Ñов либо ÑодеÑÐ¶Ð¸Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñии байÑов UTF-8, коÑоÑÑе не пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð°Ð»Ð³Ð¾ÑиÑм SASLprep, ÑÑо не бÑÐ´ÐµÑ ÑÑиÑаÑÑÑÑ Ð¾Ñибкой â пÑи аÑÑенÑиÑикаÑии бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð¸ÑÑ Ð¾Ð´Ð½Ñй паÑолÑ, без обÑабоÑки SASLprep. ÐÑо позволÑÐµÑ Ð½Ð¾ÑмализоваÑÑ Ð¿Ð°Ñоли, пÑедÑÑавленнÑе в UTF-8, и пÑи ÑÑом иÑполÑзоваÑÑ Ð¿Ð°Ñоли не в UTF-8, а Ñакже не ÑÑебÑеÑ, ÑÑÐ¾Ð±Ñ ÑиÑÑема знала, в какой кодиÑовке задан паÑолÑ.
СвÑзÑвание каналов поддеÑживаеÑÑÑ Ð² Postgres Pro пÑи ÑбоÑке Ñ Ð¸ÑполÑзованием SSL. ÐÐ»Ñ SCRAM Ñо ÑвÑзÑванием каналов в каÑеÑÑве имени меÑ
анизма SASL вÑбÑано SCRAM-SHA-256-PLUS. Postgres Pro иÑполÑзÑÐµÑ Ñип ÑвÑзÑÐ²Ð°Ð½Ð¸Ñ tls-server-end-point.
Ð SCRAM без ÑвÑзÑÐ²Ð°Ð½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð¾Ð² ÑеÑÐ²ÐµÑ Ð²ÑбиÑÐ°ÐµÑ ÑлÑÑайное ÑиÑло, коÑоÑое пеÑедаÑÑÑÑ ÐºÐ»Ð¸ÐµÐ½ÑÑ Ð´Ð»Ñ ÑмеÑÐ¸Ð²Ð°Ð½Ð¸Ñ Ñ Ð²Ð²ÐµÐ´ÑннÑм полÑзоваÑелем паÑолем и полÑÑÐµÐ½Ð¸Ñ Ð¿ÐµÑедаваемого в оÑÐ²ÐµÑ Ñ ÐµÑа. ХоÑÑ ÑÑо пÑепÑÑÑÑвÑÐµÑ Ð¿Ð¾Ð²ÑоÑÐ½Ð¾Ð¼Ñ Ð²Ð¾ÑпÑÐ¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¿Ð°ÑÐ¾Ð»Ñ Ð² поÑледÑÑÑем ÑеанÑе, подделÑнÑй ÑеÑÐ²ÐµÑ Ð¼ÐµÐ¶Ð´Ñ Ð½Ð°ÑÑоÑÑим ÑеÑвеÑом и клиенÑом Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑозÑаÑно пеÑедаÑÑ ÑлÑÑайное ÑиÑло ÑеÑвеÑа и заÑем ÑÑпеÑно пÑойÑи аÑÑенÑиÑикаÑиÑ.
SCRAM Ñо ÑвÑзÑванием каналов позволÑÐµÑ Ð¿ÑедоÑвÑаÑиÑÑ Ñакие аÑаки поÑÑедника, подмеÑÐ¸Ð²Ð°Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑ ÑеÑÑиÑикаÑа ÑеÑвеÑа в пеÑедаваемÑй Ñ ÐµÑ Ð¿Ð°ÑолÑ. ХоÑÑ Ð¿Ð¾Ð´Ð´ÐµÐ»ÑнÑй ÑеÑÐ²ÐµÑ Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð²ÑоÑиÑÑ Ð¿ÐµÑедаÑÑ ÑеÑÑиÑикаÑа наÑÑоÑÑего ÑеÑвеÑа, Ñ Ð½ÐµÐ³Ð¾ не бÑÐ´ÐµÑ Ð´Ð¾ÑÑÑпа к закÑÑÑÐ¾Ð¼Ñ ÐºÐ»ÑÑÑ, ÑооÑвеÑÑÑвÑÑÑÐµÐ¼Ñ ÑÑÐ¾Ð¼Ñ ÑеÑÑиÑикаÑÑ, поÑÑÐ¾Ð¼Ñ Ð¾Ð½ не ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð´ÑвеÑдиÑÑ, ÑÑо ÑвлÑеÑÑÑ ÐµÐ³Ð¾ владелÑÑем, и, как ÑледÑÑвие, ÑÑÑановиÑÑ SSL-Ñоединение.
ÐÑимеÑ
СеÑÐ²ÐµÑ Ð¿ÐµÑедаÑÑ ÑообÑение AuthenticationSASL. Ðно ÑодеÑÐ¶Ð¸Ñ ÑпиÑок Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð¾Ð² аÑÑенÑиÑикаÑии SASL, Ñ ÐºÐ¾ÑоÑÑми Ð¼Ð¾Ð¶ÐµÑ ÑабоÑаÑÑ ÑеÑвеÑ. ÐÑÐ¾Ñ ÑпиÑок бÑÐ´ÐµÑ Ð²ÐºÐ»ÑÑаÑÑ
SCRAM-SHA-256-PLUSиSCRAM-SHA-256, еÑли ÑеÑÐ²ÐµÑ ÑобÑан Ñ Ð¿Ð¾Ð´Ð´ÐµÑжкой SSL, а инаÑе â ÑолÑко поÑледнее знаÑение.ÐÐ»Ð¸ÐµÐ½Ñ Ð² оÑÐ²ÐµÑ Ð¿ÐµÑедаÑÑ ÑообÑение SASLInitialResponse, инÑоÑмиÑÑÑÑее о вÑбÑанном Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ðµ,
SCRAM-SHA-256илиSCRAM-SHA-256-PLUS. (ÐÐ»Ð¸ÐµÐ½Ñ Ð²Ð¾Ð»ÐµÐ½ вÑбÑаÑÑ Ð»Ñбой Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼, но Ð´Ð»Ñ Ð±Ð¾Ð»ÑÑей безопаÑноÑÑи ÑледÑÐµÑ Ð²ÑбиÑаÑÑ Ð²Ð°ÑиаÑÐ¸Ñ Ñо ÑвÑзÑванием каналов, еÑли он ÑÑо поддеÑживаеÑ.) Рполе «ÐаÑалÑнÑй оÑÐ²ÐµÑ ÐºÐ»Ð¸ÐµÐ½Ñа» ÑÑо ÑообÑение ÑодеÑÐ¶Ð¸Ñ Ð´Ð°Ð½Ð½Ñе SCRAMclient-first-message. Ðclient-first-messageÑодеÑжиÑÑÑ Ñип ÑвÑзÑÐ²Ð°Ð½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð¾Ð², вÑбÑаннÑй клиенÑом.СеÑÐ²ÐµÑ Ð¿ÐµÑедаÑÑ ÑообÑение AuthenticationSASLContinue, ÑодеÑжаÑее даннÑе SCRAM
server-first-message.ÐÐ»Ð¸ÐµÐ½Ñ Ð¿ÐµÑедаÑÑ ÑообÑение SASLResponse, ÑодеÑжаÑее даннÑе SCRAM
client-final-message.СеÑÐ²ÐµÑ Ð¿ÐµÑедаÑÑ ÑообÑение AuthenticationSASLFinal, ÑодеÑжаÑее даннÑе SCRAM
server-final-message, и ÑÑÐ°Ð·Ñ Ð·Ð° ним ÑообÑение AuthenticationOk.
54.3.2. ÐÑÑенÑиÑикаÑÐ¸Ñ OAUTHBEARER #
OAUTHBEARER â меÑ
анизм на оÑнове Ñокенов Ð´Ð»Ñ ÑедеÑаÑивной аÑÑенÑиÑикаÑии. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº RFC 7628.
Тип обмена завиÑÐ¸Ñ Ð¾Ñ Ñого, еÑÑÑ Ð»Ð¸ в кеÑе Ñ ÐºÐ»Ð¸ÐµÐ½Ñа Ñокен Ñипа bearer Ð´Ð»Ñ ÑекÑÑего полÑзоваÑелÑ. ÐÑли Ñокена неÑ, Ñо обмен бÑÐ´ÐµÑ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸ÑÑ ÑеÑез два ÑоединениÑ: пеÑвое Ñоединение (discovery connection) нÑжно Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¼ÐµÑаданнÑÑ OAuth Ð¾Ñ ÑеÑвеÑа, вÑоÑое Ñоединение поÑле Ñого, как ÐºÐ»Ð¸ÐµÐ½Ñ Ð¿Ð¾Ð»ÑÑÐ¸Ñ Ñокен, â Ð´Ð»Ñ ÐµÐ³Ð¾ оÑпÑавки полÑзоваÑелÑ. (Ð libpq на даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð½Ðµ Ñеализован меÑод кеÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ°Ðº ÑаÑÑÑ Ð²ÑÑÑоенного поÑока, поÑÑÐ¾Ð¼Ñ Ð¸ÑполÑзÑеÑÑÑ Ð¾Ð±Ð¼ÐµÐ½ ÑеÑез два ÑоединениÑ.)
ÐÑÐ¾Ñ Ð¼ÐµÑ
анизм иниÑииÑÑеÑÑÑ ÐºÐ»Ð¸ÐµÐ½Ñом, как и SCRAM. ÐаÑалÑнÑй оÑÐ²ÐµÑ ÐºÐ»Ð¸ÐµÐ½Ñа ÑоÑÑÐ¾Ð¸Ñ Ð¸Ð· ÑÑандаÑÑного заголовка "GS2", иÑполÑзÑемого SCRAM, поÑле коÑоÑого вÑводиÑÑÑ ÑпиÑок Ð¿Ð°Ñ key=value. ÐдинÑÑвеннÑй клÑÑ, коÑоÑÑй на даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаеÑÑÑ ÑеÑвеÑом, â auth, ÑодеÑжаÑий Ñокен Ñипа bearer. OAUTHBEARER дополниÑелÑно опÑеделÑÐµÑ ÑÑи необÑзаÑелÑнÑÑ
компоненÑа наÑалÑного оÑвеÑа клиенÑа (authzid заголовка GS2 и клÑÑи host и port), коÑоÑÑе на даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑеÑÐ²ÐµÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑ.
OAUTHBEARER не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¿ÑивÑÐ·ÐºÑ ÐºÐ°Ð½Ð°Ð»Ð¾Ð². ÐеÑ
анизм "OAUTHBEARER-PLUS" оÑÑÑÑÑÑвÑеÑ. ÐÑи ÑÑпеÑной аÑÑенÑиÑикаÑии в меÑ
анизме не иÑполÑзÑÑÑÑÑ Ð´Ð°Ð½Ð½Ñе ÑеÑвеÑа, поÑÑÐ¾Ð¼Ñ Ð¿Ñи обмене не пеÑедаÑÑÑÑ ÑообÑение AuthenticationSASLFinal.
ÐÑимеÑ
ÐÑи пеÑвом обмене ÑеÑÐ²ÐµÑ Ð¿ÐµÑедаÑÑ ÐºÐ»Ð¸ÐµÐ½ÑÑ ÑообÑение AuthenticationSASL, пÑÐµÐ´Ð»Ð°Ð³Ð°Ñ Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼
OAUTHBEARER.ÐÐ»Ð¸ÐµÐ½Ñ Ð² оÑÐ²ÐµÑ Ð¿ÐµÑедаÑÑ ÑообÑение SASLInitialResponse, инÑоÑмиÑÑÑÑее о вÑбÑанном Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ðµ
OAUTHBEARER. ÐÑли Ñ ÐºÐ»Ð¸ÐµÐ½Ñа еÑÑ Ð½ÐµÑ Ð´ÐµÐ¹ÑÑвиÑелÑного Ñокена Ñипа bearer Ð´Ð»Ñ ÑекÑÑего клиенÑа, полеauthпÑÑÑое, ÑÑо ÑказÑÐ²Ð°ÐµÑ Ð½Ð° Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑÑ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿ÐµÑвого ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ (discovery connection).СеÑÐ²ÐµÑ Ð¿ÐµÑедаÑÑ ÑообÑение AuthenticationSASLContinue, ÑодеÑжаÑее оÑибкÑ
status, а Ñакже извеÑÑнÑй URI и облаÑÑи доÑÑÑпа, коÑоÑÑе ÐºÐ»Ð¸ÐµÐ½Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ иÑполÑзоваÑÑ Ð´Ð»Ñ Ð¿Ð¾Ñока OAuth.ЧÑÐ¾Ð±Ñ Ñо Ñвоей ÑÑоÑÐ¾Ð½Ñ Ð·Ð°Ð²ÐµÑÑиÑÑ Ð¿ÐµÑвÑй обмен, ÐºÐ»Ð¸ÐµÐ½Ñ Ð¿ÐµÑедаÑÑ ÑообÑение SASLResponse, ÑодеÑжаÑее пÑÑÑой Ð½Ð°Ð±Ð¾Ñ (один байÑ
0x01).СеÑÐ²ÐµÑ Ð¿ÐµÑедаÑÑ ÑообÑение ErrorMessage, ÑÑÐ¾Ð±Ñ Ð¿ÑеÑваÑÑ Ð¿ÐµÑвÑй обмен.
Ð ÑÑÐ¾Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ñокен Ñипа bearer, ÐºÐ»Ð¸ÐµÐ½Ñ ÑеализÑÐµÑ Ð¾Ð´Ð¸Ð½ из многоÑиÑленнÑÑ Ð´Ð¾ÑÑÑпнÑÑ Ð¿Ð¾Ñоков OAuth, иÑполÑзÑÑ Ð¼ÐµÑаданнÑе, Ñ ÐºÐ¾ÑоÑÑми он бÑл наÑÑÑоен, а Ñакже Ñе меÑаданнÑе, коÑоÑÑе ÐµÐ¼Ñ Ð¿ÐµÑедал ÑеÑвеÑ. (Ð ÑÑом опиÑании намеÑенно опÑÑÐµÐ½Ñ Ð´ÐµÑали;
OAUTHBEARERне опÑеделÑÐµÑ Ð¸ не пÑедпиÑÑÐ²Ð°ÐµÑ Ð¸ÑполÑзование опÑеделÑннÑÑ Ð¼ÐµÑодов Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ñокена.)ÐоÑле полÑÑÐµÐ½Ð¸Ñ Ñокена ÐºÐ»Ð¸ÐµÐ½Ñ Ð¿ÐµÑеподклÑÑаеÑÑÑ Ðº ÑеÑвеÑÑ Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ Ð¾Ð±Ð¼ÐµÐ½Ð°:
СеÑÐ²ÐµÑ Ñнова пеÑедаÑÑ ÑообÑение AuthenticationSASL, пÑÐµÐ´Ð»Ð°Ð³Ð°Ñ Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼
OAUTHBEARER.ÐÐ»Ð¸ÐµÐ½Ñ Ð² оÑÐ²ÐµÑ Ð¿ÐµÑедаÑÑ ÑообÑение SASLInitialResponse, но в ÑÑÐ¾Ñ Ñаз поле
authÑодеÑÐ¶Ð¸Ñ Ñокен Ñипа bearer, коÑоÑÑй бÑл полÑÑен в Ñ Ð¾Ð´Ðµ аÑÑенÑиÑикаÑии клиенÑа.СеÑÐ²ÐµÑ Ð¿ÑовеÑÑÐµÑ Ñокен в ÑооÑвеÑÑÑвии Ñ Ð¸Ð½ÑÑÑÑкÑиÑми, полÑÑеннÑми Ð¾Ñ Ð¿Ð¾ÑÑавÑика Ñокена. ÐÑли клиенÑÑ ÑазÑеÑено подклÑÑение, ÑеÑÐ²ÐµÑ Ð¿ÐµÑедаÑÑ ÑообÑение AuthenticationOk Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ Ð¾Ð±Ð¼ÐµÐ½Ð° SASL.