ホームページ >テクノロジー周辺機器 >IT業界 >パスワードレス認証とそれを実装する方法

パスワードレス認証とそれを実装する方法

Joseph Gordon-Levitt
Joseph Gordon-Levittオリジナル
2025-02-10 12:38:14916ブラウズ

パスワードの時代に別れを告げる!パスワードのない認証のセキュリティと利便性

What is Passwordless Authentication and How to Implement it

コアポイント:

  • パスワードレス認証は、パスワードなどの知識ベースの要因を使用するのではなく、所有権または生体認証などの固有の要因を通じてユーザーのIDを検証するユーザー管理方法です。一般的なパスワードのない方法には、1回限りの検証コード、マジックリンク、生体認証ログイン、スマートカード、デジタル証明書が含まれます。
  • パスワードレス認証セキュリティとユーザーエクスペリエンスの重要な利点は、フィッシングとパスワードの盗難を減らし、資格情報の再利用を削減し、ユーザーの複数のメモリを排除し、ログインをスピードアップします。パスワードレス認証は、2027年までにパスワードの使用を上回ると予想されます。
  • パスワードのない認証には多くの利点がありますが、ユーザーエクスペリエンスに不慣れ、デバイスの盗難またはSIMカードの盗難のリスク、生体認証セキュリティが完璧ではないという事実など、いくつかの制限があります。セキュリティを強化するには、できるだけ多要因認証(MFA)を使用することをお勧めします。
  • Webサイトまたはアプリケーションでのパスワードレス認証の実装は、ユーザー管理ソリューションまたは認証サービスプロバイダーを介して達成できます。この記事では、Fronteggと呼ばれるプロバイダーを使用してパスワードレスアプローチを統合する方法に関する段階的なガイドを提供します。

パスワードレス認証は、ユーザーがパスワードまたはキーなしでシステムまたはアプリケーションにログインできるユーザー管理方法です。これは、パスワードなどの知識ベースの要因を使用するのではなく、電子メールアカウントなどの所有権要因や顔認識などの固有の要因を通じて、ユーザーのIDを検証します。

この記事は、Fronteggと協力して作成されました。 SitePointを可能にしたパートナーをサポートしてくれてありがとう。

多くの認証方法は、パスワードの代替として使用されています:

  • 1回限りの検証コード(OTC)
  • 魔法のリンク
  • バイオメトリックログイン(指紋、フェイスID、音声認識)
  • スマートカードまたは物理的なトークン
  • デジタル証明書

What is Passwordless Authentication and How to Implement it

パスワードのない認証の人気

知らないうちに「パスワードレス認証」を使用している可能性があります。多くの銀行アプリケーションは、指紋と音声認識を使用してユーザーを検証しています。 Slackは、マジックリンクを使用してユーザーを検証することで知られています。

パスワードレス認証の使用は、過去数年にわたって着実に成長してきました。認証プロバイダーであるAuth0は、パスワードレス認証が2027年にパスワードの使用を上回ると予測しています。 Gartnerは、2022年までに、「大規模およびグローバル企業の60%と中規模企業の90%が、2018年の5%から50%以上のユースケースでパスワードレスアプローチを実装する」と予測しています。

インターネットの巨人は、このテクノロジーの採用を加速するために最善を尽くしています。 2022年の世界パスワードで、Google、Microsoft、およびAppleは、作成されたユニバーサルのパスワードのないログイン標準のサポートを拡大する計画を発表しました。

2022年6月、AppleはWebサイトやアプリケーションにログインするための新しい「パスワードキー」機能を発表しました。この発表は、実際にAppleがTouch IDまたはFace IDを使用してサイトのデジタルキーを作成することを意味します。これにより、パスワードを作成および書き込む必要性がなくなります。

パスワードのない認証の利点

パスワードレス認証は、セキュリティとユーザーエクスペリエンスの利点を提供します:

    フィッシングとパスワードの盗難のリスクを軽減します。
  1. ユーザーはフィッシング攻撃の影響を受けません。ユーザーは、偽物のウェブサイトに連れて行かれ、ログイン資格情報を入力します。ユーザーがパスワードを入力しない場合、ブルートフォースの攻撃、パスワードデータ侵害、およびその他の種類の資格盗難の影響を受けません。
  2. クレデンシャルの再利用を削減:
  3. 複数のサービスとアカウントのパスワードの再利用は、ユーザーとシステムに大きなリスクをもたらしますが、これは避けられません。 64%が他のアカウントの1つの脆弱性で公開された同じパスワードを使用していることが報告されています。
  4. パスワードを覚えておく必要はありません:
  5. ユーザーは、多数のアカウントでユーザー名とパスワードを覚えておく必要はありません。複数のログイン障害の後、パスワードを何度もリセットする必要がある場合があります。
  6. ログイン速度の高速:
  7. 私たちは皆非常に忙しいです。強力なパスワードの長さは少なくとも16文字であり、指紋のスキャンや魔法のリンクを開くのに比べて、強力なパスワードを入力するのに長い時間がかかることをお勧めします。
