複数のサービスを1回のログインで使えるようにする「シングルサインオン(SSO)」と、その裏で使われるID連携の仕組みを学びます。SAML・OAuth・OpenID Connectの違いを整理しましょう。
会社のツールって、朝に1回ログインすると全部使えるようになるよね。
あれって何なの?
それがシングルサインオン(SSO)よ。
1度の認証で、連携している複数のサービスにログインできる仕組みね。
パスワードを何度も入力しなくて済むから便利ですね。
でも、なぜセキュリティ的にも良いのですか?
利用者が覚えるパスワードが1つで済むから、使い回しや弱いパスワードが減るの。
認証をIdP(Identity Provider)に集約できるから、多要素認証やログ管理も一元化できるわ。
IdPって、なんですかぁ?
利用者の身元を保証する認証サーバーのことよ。
逆に、サービスを提供する側はSP(Service Provider)と呼ぶの。
IdPが『この人は本人よ』と証明して、SPがそれを信頼する関係ね。
その証明ってどうやってやり取りするの?
代表的な方式が3つあるわ。
まずSAML。
XMLベースで、主に企業のWebアプリ間のSSOに使われる、少し歴史のある標準よ。
次がOAuthですね。
これは『認可』の仕組みで、パスワードを渡さずに、他のサービスに一部の権限だけを委譲できます。
そのとおり。
『このアプリにあなたの写真フォルダへのアクセスを許可しますか?』という画面、あれがOAuthよ。
あくまで“認可(権限の委譲)”であって、“認証(本人確認)”そのものではない点が重要ね。
じゃあ本人確認はどれでするんですかぁ?
3つ目のOpenID Connect(OIDC)よ。
OAuth 2.0を土台にして、本人確認(認証)の機能を追加した仕組みなの。
『Googleでログイン』などがこれね。
つまり、OAuthは認可、OpenID Connectはその上に認証を乗せたもの、と整理できますね。
完璧よ。
SAMLはXML、OIDCはOAuth 2.0ベースでトークンにJWTを使う、という違いも押さえておくといいわ。
1回のログインで全部つながるって、便利さと安全さの両立なんだね!
ええ。
ただしIdPが乗っ取られると全サービスに影響が及ぶから、IdP自体の保護と多要素認証が欠かせないわ。
確認クイズ
OAuth 2.0とOpenID Connectの関係の説明として、最も適切なものはどれか。
- OAuthは認証、OpenID Connectは認可を担う仕組みである
- OpenID Connectは、OAuth 2.0を基盤として認証機能を追加した仕組みである
- 両者はXMLベースで、企業内WebアプリのSSO専用に設計されている
- OpenID Connectはパスワードそのものをサービス間で共有する方式である
こたえを見る
正解: 2. OpenID Connectは、OAuth 2.0を基盤として認証機能を追加した仕組みである
OpenID ConnectはOAuth 2.0を土台に本人確認(認証)を追加した仕組みで、2が正しい。OAuthは本来『認可(権限の委譲)』の仕組みなので1は逆。XMLベースはSAMLの特徴であり、OIDCはJWTなどを用いるので3は誤り。SSOは本来パスワードを他サービスへ渡さないための仕組みで、4も誤り。