【くらいあんとにんしょう】

クライアント認証 とは?

最終更新:
💡 つないできたアプリや機器の身元を確かめる

サービスを利用する側のアプリや機器などの身元をサーバーが確認すること。TLSのクライアント証明書やOAuthのクライアント認証など、通信方式によって具体的な方法が異なる。

📌 このページのポイント
TLSのクライアント認証クライアントサーバー認証を要求証明書・署名秘密鍵で署名鍵は送らない証明書の信頼署名を検証署名の対象はハンドシェイクの内容
証明書を見せるだけでなく、対応する秘密鍵を持つことを証明する。アクセス権の判断は認証とは別に行う。
ひよこ ひよこ
クライアント認証って、利用者のログインと同じ?
ペンギン先生 ペンギン先生
何の身元を確かめるかが違うことがあるよ。たとえばOAuthでは、サービスを利用するアプリがクライアントで、そのアプリの認証と利用者本人の認証を区別するんだ。TLSでは接続元が証明書で身元を証明する方法があるね。
ひよこ ひよこ
証明書を見せれば認証できるの?
ペンギン先生 ペンギン先生
見せるだけでは足りないよ。TLS 1.3では証明書に加えて、ハンドシェイクの内容に対する署名を送り、対応する秘密鍵を持つことを証明する。サーバーは証明書の信頼関係と署名を検証するんだ。秘密鍵そのものは送らないよ。
ひよこ ひよこ
mTLSとはどう関係するの?
ペンギン先生 ペンギン先生
mTLSは双方が証明書で相手を認証する方式だよ。クライアントもサーバーの身元を確かめ、サーバーもクライアントの身元を確かめる。証明書をどの認証局から受け入れるかなど、両側の設定が必要になるね。
ひよこ ひよこ
OAuthのアクセストークンもクライアント認証なの?
ペンギン先生 ペンギン先生
アクセストークンは主に、保護された情報へアクセスするための権限を表すものだよ。OAuthでアプリが認証する手続きと、アクセストークンを使う手続きは区別しよう。APIキーも、アプリや契約の識別など何を確認する用途かはサービスの設計によるんだ。
ひよこ ひよこ
認証に成功したら、何でも使えるの?
ペンギン先生 ペンギン先生
認証と、何を許可するかの判断は別だよ。身元が確認できても、アクセスできる機能やデータは権限で制限する。証明書と秘密鍵の管理や、証明書を受け入れる設定を見直すことも必要だね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「クライアント認証」って出てきたら「サーバーが接続してきた相手の身元を確かめること」と思えばだいたいOK!
📖 おまけ:英語の意味
「Client Authentication」 = クライアント認証
💬 通信でサービスを利用する側をclient、その身元の確認をauthenticationと呼ぶよ。

参考資料

← 用語集にもどる