パスワードのない認証の制限

パスワードレス認証は完全ではなく、セキュリティとエクスペリエンスの観点からもいくつかの制限があります。

    馴染みのないユーザーエクスペリエンス:
  • 多くの人が、パスワードの入力または自動充填に慣れています。マジックリンクまたは1回限りの検証コードに変換すると、ユーザーに衝撃を与える可能性があります。
  • デバイスの盗難またはSIMカードの盗難のリスク:
  • テキストメッセージを介して1回限りの検証コードを送信すると、携帯電話が盗まれたり、SIMカードの盗難詐欺の犠牲者になったときにユーザーが脆弱になる場合があります。
  • バイオメトリックセキュリティは完全ではありません。
  • 指紋スキャナー、タッチID、顔IDは、長年にわたって正常にクラックされてきました。
  • 認証の単一の要因(パスワードの有無にかかわらず)に依存すると、リスクが発生する可能性があります。多要素認証(MFA)をできるだけ使用することをお勧めします。

パスワードフリー認証は安全ですか?

はい、パスワードのない認証は安全であると見なされますが、完全にリスクフリーではありません。パスワードのないアカウントは、悪意のある人の手に渡るパスワードを心配する必要はありません。これは、データ侵害、ブルートフォース攻撃、デバイスの喪失、または誤ったポストITノートによって発生する可能性があります。

パスワードレス認証に関連するリスクの多くは、他の方法にも適用されます。

ハッカーがメールアカウントにアクセスし、パスワードのない認証にマジックリンクを使用している場合、簡単にログインできます。ただし、通常のパスワードを使用する場合、このリスクは同じです。悪意のある俳優は、「パスワードのリセット」をクリックして、同じメールアドレスにリセットリンクを送信する必要があります。

最後に、他のシステムと同様に、パスワードレス認証システムは、セキュリティ対策を損なうまたは回避するための直接的な攻撃に対して脆弱です。どんなに安全であっても、資格情報を保存および検証するシステムは、完全に安全になることはありません。

指紋の検証やその他の生体認証要因は、チートするのが難しくなりますが、不可能ではなく、自分自身を承認するための非常に安全な方法を提供します。

パスワードレス認証とマルチファクター認証(MFA)

マルチファクター認証は、ログインするときに複数の認証係数を使用する方法です。この状況の非常に一般的な例は、ユーザー名とパスワードを使用してアカウントにログインする場合、6桁の1回限りの検証コード(OTC)を受け取り、デバイスの所有権を確認します。

この例では、OTC因子はパスワードレスです。代わりに、指紋と1回限りの検証コードを使用している場合、完全にパスワードレスMFAセットアップがあります。

Webサイトにパスワードレス認証を実装する方法

パスワードレス認証をアプリケーションまたはWebサイトに統合するのはこれまで以上に簡単です。既存のインフラストラクチャに応じて、多くの選択肢があります。

  • ユーザー管理ソリューション:

    これらのプロバイダーは、従来のパスワードのない認証だけでなく、ユーザー管理と許可管理も提供する完全に管理されたサービスを提供しています。

      いつ使用するか:
    • 新しいシステムのビルド、スタートアップ、およびすべての低リスクおよびハイリスクの開発努力を避けようとしているチーム。
    • 使用しない場合:
    • 認証またはユーザー管理要件の非常にカスタマイズされたセットがある場合、これらの要件はシステムに適していない場合があります。
    • プロバイダー:
    • frontegg、okta/auth0、Fusionauth、trusona、appwrite
  • 認証サービスプロバイダー:

    これらのサービスは、ユーザー認証、アクセス管理、およびセッション管理などのその他のサービスを提供します。

      いつ使用するか:
    • 既存のユーザー管理サービスがあり、誰かにパスワードと認証を処理してほしい。
    • 使用しない場合:
    • 開発の経験やリソースが限られています。簡単なIDとアクセス管理モデルがある場合は、上記の完全に管理されたソリューションを検討することをお勧めします。
    • プロバイダー:
    • AWS Cognito、Google Identity Platform、Microsoft Azure ad
