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

рдХрд╛рд╣реА рдорд╣рд┐рдиреНрдпрд╛рдВрдкреВрд░реНрд╡реА, рдореА рдЖрдордЪреНрдпрд╛ рд╢реЗрдХрдбреЛ рдЕрдВрддрд░реНрдЧрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╛рдареА рдкреНрд░рд╡реЗрд╢ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА OpenID Connect рд╕рд░реНрд╡реНрд╣рд░ рд▓рд╛рдЧреВ рдХрд░рдд рд╣реЛрддреЛ. рдЖрдордЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдШрдбрд╛рдореЛрдбреАрдВрд╡рд░реВрди, рд▓рд╣рд╛рди рдкреНрд░рдорд╛рдгрд╛рдд рд╕реЛрдпреАрд╕реНрдХрд░, рдЖрдореНрд╣реА рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд╕реНрд╡реАрдХрд╛рд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдорд╛рдирдХрд╛рдВрдХрдбреЗ рдЧреЗрд▓реЛ рдЖрд╣реЛрдд. рдХреЗрдВрджреНрд░реАрдп рд╕реЗрд╡реЗрджреНрд╡рд╛рд░реЗ рдкреНрд░рд╡реЗрд╢ рдХреЗрд▓реНрдпрд╛рдиреЗ рдиреАрд░рд╕ рдСрдкрд░реЗрд╢рдиреНрд╕ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╕реБрд▓рдн рд╣реЛрддрд╛рдд, рдЕрдзрд┐рдХреГрддрддреЗрдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреА рдХрд┐рдВрдордд рдХрдореА рд╣реЛрддреЗ, рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдиреЗрдХ рддрдпрд╛рд░ рд╕рдорд╛рдзрд╛рдиреЗ рд╢реЛрдзрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рдорд┐рд│рддреЗ рдЖрдгрд┐ рдирд╡реАрди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддрд╛рдирд╛ рддреБрдордЪрд╛ рдореЗрдВрджреВ рд░реЕрдХ рд╣реЛрдд рдирд╛рд╣реА. рдпрд╛ рд▓реЗрдЦрд╛рдд, рдореА рдпрд╛ рд╕рдВрдХреНрд░рдордгрд╛рдмрджреНрджрд▓ рдЖрдгрд┐ рдЖрдореНрд╣реА рднрд░рдгреНрдпрд╛рдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЕрдбрдерд│реНрдпрд╛рдВрдмрджреНрджрд▓ рдмреЛрд▓реЗрди.

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

рдЦреВрдк рд╡рд░реНрд╖рд╛рдВрдкреВрд░реНрд╡реА... рд╣реЗ рд╕рд░реНрд╡ рдХрд╕реЗ рд╕реБрд░реВ рдЭрд╛рд▓реЗ

рдХрд╛рд╣реА рд╡рд░реНрд╖рд╛рдВрдкреВрд░реНрд╡реА, рдЬреЗрд╡реНрд╣рд╛ рдореЕрдиреНрдпреБрдЕрд▓ рдирд┐рдпрдВрддреНрд░рдгрд╛рд╕рд╛рдареА рдмрд░реЗрдЪ рдЕрдВрддрд░реНрдЧрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реЛрддреЗ, рддреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА рдХрдВрдкрдиреАрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓рд┐рд╣рд┐рд▓рд╛. рд╣рд╛ рдПрдХ рд╕рд╛рдзрд╛ рд░реЗрд▓ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реЛрддрд╛ рдЬреЛ рдХрд░реНрдордЪрд╛рд░реНтАНрдпрд╛рдВрдЪреНрдпрд╛ рдорд╛рд╣рд┐рддреАрд╕рд╣ рдбреЗрдЯрд╛рдмреЗрд╕рд╢реА рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛, рдЬрд┐рдереЗ рд╡рд┐рд╡рд┐рдз рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪрд╛ рдкреНрд░рд╡реЗрд╢ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓рд╛ рд╣реЛрддрд╛. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдЖрдореНрд╣реА рдкрд╣рд┐рд▓рд╛ SSO рдЙрднрд╛ рдХреЗрд▓рд╛, рдЬреЛ рдХреНрд▓рд╛рдпрдВрдЯ рдЖрдгрд┐ рдЕрдзрд┐рдХреГрддрддрд╛ рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ рдЯреЛрдХрдирдЪреНрдпрд╛ рдкрдбрддрд╛рд│рдгреАрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛, рдЯреЛрдХрди рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╕реНрд╡рд░реВрдкрд╛рдд рдЕрдиреЗрдХ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╣ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрдгрд┐ рдЕрдзрд┐рдХреГрддрддрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ. рд╣рд╛ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдпреАрд╕реНрдХрд░ рдкрд░реНрдпрд╛рдп рдирд╡реНрд╣рддрд╛, рдХрд╛рд░рдг рдкреНрд░рддреНрдпреЗрдХ рдЕрдВрддрд░реНрдЧрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╕ рддрд░реНрдХрд╢рд╛рд╕реНрддреНрд░рд╛рдЪреНрдпрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕реНрддрд░рд╛рдЪреЗ рд╡рд░реНрдгрди рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ рдЖрдгрд┐ рдХрд░реНрдордЪрд╛рд░реА рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрдзрд┐рдХреГрддрддрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╕рд╣ рдкреВрд░реНрдгрдкрдгреЗ рд╕рдордХреНрд░рдорд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ.

