рдУрдкрдирдЖрдИрдбреА рдХрдиреЗрдХреНрдЯ: рдХрд╕реНрдЯрдо рд╕реЗ рдорд╛рдирдХ рддрдХ рдЖрдВрддрд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг

рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЕрдкрдиреЗ рд╕реИрдХрдбрд╝реЛрдВ рдЖрдВрддрд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдкрдирдЖрдИрдбреА рдХрдиреЗрдХреНрдЯ рд╕рд░реНрд╡рд░ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рд╕реЗ, рдЫреЛрдЯреЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рд╣рдо рдЖрдо рддреМрд░ рдкрд░ рд╕реНрд╡реАрдХреГрдд рдорд╛рдирдХ рдкрд░ рдЪрд▓реЗ рдЧрдП рд╣реИрдВред рдХреЗрдВрджреНрд░реАрдп рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдВрдЪ рдиреАрд░рд╕ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░рддреА рд╣реИ, рдкреНрд░рд╛рдзрд┐рдХрд░рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд▓рд╛рдЧрдд рдХреЛ рдХрдо рдХрд░рддреА рд╣реИ, рдЖрдкрдХреЛ рдХрдИ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдФрд░ рдирдП рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЕрдкрдиреЗ рджрд┐рдорд╛рдЧ рдХреЛ рд░реИрдХ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЗрд╕ рдмрджрд▓рд╛рд╡ рдФрд░ рдЙрди рдмрд╛рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рднрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред

рдУрдкрдирдЖрдИрдбреА рдХрдиреЗрдХреНрдЯ: рдХрд╕реНрдЯрдо рд╕реЗ рдорд╛рдирдХ рддрдХ рдЖрдВрддрд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг

рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ... рдпрд╣ рд╕рдм рдХреИрд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ

рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдЬрдм рдореИрдиреБрдЕрд▓ рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЖрдВрддрд░рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдереЗ, рд╣рдордиреЗ рдХрдВрдкрдиреА рдХреЗ рднреАрддрд░ рдПрдХреНрд╕реЗрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрд╛ рдерд╛ред рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд░реЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдерд╛ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рдерд╛, рдЬрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдереАред рдЙрд╕реА рд╕рдордп, рд╣рдордиреЗ рдкрд╣рд▓рд╛ SSO рдЙрдард╛рдпрд╛, рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рдХреА рдУрд░ рд╕реЗ рдЯреЛрдХрди рдХреЗ рд╕рддреНрдпрд╛рдкрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдерд╛, рдЯреЛрдХрди рдХреЛ рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд░реВрдк рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рдкрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЖрдВрддрд░рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддрд░реНрдХ рдХреА рдХрд╛рдлреА рдкрд░рдд рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдерд╛, рдФрд░ рдХрд░реНрдордЪрд╛рд░реА рдбреЗрдЯрд╛рдмреЗрд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдереЗред

рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рд╣рдордиреЗ рдХреЗрдВрджреНрд░реАрдХреГрдд рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдПрд╕рдПрд╕рдУ рдХреЛ рдмреИрд▓реЗрдВрд╕рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред OpenResty рдХреА рдорджрдж рд╕реЗ, Lua рдореЗрдВ рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдЯреЛрдХрди рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рдерд╛, рдЬрд╛рдирддрд╛ рдерд╛ рдХрд┐ рдХрд┐рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ рдкрд╣реБрдБрдЪ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдиреЗ рдЖрдВрддрд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛ рджрд┐рдпрд╛ - рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреЛрдб рдореЗрдВ, рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЕрдм рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рдерд╛ред рдирддреАрдЬрддрди, рд╣рдордиреЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдкрддрд╛ рдерд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЕрдирд╕реБрд▓рдЭреА рд░рд╣реАред рдЙрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЪрд╛рд╣рд┐рдП? рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рдерд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдкрдХреЛ рдРрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рд╣рдорд╛рд░реЗ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рдкрд░ OpenSource рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдлрд┐рд░ рдХрднреА рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред рджреЛрдиреЛрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди OAuth рдерд╛ред

рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдирдХреЛрдВ рдХреЗ рд▓рд┐рдП

