認証情報とは?
認証情報(Credentials、クレデンシャル)は、人、端末、アプリなどが「誰であるか」「そのサービスを利用する資格があるか」を確かめるために使う情報の総称です。身近なものではユーザー名とパスワード、開発ではAPIキーやアクセストークン、電子証明書などが含まれます。
サービスや文脈によって「資格情報」「ログイン情報」「クレデンシャル」と表記されることもあります。厳密な定義は規格によって異なりますが、AIやアプリ開発の記事では、外部サービスへ接続するための秘密情報をまとめて指すことが多くあります。
どんな種類がある?
- ユーザー名とパスワード
- APIキーやシークレットキー
- OAuthで発行されるアクセストークン
- SSHキーや秘密鍵
- 電子証明書、パスキーなど
認証情報によって、使える期間や権限の範囲は異なります。一度発行すると長期間使えるAPIキーもあれば、短時間で期限切れになるアクセストークンもあります。
認証と認可の違い
認証は、「操作しているのは誰か」を確認することです。認可は、確認された人やアプリに「何をしてよいか」を決めることです。正しい認証情報を持っているからといって、すべてのデータを見たり変更したりできるとは限りません。
AIエージェントへ仕事を任せる場合も、認証情報を渡すことと、必要な権限だけを許可することは別です。ログインできても、閲覧だけにするのか、更新や削除まで許すのかを設定する必要があります。
AIエージェントで重要になる理由
チャットAIが文章を返すだけなら、外部サービスの認証情報は必要ありません。しかし、AIエージェントがメール、カレンダー、データベース、GitHub、公開サーバーなどを操作するには、それぞれへ接続するための認証情報が必要です。
認証情報をプロンプトやソースコードへ直接書くと、会話履歴、ログ、共有ファイル、Gitの履歴に残る危険があります。1Passwordのようなシークレット管理サービスを使い、実行時だけ必要な情報を渡す方法が安全です。
安全に扱うための基本
- 平文で共有せず、暗号化された保管場所を使う
- 仕事に必要な最小限の権限だけを与える
- 用途や環境ごとに認証情報を分ける
- 利用記録を確認し、不要になったら無効化する
- 漏えいした可能性があれば、すぐに再発行する
「AIに認証情報を渡してよいか」ではなく、「値を見せず、必要な処理にだけ使わせられるか」という視点で設計することが大切です。