パスワードの時代に別れを告げる!パスワードのない認証のセキュリティと利便性
コアポイント:
パスワードレス認証は、ユーザーがパスワードまたはキーなしでシステムまたはアプリケーションにログインできるユーザー管理方法です。これは、パスワードなどの知識ベースの要因を使用するのではなく、電子メールアカウントなどの所有権要因や顔認識などの固有の要因を通じて、ユーザーのIDを検証します。
この記事は、Fronteggと協力して作成されました。 SitePointを可能にしたパートナーをサポートしてくれてありがとう。
多くの認証方法は、パスワードの代替として使用されています:
パスワードのない認証の人気
知らないうちに「パスワードレス認証」を使用している可能性があります。多くの銀行アプリケーションは、指紋と音声認識を使用してユーザーを検証しています。 Slackは、マジックリンクを使用してユーザーを検証することで知られています。
パスワードレス認証の使用は、過去数年にわたって着実に成長してきました。認証プロバイダーであるAuth0は、パスワードレス認証が2027年にパスワードの使用を上回ると予測しています。 Gartnerは、2022年までに、「大規模およびグローバル企業の60%と中規模企業の90%が、2018年の5%から50%以上のユースケースでパスワードレスアプローチを実装する」と予測しています。
インターネットの巨人は、このテクノロジーの採用を加速するために最善を尽くしています。 2022年の世界パスワードで、Google、Microsoft、およびAppleは、作成されたユニバーサルのパスワードのないログイン標準のサポートを拡大する計画を発表しました。
2022年6月、AppleはWebサイトやアプリケーションにログインするための新しい「パスワードキー」機能を発表しました。この発表は、実際にAppleがTouch IDまたはFace IDを使用してサイトのデジタルキーを作成することを意味します。これにより、パスワードを作成および書き込む必要性がなくなります。
パスワードのない認証の利点パスワードレス認証は、セキュリティとユーザーエクスペリエンスの利点を提供します:
パスワードレス認証は完全ではなく、セキュリティとエクスペリエンスの観点からもいくつかの制限があります。
はい、パスワードのない認証は安全であると見なされますが、完全にリスクフリーではありません。パスワードのないアカウントは、悪意のある人の手に渡るパスワードを心配する必要はありません。これは、データ侵害、ブルートフォース攻撃、デバイスの喪失、または誤ったポストITノートによって発生する可能性があります。
パスワードレス認証に関連するリスクの多くは、他の方法にも適用されます。
ハッカーがメールアカウントにアクセスし、パスワードのない認証にマジックリンクを使用している場合、簡単にログインできます。ただし、通常のパスワードを使用する場合、このリスクは同じです。悪意のある俳優は、「パスワードのリセット」をクリックして、同じメールアドレスにリセットリンクを送信する必要があります。
最後に、他のシステムと同様に、パスワードレス認証システムは、セキュリティ対策を損なうまたは回避するための直接的な攻撃に対して脆弱です。どんなに安全であっても、資格情報を保存および検証するシステムは、完全に安全になることはありません。
指紋の検証やその他の生体認証要因は、チートするのが難しくなりますが、不可能ではなく、自分自身を承認するための非常に安全な方法を提供します。
パスワードレス認証とマルチファクター認証(MFA)
マルチファクター認証は、ログインするときに複数の認証係数を使用する方法です。この状況の非常に一般的な例は、ユーザー名とパスワードを使用してアカウントにログインする場合、6桁の1回限りの検証コード(OTC)を受け取り、デバイスの所有権を確認します。
この例では、OTC因子はパスワードレスです。代わりに、指紋と1回限りの検証コードを使用している場合、完全にパスワードレスMFAセットアップがあります。
Webサイトにパスワードレス認証を実装する方法
パスワードレス認証をアプリケーションまたはWebサイトに統合するのはこれまで以上に簡単です。既存のインフラストラクチャに応じて、多くの選択肢があります。
これらのプロバイダーは、従来のパスワードのない認証だけでなく、ユーザー管理と許可管理も提供する完全に管理されたサービスを提供しています。
これらのサービスは、ユーザー認証、アクセス管理、およびセッション管理などのその他のサービスを提供します。
ユーザーにパスワードレスアプローチを導入することがどれほど簡単かを示すために、Fronteggと呼ばれるプロバイダーを使用して5分間のチュートリアルをご覧ください。他のユーザー管理機能に加えて、セルフサービスのエンドツーエンドユーザー管理プラットフォームも、いくつかのパスワードフリーのログインメソッドを提供します。 ログインと認証サービスの構築は時間がかかり、ユーザープロセスに価値を追加しませんが、何か間違った場合は損傷を引き起こす可能性があります。認証を提供するサービスがより良く、より安価になるにつれて、アプリケーション用の独自のパスワード検証システムを構築する理由はあまりありません。 Webサイトを通じてFronteggアカウントを作成します。開始時にパスワードレスオプションとしてマジックコードまたはマジックリンクを必ず選択してください! ログインボックスの作成を完了し、パスワードレスメソッドを選択したら、「開発するための公開」オプションが表示されます。 Fronteggの使用環境(開発、品質保証、ステージング、生産)、これらの環境には、認証環境のユニークなサブドメイン、キー、およびURLがあります。 サンプルコード、さらに重要なことには 端末に次のコマンドを入力して、新しいReactアプリケーションを作成し、新しいディレクトリに移動します。 次のコマンドを実行して、Frontegg React LibraryとReact-Routerをインストールします。アプリケーションにReact-Routerがすでにインストールされている場合は、インストールをスキップできます。 src/index.jsファイルで、次のコードを追加します。次に、Fronteggページに戻り、コードの例から 注:この導入プロセスを完了した後、これらの値はいつでもワークスペースの管理セクションにあります。 Frontegg Useauthフックを使用して、ユーザーが認証されているかどうかを判断できます。ユーザーが認証されていない場合は、useloginwithredirectフックを使用して、ユーザーをログインページにリダイレクトできます(以下の例を参照)。
無料のFronteggアカウントを作成します
統合プロセスを開始
baseURL
とclientID
を備えたページに移動します。このページを開いたままにして、IDEにアクセスして、次のステップに進んでください。
Reactアプリケーションを作成します(既に自分のアプリケーションがある場合はこの手順をスキップしてください)
<code>npx create-react-app app-with-frontegg
cd app-with-frontegg</code>
frontegg
をインストールしてインポートします
<code>npm install @frontegg/react react-router-dom</code>
ログイン設定を構成
baseUrl
とclientID
を見つけます。 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 />
</FronteggProvider>,
document.getElementById('root')
);
ログインページにリダイレクト
<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 サイトの他の関連記事を参照してください。