Ответ
Single Sign-On (SSO) — это механизм аутентификации, позволяющий пользователям входить в несколько связанных систем с одним набором учетных данных.
Как работает:
- Пользователь входит в систему (Identity Provider, IdP, например, Okta, Azure AD).
- При доступе к другому сервису (Service Provider, SP), IdP подтверждает аутентификацию через токен (SAML, OAuth, OpenID Connect).
- SP разрешает доступ без повторного ввода пароля.
Пример (OAuth 2.0):
# Пример запроса авторизации через Google OAuth
from requests_oauthlib import OAuth2Session
client_id = "your_client_id"
redirect_uri = "https://your-app.com/callback"
scope = ["openid", "email"]
oauth = OAuth2Session(client_id, redirect_uri=redirect_uri, scope=scope)
authorization_url, _ = oauth.authorization_url("https://accounts.google.com/o/oauth2/auth")
# Перенаправляем пользователя на authorization_url для входа
Плюсы:
- Удобство (один вход для всех сервисов).
- Безопасность (меньше паролей в обороте).
Минусы:
- Единая точка отказа (если IdP упал, доступ ко всем сервисам потерян).
- Риск компрометации (взлом аккаунта в IdP дает доступ ко всем системам).