カスタムデータベース接続のセキュリティに関するベストプラクティス

カスタムAPIを使ってレガシーIDストレージにアクセスする

APIを実装して、レガシーIDストレージには最小権限を与えることをお勧めします。インターネットを介して一般からアクセスできるようにはしないでください。

レガシーIDストレージを一般のアクセスから保護することは、ベストプラクティスとして推奨されています。たとえば、インターネットに(レガシーID)データベースを公開することは、SQLなどのデータベースインターフェイスが機能性の面で極めて開放的になるため、最小特権の原則(PoLP:Principle of Least Privilege)に違反することになります。

別の方法としては、アクセストークンを使って保護できるように、簡単な(カスタムの)APIを作成して、それぞれのアクションスクリプトが呼び出せるようにします。これは、レガシーIDストアへのインターフェイスとして機能します。そして、スクリプト内からアクセストークンを取得するには、クライアント資格情報付与フローを使うことができます。性能を向上させるために、これはその後globalオブジェクト内で再利用のためにキャッシュされます。APIは個別の保護されたエンドポイントを提供して、必要なレガシー(ID)管理の機能性(ユーザーの読み取り、パスワードの変更など)だけを専用に処理します。

認証に成功し、適切なオーディエンスが含まれている場合、Auth0はデフォルトで任意のAPIのトークンを提供します。ルールを使ってアクセストークンの割り当てを制限し、レガシーIDストアのAPIへのアクセスを制限すれば、/authorizeへのリダイレクトが傍受されてAPIにオーディエンスが追加されるなどの不正使用を防止できるだけでなく、さまざまな攻撃ベクトルのシナリオを軽減できます。

レガシーIDストレージにアクセスする

レガシーIDストレージへのアクセスに、カスタムのAPIと提供しているネイティブインターフェイスのどちらを使う場合でも、Auth0テナントに関連付けられているIPアドレスのリストを使って、アクセスを制限することが推奨されます。IPアドレスのリストを確認する方法については、「AllowList用のAuth0 IPアドレス」をお読みください。AllowListにURLを追加すると、レガシーIDストアへのアクセスを制限して、Auth0で定義されているカスタムデータベースのアクションスクリプトのみが許可されるようになります。

もっと詳しく