рдХрд╛рд╣реА рдХрд╛рд│рд╛рдирдВрддрд░, рдЖрдореНрд╣реА рдХреЗрдВрджреНрд░реАрдХреГрдд рдЕрдзрд┐рдХреГрддрддреЗрдЪреЗ рдХрд╛рд░реНрдп рд╕реБрд▓рдн рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛. SSO рдЪреА рдмреЕрд▓рдиреНрд╕рд░рдХрдбреЗ рдмрджрд▓реА рдЭрд╛рд▓реА. OpenResty рдЪреНрдпрд╛ рдорджрддреАрдиреЗ, рд▓реБрдЖрдордзреНрдпреЗ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЬреЗ рдЯреЛрдХрди рддрдкрд╛рд╕рддреЗ, рд╡рд┐рдирдВрддреА рдХреЛрдгрддреНрдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдХрдбреЗ рдЬрд╛рдд рдЖрд╣реЗ рд╣реЗ рдорд╛рд╣рд┐рдд рд╣реЛрддреЗ рдЖрдгрд┐ рддреЗрдереЗ рдкреНрд░рд╡реЗрд╢ рдЖрд╣реЗ рдХреА рдирд╛рд╣реА рд╣реЗ рддрдкрд╛рд╕реВ рд╢рдХрддреЗ. рдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдиреЗ рдЕрдВрддрд░реНрдЧрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреЗ рдХрд╛рд░реНрдп рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╕реБрд▓рдн рдХреЗрд▓реЗ - рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреНрдпрд╛ рдХреЛрдбрдордзреНрдпреЗ, рдпрд╛рдкреБрдвреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХрд╢рд╛рд╕реНрддреНрд░рд╛рдЪреЗ рд╡рд░реНрдгрди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдирд╡реНрд╣рддреЗ. рдкрд░рд┐рдгрд╛рдореА, рдЖрдореНтАНрд╣реА рдмрд╛рд╣реЗрд░реВрди рд░рд╣рджрд╛рд░реА рдмрдВрдж рдХреЗрд▓реА рдЖрдгрд┐ ре▓рдкреНрд▓рд┐рдХреЗрд╢рдирд▓рд╛рдЪ рдЕрдзрд┐рдХреГрддрддреЗрдмрджреНрджрд▓ рдХрд╛рд╣реАрд╣реА рдорд╛рд╣рд┐рддреА рдирд╛рд╣реА.