Reactを使用したパスワードレス認証 - クイックチュートリアル

ユーザーにパスワードレスアプローチを導入することがどれほど簡単かを示すために、Fronteggと呼ばれるプロバイダーを使用して5分間のチュートリアルをご覧ください。他のユーザー管理機能に加えて、セルフサービスのエンドツーエンドユーザー管理プラットフォームも、いくつかのパスワードフリーのログインメソッドを提供します。

ログインと認証サービスの構築は時間がかかり、ユーザープロセスに価値を追加しませんが、何か間違った場合は損傷を引き起こす可能性があります。認証を提供するサービスがより良く、より安価になるにつれて、アプリケーション用の独自のパスワード検証システムを構築する理由はあまりありません。

  1. 無料のFronteggアカウントを作成します

Webサイトを通じてFronteggアカウントを作成します。開始時にパスワードレスオプションとしてマジックコードまたはマジックリンクを必ず選択してください!

What is Passwordless Authentication and How to Implement it

  1. 統合プロセスを開始

ログインボックスの作成を完了し、パスワードレスメソッドを選択したら、「開発するための公開」オプションが表示されます。

Fronteggの使用環境(開発、品質保証、ステージング、生産)、これらの環境には、認証環境のユニークなサブドメイン、キー、およびURLがあります。

サンプルコード、さらに重要なことにはbaseURLclientIDを備えたページに移動します。このページを開いたままにして、IDEにアクセスして、次のステップに進んでください。

  1. Reactアプリケーションを作成します(既に自分のアプリケーションがある場合はこの手順をスキップしてください)

端末に次のコマンドを入力して、新しいReactアプリケーションを作成し、新しいディレクトリに移動します。

<code>npx create-react-app app-with-frontegg
cd app-with-frontegg</code>
  1. frontegg

    をインストールしてインポートします

次のコマンドを実行して、Frontegg React LibraryとReact-Routerをインストールします。アプリケーションにReact-Routerがすでにインストールされている場合は、インストールをスキップできます。

<code>npm install @frontegg/react react-router-dom</code>
  1. ログイン設定を構成

src/index.jsファイルで、次のコードを追加します。次に、Fronteggページに戻り、コードの例からbaseUrlclientIDを見つけます。

注:この導入プロセスを完了した後、これらの値はいつでもワークスペースの管理セクションにあります。

<code class="language-javascript">import React from 'react';
import ReactDOM from 'react-dom'; // For react 17
// For react 18: import ReactDOM from 'react-dom/client';
import App from './App';
import './index.css';

import { FronteggProvider } from '@frontegg/react';

const contextOptions = {
  baseUrl: '## YOUR BASE URL ##',
  clientId: '## YOUR CLIENT ID ##'
};

// For react 18: 
// const root = ReactDOM.createRoot(document.getElementById('root'));
// root.render(
ReactDOM.render(
    <fronteggprovider contextoptions="{contextOptions}" hostedloginbox="{true}">
        <app></app>
    </fronteggprovider>,
    document.getElementById('root')
);</code>
  1. ログインページにリダイレクト

Frontegg Useauthフックを使用して、ユーザーが認証されているかどうかを判断できます。ユーザーが認証されていない場合は、useloginwithredirectフックを使用して、ユーザーをログインページにリダイレクトできます(以下の例を参照)。

<code class="language-javascript">import './app.css';
// 'react'から{useefcect}をインポートします。
'@frontegg/rest-api'から{contextholder}をインポートします。
輸入 {
  useauth、useloginwithredirect
} "@frontegg/React"から;

