はじめに
備忘録です。タイトルの通り、各用語の意味や関係性が分かりづらかったので、自分なりにまとめてみました。
本文
1. 全体図
各用語の関係性を示した全体図です。
利用シーン毎の例
① 社内アプリでケルベロス認証する
Windows ドメイン環境の社内アプリなどで、広く利用されています。
② Web アプリで OIDC 認証する
「Google でログイン」や「Microsoft アカウントでサインイン」など、一般的な Web サービスのログイン方式です。
③ メールクライアントで OAuth を使用する
Gmail や Outlook などの裏側で使用されています。
2. SASL とは
SASL (Simple Authentication and Security Layer / サスル) とは、アプリケーションプロトコルに認証方式やセキュリティ機能を組み込むためのフレームワークです。この仕組みにより、アプリケーションプロトコルの枠組みを大きく変更することなく、認証方式を柔軟に追加・変更できます。現在では、主に以下のプロトコルで利用されています。
| プロトコル | 分類 | 備考 |
|---|---|---|
| SMTP / IMAP / POP3 | メール | 現代のメールシステムで必須 |
| LDAP (v3) | ディレクトリ | Active Directory / OpenLDAP など |
| AMQP | メッセージング | RabbitMQ など |
| Kafka 内部プロトコル | メッセージング | 独自のプロトコル上で SASL 認証 |
SASL は 1997 年に登場した、成熟した技術ではありますが、現代のプロトコルでも現役で利用される安定した基盤技術です。
3. GSSAPI / SPNEGO / Kerberos とは
3-1. GSSAPI
GSSAPI (Generic Security Service Application Program Interface) とは、アプリケーションが認証やセキュリティ機能を利用するための、抽象化されたインターフェース (API) です。つまり SASL と同じく抽象化レイヤーの一種となります。実際の認証処理は Kerberos など、下位のプロトコルが担当します。
3-2. SPNEGO
SPNEGO (Simple and Protected GSSAPI Negotiation Mechanism) とは、GSSAPIで利用されるメカニズムの一つです。利用可能な認証メカニズムの中から、クライアントとサーバー間で適切な方式をネゴシエーション (交渉) するために使用されます。主に Kerberos や NTLM の選択に利用されます。
補足
NTLM (NT LAN Manager) とは、Windows NT 時代からある古い認証方式です。
3-3. Kerberos
Kerberos 認証 (ケルベロス認証) とは、チケットベースの認証プロトコルです。GSSAPI で利用される代表的な認証メカニズムのひとつであり、実際の認証処理を担います。1980 年代にマサチューセッツ工科大学 (MIT) で誕生し、2026 年現在でも Microsoft Active Directory などで採用されています。もう少し詳しい内容は、以下の記事にまとめています。
4. SAML とは
SAML (Security Assertion Markup Language / サムル / サムエル) とは、認証・認可情報をやりとりするための XML ベースの標準規格であり、シングルサインオン (SSO) などを実現するために利用されます。2002 年に SAML 1.0 が登場し、現行 (2026 年時点) での標準は 2005 年に策定された SAML 2.0 です。成熟した規格ではありますが、安定性と互換性の高さから、現在でもエンタープライズシステムで広く利用されています。
5. OAuth / OIDC とは
5-1. OAuth
OAuth (オーオース) とは、権限の認可を行うための標準規格です。2007 年に登場した OAuth 1.0 は署名ベースの仕組みで複雑だったため、普及は限定的でしたが、2012 年に登場した OAuth 2.0 では HTTP ベースのシンプルなトークン方式に整理され、扱いやすくなりました。2026 年現在では、Web API やサービス・モバイルアプリ・クラウド環境における認可の標準として広く利用されています。
5-2. OIDC
OIDC (OpenID Connect) とは、OAuth 2.0 をベースにした認証プロトコルです。ID トークンを用いてユーザーの認証情報を安全にやりとりできるように設計されており、シングルサインオン (SSO) などを実現できます。
おわりに
まだまだ見えていない部分も多いので、随時更新していきます。