рддрдерд╛рдкрд┐, рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЕрдиреБрддреНрддрд░реАрдд рд░рд╛рд╣рд┐рд▓реА. рдХрд░реНрдордЪрд╛рд░реНтАНрдпрд╛рдВрдЪреА рдорд╛рд╣рд┐рддреА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдЪреЗ рдХрд╛рдп? рдЕрдзрд┐рдХреГрддрддрд╛ рд╕реЗрд╡реЗрд╕рд╛рдареА API рд▓рд┐рд╣рд┐рдгреЗ рд╢рдХреНрдп рд╣реЛрддреЗ, рдкрд░рдВрддреБ рдирдВрддрд░ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЕрд╢рд╛ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рдЬреЛрдбрд╛рд╡реЗ рд▓рд╛рдЧрддреАрд▓. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдордЪреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рдЕрдзрд┐рдХреГрддрддрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реАрд▓, OpenSource рдордзреНрдпреЗ рдЕрдиреБрд╡рд╛рджрд╛рд╕рд╛рдареА рднрд╡рд┐рд╖реНрдпрд╛рдд рдЕрднрд┐рдореБрдЦ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЖрдордЪреНрдпрд╛ рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдкреИрдХреА рдПрдХрд╛рд╡рд░реАрд▓ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡рд╛рдкрд╛рд╕реВрди рдореБрдХреНрддреА рдорд┐рд│рд╡рд╛рдпрдЪреА рд╣реЛрддреА. рддреНрдпрд╛рдмрджреНрджрд▓ рдЖрдкрдг рдХрдзреАрддрд░реА рдмреЛрд▓реВ. рджреЛрдиреНрд╣реА рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рд╕рдорд╛рдзрд╛рди OAuth рд╣реЛрддреЗ.

рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдирдХрд╛рдВрд╕рд╛рдареА

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

рддрдерд╛рдкрд┐, рдЖрдореНрд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рджрд╛рддрд╛ рдирд┐рд╡рдбрд▓рд╛ рдирд╛рд╣реА рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ рд╡рд┐рджреНрдпрдорд╛рди рдЕрдзрд┐рдХреГрддрддрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╕рд╛рдареА OIDC рд╕рд╣ рдПрдХрддреНрд░реАрдХрд░рдг рдЬреЛрдбрдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛. рдпрд╛ рдирд┐рд░реНрдгрдпрд╛рдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ рд╣реЗ рддрдереНрдп рд╣реЛрддреЗ рдХреА рдУрдЖрдпрдбреАрд╕реА рдЕрдВрддрд┐рдо рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдЕрдзрд┐рдХреГрддрддреЗрдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдЕрддрд┐рд╢рдп рд▓рд╡рдЪрд┐рдХ рдЖрд╣реЗ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рддреБрдордЪреНрдпрд╛ рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдЕрдзрд┐рдХреГрддрддрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ OIDC рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд░рдгреЗ рд╢рдХреНрдп рдЭрд╛рд▓реЗ.

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

рдЖрдордЪрд╛ рд╕реНрд╡рддрдГрдЪрд╛ OIDC рд╕рд░реНрд╡реНрд╣рд░ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЖрдордЪрд╛ рдорд╛рд░реНрдЧ

1) рдЗрдЪреНрдЫрд┐рдд рдлреЙрд░реНрдордордзреНрдпреЗ рдбреЗрдЯрд╛ рдЖрдгрд▓рд╛

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

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

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

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

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

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