OAuth рдПрдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп, рдЖрдо рддреМрд░ рдкрд░ рд╕реНрд╡реАрдХреГрдд рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдорд╛рдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдХреЗрд╡рд▓ рдЗрд╕рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЛрдВрдиреЗ рддреБрд░рдВрдд OpenID Connect (OIDC) рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред OIDC рд╕реНрд╡рдпрдВ рдЦреБрд▓реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдорд╛рдирдХ рдХрд╛ рддреАрд╕рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рдЬреЛ OAuth 2.0 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (рдПрдХ рдЦреБрд▓рд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░реЛрдЯреЛрдХреЙрд▓) рдкрд░ рдРрдб-рдСрди рдореЗрдВ рдкреНрд░рд╡рд╛рд╣рд┐рдд рд╣реБрдЖ рд╣реИред рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдХрдореА рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдмрджрд▓рдирд╛ рднреА рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдордиреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЪрдпрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдФрд░ рд╣рдорд╛рд░реЗ рдореМрдЬреВрджрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдУрдЖрдИрдбреАрд╕реА рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЗрд╕ рдирд┐рд░реНрдгрдп рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдпрд╣ рддрдереНрдп рдерд╛ рдХрд┐ рдУрдЖрдИрдбреАрд╕реА рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╣реБрдд рд▓рдЪреАрд▓рд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдкрдХреЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рдкрд░ рдУрдЖрдИрдбреАрд╕реА рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред

рдУрдкрдирдЖрдИрдбреА рдХрдиреЗрдХреНрдЯ: рдХрд╕реНрдЯрдо рд╕реЗ рдорд╛рдирдХ рддрдХ рдЖрдВрддрд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг

рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рдУрдЖрдИрдбреАрд╕реА рд╕рд░реНрд╡рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╣рдорд╛рд░рд╛ рддрд░реАрдХрд╛

1) рдбреЗрдЯрд╛ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рд░реВрдк рдореЗрдВ рд▓рд╛рдпрд╛

рдУрдЖрдИрдбреАрд╕реА рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХреЛ рдорд╛рдирдХ рджреНрд╡рд╛рд░рд╛ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд░реВрдк рдореЗрдВ рд▓рд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдУрдЖрдИрдбреАрд╕реА рдореЗрдВ рдЗрд╕реЗ рджрд╛рд╡рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ (рдирд╛рдо, рдИрдореЗрд▓, рдлреЛрди, рдЖрджрд┐) рдореЗрдВ рджрд╛рд╡реЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЕрдВрддрд┐рдо рдлрд╝реАрд▓реНрдб рд╣реИрдВред рдореМрдЬреВрдж рдбрд╛рдХ рдЯрд┐рдХрдЯреЛрдВ рдХреА рдорд╛рдирдХ рд╕реВрдЪреА, рдФрд░ рдЬреЛ рдХреБрдЫ рднреА рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ рдЙрд╕реЗ рдХрд╕реНрдЯрдо рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓рд╛ рдмрд┐рдВрджреБ рдЬрд┐рд╕ рдкрд░ рдЖрдкрдХреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдПрдХ рдореМрдЬреВрджрд╛ рдУрдЖрдИрдбреАрд╕реА рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдирдП рдмреНрд░рд╛рдВрдбреЛрдВ рдХреЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЕрдиреБрдХреВрд▓рди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рд╣реЙрд▓рдорд╛рд░реНрдХ рдХреЗ рд╕рдореВрд╣ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрдкрд╕рдореБрдЪреНрдЪрдп рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ред рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рджреМрд░рд╛рди, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмреНрд░рд╛рдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕реНрдХреЛрдк рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕реЗрд╕ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╕реНрдХреЛрдк рдХреЗ рдХреБрдЫ рдмреНрд░рд╛рдВрдбреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред

2) рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрджрд╛рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛

рдУрдЖрдИрдбреАрд╕реА рдПрдХреАрдХрд░рдг рдХрд╛ рдЕрдЧрд▓рд╛ рднрд╛рдЧ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдХрд╛рд░реЛрдВ, рддрдерд╛рдХрдерд┐рдд рдЕрдиреБрджрд╛рдиреЛрдВ рдХрд╛ рдЪрдпрди рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдЪрдпрдирд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХрд╛ рдЖрдЧреЗ рдХрд╛ рдкрд░рд┐рджреГрд╢реНрдп рдЪрдпрдирд┐рдд рдЕрдиреБрджрд╛рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ред рд╕рд╣реА рдЕрдиреБрджрд╛рди рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрдХрд░рдгреАрдп рдпреЛрдЬрдирд╛ рдиреАрдЪреЗ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИред

рдУрдкрдирдЖрдИрдбреА рдХрдиреЗрдХреНрдЯ: рдХрд╕реНрдЯрдо рд╕реЗ рдорд╛рдирдХ рддрдХ рдЖрдВрддрд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг

рд╣рдорд╛рд░реЗ рдкрд╣рд▓реЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рд╕рдмрд╕реЗ рдЖрдо рдЕрдиреБрджрд╛рди, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рджреВрд╕рд░реЛрдВ рд╕реЗ рдЗрд╕рдХрд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рддреАрди рдЪрд░рдгреЛрдВ рд╡рд╛рд▓рд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЕрдиреБрдорддрд┐ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдЯреЛрдХрди - рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рдЗрд╕ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде, рдЬреИрд╕реЗ рдХрд┐ рдпрд╛рддреНрд░рд╛ рдХреЗ рд▓рд┐рдП рдЯрд┐рдХрдЯ рдХреЗ рд╕рд╛рде, рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рднреА рдореБрдЦреНрдп рдЗрдВрдЯрд░реИрдХреНрд╢рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред рдЖрдк рдЗрд╕ рдЕрдиреБрджрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣рд╛рдВ.

OAuth рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмрд╛рдж рдкреНрд░рд╛рдкреНрдд рдЯреЛрдХрди рдЕрд╕реНрдерд╛рдпреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдзрд┐рдорд╛рдирддрдГ рд╣рд░ 10 рдорд┐рдирдЯ рдореЗрдВред рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛрдб рдЕрдиреБрджрд╛рди рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рддреАрди-рдЪрд░рдгреАрдп рд╕рддреНрдпрд╛рдкрди рд╣реИ, рд╣рд░ 10 рдорд┐рдирдЯ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдХрджрдо рдХреЛ рдореЛрдбрд╝рдирд╛, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдЖрдВрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕реБрдЦрдж рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЕрдиреБрджрд╛рди рд╣реИ - Refresh Token, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЕрдкрдиреЗ рджреЗрд╢ рдореЗрдВ рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдЖрд╕рд╛рди рд╣реИред рдПрдХ рдЕрдиреНрдп рдЕрдиреБрджрд╛рди рд╕реЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рджреМрд░рд╛рди, рдореБрдЦреНрдп рдкрд╣реБрдБрдЪ рдЯреЛрдХрди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЕрдиреНрдп рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рддрд╛рдЬрд╝рд╛ рдЯреЛрдХрди, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЬреАрд╡рдирдХрд╛рд▓ рдЖрдорддреМрд░ рдкрд░ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рд░реАрдлрд╝реНрд░реЗрд╢ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде, рдЬрдм рдореБрдЦреНрдп рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдХрд╛ TTL (рдЯрд╛рдЗрдо рдЯреВ рд▓рд╛рдЗрд╡) рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдирдП рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рджреВрд╕рд░реЗ рдЕрдиреБрджрд╛рди рдХреЗ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдкрд░ рдЖ рдЬрд╛рдПрдЧрд╛ред рдкреНрд░рдпреБрдХреНрдд рддрд╛рдЬрд╝рд╛ рдЯреЛрдХрди рддреБрд░рдВрдд рд╢реВрдиреНрдп рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЬрд╛рдБрдЪ рджреЛ-рдЪрд░рдгреАрдп рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХрд┐рд╕реА рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓реЗ, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

3) рдХрд╕реНрдЯрдо рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдк рд╕реЗрдЯ рдХрд░реЗрдВ