function app(){
  const {user、isauthenticated} = useauth();
  const loginwithredirect = useloginwithredirect();
  //これをリダイレクトして自動的にログインするようにします
  // effect(()=&gt; {
  // if(!isauthenticated){
  // loginwithredirect();
  //}
  //}、[isauthenticated、loginwithredirect]);
  const logout =()=&gt;
    const baseurl = contextholder.getContext()。baseurl;
    window.location.href = `$ {baseurl}/oauth/logout`
                            `?post_logout_redirect_uri =`
                            `$ {window.location}`;
  };
  戻る (
    <div classname="App">
      {isauthenticed?
        <div>
          <div>
            <img src="https://img.php.cn/upload/article/000/000/000/173916230294882.jpg" alt="What is Passwordless Authentication and How to Implement it ">
<p>「登録」をクリックし、メールに移動して「アカウントをアクティブにする」をクリックします。 </p>
<p> <img src="https://img.php.cn/upload/article/000/000/000/173916230376786.jpg" alt="What is Passwordless Authentication and How to Implement it "></p>
<p>ログインしたい場合は、電子メールを入力して、6桁の検証コードが到着してログインするのを待つだけです。パスワードは不要、心配はありません。 </p>
<p><strong>結論</strong></p>
<p>このパスワードレス認証ガイドが、このテクノロジーがどれほど簡単であるかを理解するのに役立つことを願っています。 </p>
<p><strong>パスワードレス認証FAQ(FAQ)</strong></p>
<h3>パスワードレス認証の主な利点は何ですか? </h3>
<p>パスワードレス認証は複数の利点を提供します。まず、ユーザーが複雑なパスワードを覚える必要がなくなるため、ユーザーエクスペリエンスが向上します。第二に、ブルートフォース攻撃、辞書攻撃、フィッシングなどのパスワード関連の脆弱性を排除することにより、セキュリティを改善します。最後に、企業はパスワードの回復やリセットプログラムに投資する必要がなくなったため、運用コストが削減されます。 </p>
<h3>パスワードレス認証はどのように機能しますか? </h3>
<p>パスワードのない認証は、パスワード以外の要因を使用してユーザーのIDを検証します。これらの要因は、ユーザーが知っているもの(ピンなど)、ユーザーが持っているもの(モバイルデバイスなど)、またはユーザー自身(指紋など)です。システムは、1回限りのコードまたはリンクをユーザーのデバイスに送信し、ユーザーはコードまたはリンクを入力またはクリックしてアクセスを取得します。 </p>
<h3>パスワードフリー認証は安全ですか? </h3>
<p>はい、パスワードレス認証は通常、従来のパスワードベースの認証よりも安全です。パスワード関連の攻撃と脆弱性のリスクを削除します。ただし、他の安全対策と同様に、それは完全に絶対確実ではなく、最適な保護のために他の安全対策と組み合わせて使用​​する必要があります。 </p>
<h3>あらゆる種類のアプリケーションにパスワードなしの認証を使用できますか? </h3>
<p>パスワードレス認証は、Webアプリケーション、モバイルアプリケーション、さらにはIoTデバイスなど、さまざまなアプリケーションで使用できます。ただし、パスワードレス認証の適用性は、アプリケーションの特定の要件とセキュリティ要件に依存します。 </p>
<h3>パスワードのない認証を実装することの課題は何ですか? </h3>
<p>パスワードのない認証を実装すると、いくつかの課題が発生する可能性があります。一部のユーザーは、既存の認証インフラストラクチャに大きな変更を必要とするため、ユーザーの課題に抵抗する場合があります。 </p>
<h3>アプリケーションにパスワードレス認証を実装するにはどうすればよいですか? </h3>
<p>パスワードのない認証の実装には、いくつかのステップが含まれます。まず、正しい認証係数(生体認証やモバイルデバイスなど)を選択する必要があります。次に、この要素を認証​​プロセスに統合する必要があります。最後に、新しい認証方法とその利点についてユーザーを教育する必要があります。 </p>
<h3>パスワードレス認証の例は何ですか? </h3>
<p>パスワードのない認証の例には、生体認証(指紋スキャンや顔認識など)、モバイルデバイス認証(SMSコードやプッシュ通知など)、ハードウェアトークン(セキュリティキーなど)が含まれます。 </p>
<h3>パスワードレス認証は将来のオンラインセキュリティの将来ですか? </h3>
<p>多くの専門家は、パスワードのない認証が将来のオンラインセキュリティの将来であると考えています。パスワードに関連する制限とリスクがますます明らかになるにつれて、ますます多くの企業がパスワードのない認証に頼ってセキュリティを強化し、ユーザーエクスペリエンスを向上させています。 </p>
<h3>他のセキュリティ対策と組み合わせて、パスワードのない認証を使用できますか? </h3>
<p>はい、パスワードレス認証は、最適な保護のために他のセキュリティ対策と併せて使用することができます。これらには、暗号化、安全なコーディングプラクティス、および定期的なセキュリティ監査が含まれる場合があります。 </p>
<h3>パスワードレス認証におけるユーザーの役割は何ですか? </h3>
<p>ユーザーは、パスワードのない認証において重要な役割を果たします。認証要因(モバイルデバイスや生体認証データなど)を保護し、潜在的なセキュリティの脅威を理解する必要があります。また、自分自身を保護するための新しい認証方法に満足する必要があります。 </p>
</div>
</div>
</div></code>

以上がパスワードレス認証とそれを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。