OAuth рдпрд╛ рд╕рдВрдХрд▓реНрдкрдиреЗрдЪреЗ рдкрд╛рд▓рди рдХрд░рддреЗ рдХреА рдЕрдзрд┐рдХреГрддрддреЗрдирдВрддрд░ рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реЗрд▓реЗ рдкреНрд░рд╡реЗрд╢ рдЯреЛрдХрди рддрд╛рддреНрдкреБрд░рддреЗ рдЕрд╕рд╛рд╡реЗрдд рдЖрдгрд┐ рдмрджрд▓рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗрдд, рд╢рдХреНрдпрддреЛ рд╕рд░рд╛рд╕рд░реА рджрд░ 10 рдорд┐рдирд┐рдЯрд╛рдВрдиреА. рдСрдереЛрд░рд╛рдпрдЭреЗрд╢рди рдХреЛрдб рдЧреНрд░рдБрдЯ рд╣реЗ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯрджреНрд╡рд╛рд░реЗ рддреАрди-рдЪрд░рдг рд╕рддреНрдпрд╛рдкрди рдЖрд╣реЗ, рджрд░ 10 рдорд┐рдирд┐рдЯрд╛рдВрдиреА рдЕрд╕реЗ рдкрд╛рдКрд▓ рд╡рд│рд╡рдгреЗ, рд╕реНрдкрд╖реНрдЯрдкрдгреЗ, рдбреЛрд│реНрдпрд╛рдВрд╕рд╛рдареА рд╕рд░реНрд╡рд╛рдд рдЖрдирдВрджрджрд╛рдпреА рдХрд╛рд░реНрдп рдирд╛рд╣реА. рдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдгрдЦреА рдПрдХ рдЕрдиреБрджрд╛рди рдЖрд╣реЗ - рд░реАрдлреНрд░реЗрд╢ рдЯреЛрдХрди, рдЬреЗ рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рджреЗрд╢рд╛рдд рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░рд▓реЗ. рдпреЗрдереЗ рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╕реЛрдкреЗ рдЖрд╣реЗ. рджреБрд╕рд░реНтАНрдпрд╛ рдЕрдиреБрджрд╛рдирд╛рддреВрди рдкрдбрддрд╛рд│рдгреА рдХрд░рддрд╛рдирд╛, рдореБрдЦреНрдп рдкреНрд░рд╡реЗрд╢ рдЯреЛрдХрди рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдгрдЦреА рдПрдХ рдЬрд╛рд░реА рдХреЗрд▓реЗ рдЬрд╛рддреЗ - рд░реАрдлреНрд░реЗрд╢ рдЯреЛрдХрди, рдЬреЗ рдлрдХреНрдд рдПрдХрджрд╛рдЪ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдЖрдгрд┐ рддреНрдпрд╛рдЪреЗ рдЖрдпреБрд╖реНрдпрдорд╛рди рдЬрд╛рд╕реНрдд рдЕрд╕рддреЗ. рдпрд╛ рд░реАрдлреНрд░реЗрд╢ рдЯреЛрдХрдирд╕рд╣, рдЬреЗрд╡реНрд╣рд╛ рдореБрдЦреНрдп рдкреНрд░рд╡реЗрд╢ рдЯреЛрдХрдирдЪрд╛ TTL (рдЯрд╛рдЗрдо рдЯреВ рд▓рд╛рдЗрд╡реНрд╣) рд╕рдВрдкрддреЛ, рддреЗрд╡реНрд╣рд╛ рдирд╡реАрди рдкреНрд░рд╡реЗрд╢ рдЯреЛрдХрдирдЪреА рд╡рд┐рдирдВрддреА рджреБрд╕рд░реНтАНрдпрд╛ рдЕрдиреБрджрд╛рдирд╛рдЪреНрдпрд╛ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреВрд╡рд░ рдпреЗрдИрд▓. рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рд░реАрдлреНрд░реЗрд╢ рдЯреЛрдХрди рддрд╛рдмрдбрддреЛрдм рд╢реВрдиреНрдпрд╛рд╡рд░ рд░реАрд╕реЗрдЯ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рд╣реА рддрдкрд╛рд╕рдгреА рджреНрд╡рд┐-рдЪрд░рдгреАрдп рдЖрд╣реЗ рдЖрдгрд┐ рдкрд╛рд░реНрд╢реНрд╡рднреВрдореАрдд рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ, рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рдЕрджреГрд╢реНрдпрдкрдгреЗ.

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

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

