рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ред рдпрд╣ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рд░ рдорд╣реАрдиреЗ OTUS рдиреЗ рдХрдИ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдП рдФрд░ рдЕрдиреВрдареЗ рдкрд╛рдареНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд┐рдП рд╣реИрдВ, рдЗрд╕ рдорд╣реАрдиреЗ рдХрд╛
рдкреЗрдВрдЯреЗрд╕реНрдЯред рдкреНрд░рд╡реЗрд╢ рдкрд░реАрдХреНрд╖рдг рдЕрднреНрдпрд╛рд╕ ред
" рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдкрд░рдВрдкрд░рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рдХреА рдкреВрд░реНрд╡ рд╕рдВрдзреНрдпрд╛ рдкрд░, рд╣рдо рдЖрдкрдХреЗ рд╕рд╛рде рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╕рд╛рдЭрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЖрдЦрд┐рд░реА рдкрдВрдЪрдХ рдХреЗ рджреМрд░рд╛рди, рдореИрдВ
JSON рд╡реЗрдм рдЯреЛрдХрди (рдпрд╛ рд╕рд┐рд░реНрдл JWT) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдпреЛрдЬрдирд╛ рдХреЗ рдкрд╛рд░ рдЖрдпрд╛ред JWT рдореЗрдВ рддреАрди рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ: рд╣реЗрдбрд░, рдкреЗрд▓реЛрдб, рд╕рддреНрдпрд╛рдкрди рдЬрд╛рдирдХрд╛рд░реАред рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рдж рдореЗрдВ JWT рдХреЗ рд╕рддреНрдпрд╛рдкрди рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЦрддрд░рдирд╛рдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ (рд╕рдВрднрд╡рддрдГ) рдирд┐рдпрдВрддреНрд░рдг рдЬреЛ рдпреЛрдЬрдирд╛ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
рдЖрдорддреМрд░ рдкрд░ рджреЛ рд╕рд░реНрдХрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: RS256 (
рдбрд┐рдЬрд┐рдЯрд▓ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рдПрд▓реНрдЧреЛрд░рд┐рдердо ) рдФрд░ HS256 (
рдореИрдХ рдЖрдзрд╛рд░рд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдердо )ред рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк рдПрдХ NULL рдпреЛрдЬрдирд╛ рд╣реЛрдЧреА: рд╕рддреНрдпрд╛рдкрди рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╢рд╛рдорд┐рд▓ рди рдХрд░реЗрдВ - рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ NULL рдпреЛрдЬрдирд╛ рдХреЛ рд▓рдХреНрд╖реНрдп рд╡реЗрдм рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
JWT
type confusion
рдЕрдЯреИрдХ рдкрд░ рдПрдХ рдЫреЛрдЯреА рд╕реА рднрд┐рдиреНрдирддрд╛, рдЬреЛ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИ рдпрджрд┐ рд╕рд░реНрд╡рд░ рдЗрдВрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ рд╡реЗрд░рд┐рдлрд┐рдХреЗрд╢рди (рдЯреЛрдХрди, рдХреА) рдЬреИрд╕реЗ рдХреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ "рдХреБрдВрдЬреА" рд╣рдореЗрд╢рд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рд╣реЗрдЧрд╛ рдФрд░ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдЬреА рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрдирд╛рдИ рдЧрдИ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА)ред
рдЕрдм рд╣рдорд▓рд╛рд╡рд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рдирдпрд╛ рдореИрдХ-рдЖрдзрд╛рд░рд┐рдд рдЯреЛрдХрди рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдЯреЛрдХрди рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореИрдХ-рдЖрдзрд╛рд░рд┐рдд рдпреЛрдЬрдирд╛ рдореЗрдВ, рд╕рддреНрдпрд╛рдкрди рдЬрд╛рдирдХрд╛рд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдЧреБрдкреНрдд рдХреБрдВрдЬреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдорд▓рд╛рд╡рд░ рдореИрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреБрдкреНрдд рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА (рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдЯреЛрдХрди рдЕрдм рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреЛ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЙрд╕ рдпреЛрдЬрдирд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЬреЛ рдХрд┐ рдореИрдХ рдпреЛрдЬрдирд╛ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП рдПрдЪрдПрд╕ 256 рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред рдореИрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧреАред рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдирдП рдореИрдХ рдореИрдХ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЪреВрдВрдХрд┐ рд╡реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рд╕рд░реНрд╡рд░ рдПрдХ рдирдХрд▓реА рдЯреЛрдХрди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдЧрд╛ред рдлрд┐рд░, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрджрд┐ рдЯреЛрдХрди рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рдХреЛ рд╣рдореЗрд╢рд╛ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереАред
рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЙрдкрдХрд░рдг рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЦреБрдж рдПрдХ рдЕрдЬрдЧрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреАред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
jwks_url
: рдореБрдЭреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╣рд╛рдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИред JWKS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рд╕реЗрд╡рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЦреБрд▓реЗ рддреМрд░ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредoperation_url
: рдПрдХ HTTP GET рдЕрдиреБрд░реЛрдз рдЬреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП JWT рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИредtoken
: рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдз JWTредaudience
: рд╡рд╣ рдСрдбрд┐рдпрдВрд╕ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЯреЛрдХрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИ:
- JWKS рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдЗрд╕рд╕реЗ, рдПрдХ рдкреЗрдо рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдирд┐рдХрд╛рд▓реЗ рдЧрдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдЯреЛрдХрди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
- рдПрдХ рдорд╛рдиреНрдп рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдСрдкрд░реЗрд╢рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╛рдкреНрдд HTTP рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдФрд░ рдкрд░рд┐рдгрд╛рдореА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджрд┐рдЦрд╛рддрд╛ рд╣реИ (рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд┐рдЯрд╕рди рд╣реЛрдЧрд╛)ред
- рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдпрд╛ рдЯреЛрдХрди рдмрдирд╛рддрд╛ рд╣реИред рдирдП рдЯреЛрдХрди рдореЗрдВ, рдкреНрд░рдХрд╛рд░ рдХреЛ HS256 рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛; рдПрдХ рдореИрдХ (рдПрдХ рдЦреБрд▓реА рдХреБрдВрдЬреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рдПрдЧреА рдФрд░ рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрди рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- рд╕рдВрд╢реЛрдзрд┐рдд рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдСрдкрд░реЗрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВ рдФрд░ HTTP рд╕реНрдерд┐рддрд┐ рдХреЛрдб, рд╕рд╛рде рд╣реА рд▓реМрдЯреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред
рдЪреВрдВрдХрд┐ рд░рд┐рдЯрд░реНрди рд╕реНрдЯреЗрдЯрд╕ рдХреЛрдб (рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдЯреЛрдХрди рдХреЗ рд╕рд╛рде) 401 рдерд╛ (рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдирд┐рд╖рд┐рджреНрдз рд╣реИ), рд▓рдХреНрд╖реНрдп рд╕рд░реНрд╡рд░ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЬрд╛рдВрдЪ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ рд╣рд╕реНрддрд╛рдХреНрд╖рд░-рдмрдирд╛рдо-рдореИрдХ рд╣рдорд▓реЗ рд╕реЗ рд╕рдордЭреМрддрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрджрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдФрд░ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдореА рджрд╕реНрддрд╛рд╡реЗрдЬ рджреЛрдиреЛрдВ HTTP рдХреЙрд▓ (рдореВрд▓ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕рдВрд╢реЛрдзрд┐рдд рдЯреЛрдХрди рдХреЗ рд╕рд╛рде) рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗред
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдЕрдЬрдЧрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЖрдирдВрдж рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
import jwt import requests from jwcrypto import jwk from cryptography.x509 import load_pem_x509_certificate from cryptography.hazmat.backends import default_backend
рд╡рд╣ рд╕рдм рд╣реИред рд╣рдо рдЙрди рд╕рднреА рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдореБрдлреНрдд рд╡реЗрдмрд┐рдирд╛рд░ рдореЗрдВ рдЕрдВрдд рддрдХ рдкрдврд╝рд╛ рд╣реИ:
"рд╡реЗрдм рдкрд░ рдмрдЧ рдХреИрд╕реЗ рд╕реБрд▓рдЭрд╛рдирд╛
рд╢реБрд░реВ рдХрд░реЗрдВ ред
"