рдЪрдпрдирд┐рдд рдЕрдиреБрджрд╛рдиреЛрдВ рдХреЗ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП OIDC рдХрд╛ рдПрдХ рдЕрд▓рдЧ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдк рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдпрд╣ рдЕрджреНрдпрддрд┐рдд рд╣реИред рдФрд░ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдбреЗрдЯрд╛ рдЗрддрдиреА рдмрд╛рд░ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдХрдИ рдмрд╛рд░ рд╡рд░реНрддрдорд╛рди рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрдк JWT рдЯреЛрдХрди рдЬреИрд╕реЗ рд╕рдорд╛рдзрд╛рди рдкрд░ рдЖ рд╕рдХрддреЗ рд╣реИрдВред рдпреЗ рдЯреЛрдХрди рднреА рдорд╛рдирдХ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред JWT рдЯреЛрдХрди рдореЗрдВ рд╣реА рддреАрди рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ: рд╣реЗрдбрд░ (рдЯреЛрдХрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА), рдкреЗрд▓реЛрдб (рдХреЛрдИ рднреА рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛) рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ (рд╣рд╕реНрддрд╛рдХреНрд╖рд░, рдЯреЛрдХрди рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЖрдк рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕реНрд░реЛрдд рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

OIDC рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, JWT рдЯреЛрдХрди рдХреЛ id_token рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рдирд┐рдпрдорд┐рдд рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬреЛ рдХреБрдЫ рдмрдЪрд╛ рд╣реИ рд╡рд╣ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╣реИ JWK. рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЛрд▓рддреЗ рд╣реБрдП, рдпрд╣ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ рдХрд┐ рдПрдХ рдФрд░ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╣реИ, рдЬреЛ рдорд╛рдирдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ RFC5785 OIDC рд╕рд░реНрд╡рд░ рдХреЗ рд╡рд░реНрддрдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рд╕рднреА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдкрддреЗ (рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рд░рд┐рдВрдЧ рдХреЗ рдкрддреЗ рд╕рд╣рд┐рдд), рд╕рдорд░реНрдерд┐рдд рдмреНрд░рд╛рдВрдб рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░, рдкреНрд░рдпреБрдХреНрдд рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо, рд╕рдорд░реНрдерд┐рдд рдЕрдиреБрджрд╛рди рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЧреВрдЧрд▓ рдкрд░:

{
 "issuer": "https://accounts.google.com",
 "authorization_endpoint": "https://accounts.google.com/o/oauth2/v2/auth",
 "device_authorization_endpoint": "https://oauth2.googleapis.com/device/code",
 "token_endpoint": "https://oauth2.googleapis.com/token",
 "userinfo_endpoint": "https://openidconnect.googleapis.com/v1/userinfo",
 "revocation_endpoint": "https://oauth2.googleapis.com/revoke",
 "jwks_uri": "https://www.googleapis.com/oauth2/v3/certs",
 "response_types_supported": [
  "code",
  "token",
  "id_token",
  "code token",
  "code id_token",
  "token id_token",
  "code token id_token",
  "none"
 ],
 "subject_types_supported": [
  "public"
 ],
 "id_token_signing_alg_values_supported": [
  "RS256"
 ],
 "scopes_supported": [
  "openid",
  "email",
  "profile"
 ],
 "token_endpoint_auth_methods_supported": [
  "client_secret_post",
  "client_secret_basic"
 ],
 "claims_supported": [
  "aud",
  "email",
  "email_verified",
  "exp",
  "family_name",
  "given_name",
  "iat",
  "iss",
  "locale",
  "name",
  "picture",
  "sub"
 ],
 "code_challenge_methods_supported": [
  "plain",
  "S256"
 ],
 "grant_types_supported": [
  "authorization_code",
  "refresh_token",
  "urn:ietf:params:oauth:grant-type:device_code",
  "urn:ietf:params:oauth:grant-type:jwt-bearer"
 ]
}

рдЗрд╕ рдкреНрд░рдХрд╛рд░, id_token рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реЙрд▓рдорд╛рд░реНрдХ рдХреЛ рдЯреЛрдХрди рдХреЗ рдкреЗрд▓реЛрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рддреБрд░рдВрдд рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирдП рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдХреЗ рд╕рд╛рдеред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдкрд░рд┐рдгрд╛рдо

рдЗрд╕рд▓рд┐рдП, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ OIDC рд╕рд░реНрд╡рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд╛рдЗрдб рдкрд░ рдЗрд╕рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред
рдЪреВрдВрдХрд┐ рдУрдЖрдИрдбреАрд╕реА рдПрдХ рдЦреБрд▓рд╛ рдорд╛рдирдХ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореМрдЬреВрджрд╛ рдкреНрд░рджрд╛рддрд╛ рдпрд╛ рд╕рд░реНрд╡рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЪреБрдирдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╣рдордиреЗ рдХреАрдХреНрд▓реЛрдХ рдХреЛ рдЖрдЬрдорд╛рдпрд╛, рдЬреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рд╛рдмрд┐рдд рд╣реБрдЖ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрдХреНрд╖ рдкрд░ рдХрдиреЗрдХреНрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯ рдЕрдк рдХрд░рдиреЗ рдФрд░ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдЖрд╡реЗрджрди рдкрдХреНрд╖ рдкрд░, рдЬреЛ рдХреБрдЫ рднреА рд╢реЗрд╖ рд╣реИ рд╡рд╣ рдХрдиреЗрдХреНрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдмрджрд▓рдирд╛ рд╣реИред

рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛

рд╣рдорд╛рд░реЗ рд╕рдВрдЧрдарди рдХреЗ рднреАрддрд░, рдкрд╣рд▓реЗ рдУрдЖрдИрдбреАрд╕реА рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдордиреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдкреВрд░рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЕрдиреНрдп рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рд╡рд┐рд╕реНрддреГрдд рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рдмрд╛рдж, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдмрд┐рдВрджреБ рд╣реИред рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд░реНрд╡рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрдгрдп рдХреЗ рдкрдХреНрд╖ рдореЗрдВ, рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреА рдУрд░ рд╕реЗ рдЪрд┐рдВрддрд╛рдПрдВ рдереАрдВ, рд╕рд╛рде рд╣реА рдПрдХ рдкреБрд░рд╛рдиреА рдкреНрд░рдгрд╛рд▓реА рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╕реНрдЯрдо рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдереЗ рдФрд░ рдХрд╛рдлреА рдХреБрдЫ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдкрд╣рд▓реЗ рд╣реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрддрддрд╛рдПрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Keycloak рдХрд╛ рдЕрдкрдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдмрдВрдзрди рд╕рд┐рд╕реНрдЯрдо рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╕реАрдзреЗ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡рд╣рд╛рдВ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдУрд╡рд░рдЯреЗрдХ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреАрдХреНрд▓реЛрдХ рдХреЗ рдкрд╛рд╕ рдПрдХ рдПрдкреАрдЖрдИ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдкреНрд░рдорд╛рдгрд┐рдд, рджрд┐рд▓рдЪрд╕реНрдк, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдУрд░реА рд╣рд╛рдЗрдбреНрд░рд╛ рд╣реИред рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВред рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдмрдВрдзрди рд╕реЗрд╡рд╛ рдХреЛ рдЙрдирдХреА рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗрд╡рд╛ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдХреАрдХреНрд▓реЛрдХ рдФрд░ рдУрд░реА рд╣рд╛рдЗрдбреНрд░рд╛ рдХреЗрд╡рд▓ рдСрдл-рдж-рд╢реЗрд▓реНрдл рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИрдВред рдУрдкрдирдЖрдИрдбреА рдлрд╛рдЙрдВрдбреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред рдЗрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдПрдХ OpenID рдкреНрд░рдорд╛рдгрди рдмреИрдЬ рд╣реЛрддрд╛ рд╣реИред

рдУрдкрдирдЖрдИрдбреА рдХрдиреЗрдХреНрдЯ: рдХрд╕реНрдЯрдо рд╕реЗ рдорд╛рдирдХ рддрдХ рдЖрдВрддрд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг

рдпрджрд┐ рдЖрдк рдЕрдкрдирд╛ рдУрдЖрдИрдбреАрд╕реА рд╕рд░реНрд╡рд░ рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдореМрдЬреВрджрд╛ рд╕рд╢реБрд▓реНрдХ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рди рднреВрд▓реЗрдВред рдЖрдЬ рдХрдИ рдЕрдЪреНрдЫреЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ

рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╣рдо рдЖрдВрддрд░рд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╛рддрд╛рдпрд╛рдд рдХреЛ рдПрдХ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рд╣рдо рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди SSO рдХреЛ рдмреИрд▓реЗрдВрд╕рд░ рдкрд░ OpenResty рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ OAuth рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдкреНрд░реЙрдХреНрд╕реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
github.com/bitly/oauth2_proxy
github.com/ory/oathkeeper
github.com/keycloak/keycloak-gatekeeper

рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рдордЧреНрд░реА

jwt.io - JWT рдЯреЛрдХрди рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рд╕реЗрд╡рд╛
openid.net/developers/рдкреНрд░рдорд╛рдгрд┐рдд - рдкреНрд░рдорд╛рдгрд┐рдд рдУрдЖрдИрдбреАрд╕реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдХреА рд╕реВрдЪреА

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