OIDC рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдордзреНрдпреЗ, JWT рдЯреЛрдХрдирд▓рд╛ id_token рдореНрд╣рдгрддрд╛рдд. рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╡реЗрд╢ рдЯреЛрдХрдирд╕рд╣ рд╡рд┐рдирдВрддреА рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ рдЖрдгрд┐ рдлрдХреНрдд рд╕реНрд╡рд╛рдХреНрд╖рд░реА рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдгреЗ рдмрд╛рдХреА рдЖрд╣реЗ. рдСрдереЛрд░рд╛рдпрдЭреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░рдХрдбреЗ рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреАрдЬрдЪреНрдпрд╛ рдЧреБрдЪреНрдЫрд╛рд╕рд╣ рдпрд╛рд╕рд╛рдареА рд╡реЗрдЧрд│рд╛ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдЖрд╣реЗ рдЬреЗ.рдбрдмреНрд▓реНрдпреВ.рдХреЗ.. рдЖрдгрд┐ рдпрд╛рдмрджреНрджрд▓ рдмреЛрд▓рдгреЗ, рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдХреА рдЖрдгрдЦреА рдПрдХ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреВ рдЖрд╣реЗ, рдЬреЛ рдорд╛рдирдХрд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ рдЖрд░рдПрдлрд╕реА 5785 OIDC рд╕рд░реНрд╡реНрд╣рд░рдЪреЗ рд╡рд░реНрддрдорд╛рди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рддреЗ. рдпрд╛рдд рд╕рд░реНрд╡ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкрддреНрддреЗ (рд╕реНрд╡рд╛рдХреНрд╖рд░реАрд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреА рд░рд┐рдВрдЧрдЪреНрдпрд╛ рдкрддреНрддреНрдпрд╛рд╕рд╣), рд╕рдорд░реНрдерд┐рдд рдмреНрд░рдБрдб рдЖрдгрд┐ рд╕реНрдХреЛрдк, рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдо, рд╕рдорд░реНрдерд┐рдд рдЕрдиреБрджрд╛рди рдЗ.

Google рд╡рд░ рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде:

{
 "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 рд╕рд░реНрд╡реНрд╣рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдЖрдгрд┐ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ рдХрдиреЗрдХреНрд╢рди рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХреЗрд▓реЗ.
OIDC рд╣реЗ рдЦреБрд▓реЗ рдорд╛рдирдХ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЖрдордЪреНрдпрд╛рдХрдбреЗ рд╡рд┐рджреНрдпрдорд╛рди рдкреНрд░рджрд╛рддрд╛ рдХрд┐рдВрд╡рд╛ рд╕рд░реНрд╡реНрд╣рд░ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдирд┐рд╡рдбрдгреНрдпрд╛рдЪрд╛ рдкрд░реНрдпрд╛рдп рдЖрд╣реЗ. рдЖрдореНрд╣реА рдХреАрдХреНрд▓реЛрдХ рд╡рд╛рдкрд░реВрди рдкрд╛рд╣рд┐рд▓реЗ, рдЬреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рдЦреВрдк рд╕реЛрдпреАрдЪреЗ рдард░рд▓реЗ, рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ рдХрдиреЗрдХреНрд╢рди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдЖрдгрд┐ рдмрджрд▓рд▓реНрдпрд╛рдирдВрддрд░, рддреЗ рдЬрд╛рдгреНрдпрд╛рд╕рд╛рдареА рддрдпрд╛рд░ рдЖрд╣реЗ. рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ, рдлрдХреНрдд рдХрдиреЗрдХреНрд╢рди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрджрд▓рдгреЗ рдмрд╛рдХреА рдЖрд╣реЗ.

рд╡рд┐рджреНрдпрдорд╛рди рдЙрдкрд╛рдпрд╛рдВрдмрджреНрджрд▓ рдмреЛрд▓рдгреЗ

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

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

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

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

рддрд╕реЗрдЪ рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪрд╛ OIDC рд╕рд░реНрд╡реНрд╣рд░ рдареЗрд╡рд╛рдпрдЪрд╛ рдирд╕реЗрд▓ рддрд░ рд╡рд┐рджреНрдпрдорд╛рди рд╕рд╢реБрд▓реНрдХ рдкреНрд░рджрд╛рддреНрдпрд╛рдВрдмрджреНрджрд▓ рд╡рд┐рд╕рд░реВ рдирдХрд╛. рдЖрдЬ рдмрд░реЗрдЪ рдЪрд╛рдВрдЧрд▓реЗ рдкрд░реНрдпрд╛рдп рдЖрд╣реЗрдд.

рдкреБрдвреЗ рдХрд╛рдп

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

рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╛рд╣рд┐рддреНрдп

jwt.io - JWT рдЯреЛрдХрди рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЪрд╛рдВрдЧрд▓реА рд╕реЗрд╡рд╛
openid.net/developers/certified - рдкреНрд░рдорд╛рдгрд┐рдд OIDC рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреА рдпрд╛рджреА

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