GDPR:ユーザーデータを安全に保護する
GDPRの第32条に従って、ユーザーは、リスクに適切に対応する一定のレベルの安全性を確保するために、特に、以下のものを含め、適切な措置をしかるべく実装しなければなりません。
個人データの暗号化
取扱システム及び取扱サービスの現在の機密性、完全性、可用性及び回復性を確保する能力
物的または技術的なインシデントが発生した際、適時な態様で、個人データの可用性及びそれに対するアクセスを復旧する能力
Auth0には、これらの目標の達成に役立つ機能がいくつか用意されています。ユーザープロファイルの暗号化、総当たり攻撃防御、侵害されたパスワードの検出、 ステップアップ認証などをはじめとする機能がこれに該当します。
ユーザープロファイル情報を暗号化する
ユーザー情報はユーザープロファイルに保存する前に暗号化することができます。データをメタデータフィールドに保存する前に、お好きな暗号化メカニズムを使用することができます。機微情報を設定するときは、Update a User(ユーザー更新)エンドポイントを呼び出します。
総当たり攻撃防御を有効にする
Auth0の総当たり攻撃防御シールドは、アプリケーションへの不正アクセスを防止するために、デフォルトで有効になっています。
このシールドには2種類のトリガーがあります。
同じユーザーが同じIPアドレスを使って、10回連続でログイン試行に失敗した
24時間以内に同じIPアドレスから100回ログイン試行に失敗したか、同じIPアドレスから1分ごとに50回サインアップしようとした
たとえば、ユーザーuser_id1がIP1からサインインし、10回連続でログイン試行に失敗した場合、このIP1からのログイン試行はブロックされます。別のユーザーuser_id2がIP1からサインインしてもブロックされません。
Auth0で同じIPアドレスから1つのアカウントに10回ログインしようとして失敗した場合、以下のような対応が行われます。
ユーザーに通知メールを送信する
そのユーザーの不審なIPアドレスをブロックする
Auth0で24時間以内に同じIPアドレスから100回ログイン試行に失敗したか、同じIPアドレスから50回サインアップしようとした場合は、以下のような対応が行われます。
ダッシュボード管理者に通知する
不審なアドレスを15分間ブロックする
総当たり攻撃防御を有効にして講じたい措置を設定し、Dashboardを使ってブロックされたアカウントメールをカスタマイズすることができます。
侵害されたパスワードの検出を有効にする
侵害されたパスワードの検出シールドは、公共データ侵害で漏洩した可能性のあるユーザー資格情報の特定に役立ちます。
Auth0は、大手サードパーティーのサイトで発生している大規模なセキュリティ侵害を追跡します。ユーザーの資格情報のどれかが公共のセキュリティ侵害のデータに含まれている場合は、以下の行動を起こすことができます。
影響を受けるユーザーにメールを送信する
メールをDashboard所有者にすぐに送信し、日/週/月ごとのサマリーを伝える
そのユーザー名とパスワードの組み合わせを使用して、不審なユーザーアカウントのログイン試行をブロックする。パスワードを変更するまでブロックは解除されません。
侵害されたパスワードの検出を有効にし、Dashboardで取りたい行動を設定することができます。
多要素認証でセキュリティを強化する
多要素認証(MFA)では、アプリケーションへのセキュリティをさらに強化することができます。MFAは、ユーザーにもう1つのIDを要求することで、ユーザーのIDを検証する方法です。
プッシュ通知、SMS、ワンタイムパスワード認証サービス、カスタムプロバイダーを使用してMFAに対応しています。MFAを特定のユーザーや特定のアクション(機微データを含んだ画面にアクセスするなど)に対して有効にすることができます。地理的場所の変更や認識されないデバイスからのログインなど、追加の認証チャレンジをトリガーする状態を定義することもできます。
ユーザーの安全なパスワード作りを支援する
新規登録者向けにパスワードの複雑さレベルをカスタマイズすることができます。たとえば、10文字以上、かつ、少なくとも1つの大文字、数字、特殊文字を含むパスワードを要求することができます。
パスワード履歴機能を使用して前に使ったパスワードの使用を禁止し、パスワードディレクトリを使用してよくあるパスワードをユーザーが選択しないようにすることも可能です。これら3つの機能はDashboardから設定することができます。
ステップアップ認証
ステップアップ認証を使用する場合は、機微なリソースにアクセスするために、より強力な認証メカニズムで認証を行うようユーザーに要求することができます。たとえば、アカウントの基本情報を閲覧するのに、多要素認証(MFA)を必要としないバンキングアプリケーションでも、アカウント間で送金を行う場合は、もう1つの認証要素(SMSで送られてきたコードなど)を使って認証を行う必要があります。
ユーザーのIDトークンまたはアクセストークンの内容を確認することで、MFAでログインしたかどうかをチェックすることができます。その次に、ユーザーがMFAでログインしなかったことがトークンで判明したら、機微なリソースへのアクセスを拒否するようアプリケーションを設定することができます。
可用性と回復性
Auth0は、スケーラブルで高い可用性を備えたマルチテナント型のクラウドサービスとして設計および構築されています。冗長なコンポーネントをすべてのレベルで実装するため、コンポーネントの不具合に対しても高い回復性を実現します。不具合も早期に検出し、フェイルオーバーも速く完了します。
Auth0のアーキテクチャーの詳細については、「可用性と信頼」をお読みください。