🔐
SSO(シングルサインオン)
なにか
一つのIDとパスワードの組み合わせで、複数のサービスにログインできる仕組み
ざっくり...
- IdP(アイデンティティプロバイダー)と呼ばれる認証サーバーにログイン情報を集約する
- 各サービスのログイン時にその情報を使用し検証することで、仕組みを可能にする
- Oauth2.0
- アクセストークンのみ発行
- "同一クライアントを利用する別のユーザーである"ということを検証するには、拡張する必要がある
- OIDC(Open ID Connect)
- アクセストークン + IDトークンを発行(どれを発行するか指定できる)
- "同一クライアントを利用する別のユーザーである"ということをIDトークンから検証できる
種類(一部)
- IDaaS(コスト△)
- Okta
- AWS Cognito(メインはCognitoだが、他の追加サービスも必要になる)
- スクラッチ(コスト○)
- KEYCLOAK
構成(例)
IdP(アイデンティティプロバイダー)サーバーを構築する(認証サーバー)
- クライアントがSP(サービスプロバイダー)にアクセスする
- 未ログイン(またはトークンの有効期間切れ)の場合は、IdPサーバーにリダイレクトする
- ログイン後、SPにリダイレクトする(この際に、アクセストークンとIDトークンを受け取る)
- IDトークン(アクセストークン)を使用し、SP側でログインされていることを検証する
Discussion