トークンベースの認証とは何ですか?
パスワードは最も一般的な認証形式ですが、唯一の選択肢ではなく、常に最良の選択とは限りません。例えば、パスワードは各アカウントに対してユニークで強力なパスワードを持つ必要があります。
トークンベースの認証は、認証データをトークン内にエンコードします。このトークンは他のアプリケーションに送信され、アプリケーションは内部に保存された認証データを読み取り、ユーザーがシステムにアクセスする権限があるかどうかを判断します。
トークンベースの認証の仕組み
トークンベースの認証システムは、アイデンティティとアクセス管理 (IAM) プロセスを異なるシステムによって実行される2つのステップに分けます。認証は認証サーバーによって行われ、承認は各アプリケーションまたはシステムによって管理されます。これらのシステムは同じ組織内に存在するか、承認システムが他のシステムのユーザーのアイデンティティの認証を信頼するように構成されている場合は、組織間で分割される可能性があります。ソーシャルメディアアカウントを介してウェブサイトにログインすることは、トークンを使用して実行される組織間認証の一例です。
最初のステップでは、ユーザーはパスワードまたは他の手段を介して認証サーバーに自分のアイデンティティを証明します。これはユーザーのパスワードを受け取る唯一のシステムであり、さまざまなセキュリティと使いやすさの利点を提供します。ユーザーを認証した後、認証サーバーはユーザーのアイデンティティに関する情報を含むトークンを生成します。このトークンは、ユーザーがアクセスしたいアプリケーションへのリクエストに含まれます。
このトークンを受け取り、その内容を検証することで、アプリケーションはユーザーが主張する人物であることを確信できます。この情報に基づいて、ユーザーがそのリクエストを行う権限があるかどうかを判断し、リソースへのアクセスを提供または拒否できます。
トークンの一般的な使用例には以下が含まれます:
- アプリ間認証:パスワードは主に人間がアプリケーションに認証するために設計されています。アプリ同士が相互にやり取りする際には、トークンや他の認証手段を一般的に使用します。
- シングルサインオントークンベースの認証はSSOの基盤であり、ユーザーが多くのアプリにアクセスするために一度認証することを可能にします。この場合、認証サーバーからのトークンは、SSOを使用する各アプリによって信頼されます。
- トークンの有効期限:パスワードは長い寿命を持ち、パスワード推測攻撃に対してより脆弱になり、侵害された資格情報の影響を延長します。トークンには組み込みの有効期限があり、盗まれた場合のリスクを制限します。
JSON Web トークン (JWT) とは何か、そしてそれはどのように機能するのか?
ほとんどのトークンベースの認証スキームは、JSON Web トークン (JWT) を使用して実装されています。これらのトークンには、3つの主要なフィールドが含まれています:
- 見出し:トークンの種類や使用される暗号化アルゴリズムなどのメタデータを含みます。
- ペイロード:認可に使用される認証情報を含みます。
- 署名ペイロードデータの真正性を暗号的に証明します。
ユーザーの身元を確認した後、認証サーバーはユーザーのデータとペイロード内のトークンの有効期限を含むJWTを生成します。このデータを受け取るアプリケーションは、署名を検証し、トークンが期限切れでないことを確認し、その後、リクエストを承認するために含まれる情報を使用します。
JWTは使用されている最も一般的なトークンの一部ですが、唯一のものではないことに注意してください。たとえば、セキュリティアサーションマークアップ言語 (SAML) は、エンタープライズアプリケーションのSSOを実装するために使用される別の一般的な標準です。
トークンベースの認証の異なるタイプ
JWTは認証データのセット形式を提供しますが、単なるデータ形式です。アプリケーションは、これらのトークンを作成、送信、使用する方法を理解するための共通のプロトコルが必要です。最も一般的なトークンベースのアルゴリズムはOAuth2.0とOpenID Connect (OIDC)です。
OAuth 2.0
OAuth2.0は、ユーザーの資格情報を共有することなく認可を可能にするために、トークンベースの認証に依存する認可プロトコルです。目的は、ユーザーがアプリケーション(「コンシューマ」)に対して、別のアプリケーション(「サービスプロバイダー」)で何らかのアクションを実行することを許可することであり、その際に「サービスプロバイダー」のユーザーの資格情報を「コンシューマ」に提供しないことです。
そのために、コンシューマはユーザーをサービスプロバイダーにリダイレクトし、そこでそのサービスの通常のパスワードを使用して認証します。その後、サービスプロバイダーはユーザーがコンシューマのリクエストを承認していることを確認します。もし承認されれば、コンシューマがサービスプロバイダーのユーザーアカウントにアクセスするために使用できるアクセストークンが生成されます。これにより、サービスプロバイダーのユーザーのパスワードを明らかにすることなくリクエストが承認されます。
OpenID Connect (OIDC)
OpenID Connect (OIDC)は、OAuth 2.0の上に構築された認証および認可プロトコルです。これは、ユーザーを認証するためのアイデンティティレイヤーを追加し、JWTにアイデンティティ情報を保存し、OAuth 2.0が欠いている認証機能を提供します。
OIDCの主な使用ケースは、SSOを実装し、単一の認証リクエストで複数のアプリケーションにアクセスできるようにすることです。このプロトコルには、アプリケーション間でユーザーのアイデンティティとプロファイルデータの一貫した交換を可能にするための標準的なクレームのセットが含まれています。
トークンベースの認証の利点
トークンベースの認証は、アプリケーション間で認証情報を安全に通信できるようにし、アプリが独自にユーザー認証を行う必要を排除します。これにより、ユーザーと組織に多くの利点が提供されます。
ユーザーエクスペリエンスの向上:
トークンベースの認証スキームはSSOの基盤であり、ユーザーが一度認証すれば多くのアプリにアクセスできるようにします。複数のパスワードを記憶し入力する必要がなくなることで、運用効率とユーザー体験が向上します。
強化されたセキュリティ
トークンベースの認証は、すべてのアプリケーションがユーザーパスワードを受け入れ管理する必要を排除することでセキュリティを強化します。しばしば、ユーザーは弱いまたは再利用されたパスワードを持ち、これらのパスワードは決して期限切れになりません。トークンを使用することで、アプリケーションは機密の認証情報を保存する必要がなくなります。さらに、トークンは自動的に期限切れになり、攻撃者が侵害された資格情報を悪用できる時間を短縮します。
より大きなスケーラビリティと効率性
トークンは、サーバーがユーザーの既存のセッションに関する情報を保存する必要を排除します。これにより、サーバーはより多くのユーザーをサポートできるようになり、サーバー側のリソースをより少なく消費します。
詳細なアクセス管理
JWTやその他のトークンは、単純なユーザー名を超えたさまざまなアイデンティティデータを運ぶことができます。さらに、アプリケーションは特定のシナリオに合わせて認可を調整できるため、最小権限の原則 (POLP)やその他のゼロトラスト原則をより良く実施できます。この組み合わせにより、トークンベースの認証スキームは非常に詳細なアクセス管理ポリシーを実装できます。
よくあるご質問
OAuth 2.0とトークンベースの認証の違いは何ですか?
OAuth 2.0は、ユーザー認可を実装するためにアクセス・トークンを使用する特定のプロトコルの一例です。トークンベースの認証はより一般的で、ユーザー認証のためにトークンを使用する任意のスキームをカバーします。
パスワードベースの認証はトークンベースの認証とどのように異なりますか?
パスワードベースの認証を使用するアプリケーションは、ユーザーの資格情報データを保存し、そのアプリケーションのためにパスワードを提供することでユーザーに認証を求めます。トークンベースの認証では、認証サーバーがパスワードまたはその他の資格情報を受け入れ、ユーザーのアイデンティティを証明するトークンを生成し、それをアクセスしたいアプリケーションに送信します。
トークンベースの認証の欠点は何ですか?
トークンベースの認証は一般的にパスワードベースの認証よりも強力なセキュリティを提供しますが、リスクも伴います。例えば、盗まれたトークンは正当なユーザーとして認証に使用される可能性があり、トークンをデジタル署名するために使用される秘密鍵が盗まれ、偽のアクセス・トークンを作成するために使用される可能性があります。
CatoのSASEソリューションでトークンベースの認証を管理する
トークンベースの認証は、認証サーバーがユーザーのアイデンティティを確認し、その後、彼らのアイデンティティを証明するトークンをアプリケーションに送信することによって、認証と認可を切り離します。このアプローチにはさまざまな利点があり、SSOプロトコルの基盤となっています。
トークンベースの認証は、Cato SASE Cloudのゼロトラストネットワークアクセス(ZTNA)機能やCato Management Application(CMA)など、多くの現代のアイデンティティおよびアクセス管理(IAM)システムの中心でもあります。
Catoを使用して組織のゼロトラストセキュリティを実装する方法について詳しく知るには、無料デモにサインアップしてください。
This page was machine-translated. If you notice any inaccuracies or have feedback, please feel free to send it to us here.