2017-08-29 9 views
0

私はLDAPログインに依存するアプリケーションを作成しています。ユーザーが有効なLDAP資格情報を使用してシステムにログインすると、その時点からアプリケーションとやりとりするためにAPIトークンが使用されます(APIドリブンWebアプリケーション)。ただし、LDAPサーバーからユーザーが削除されるたびにAPIキーも取り消されるように、アプリケーションを設定する必要があります。私の計画は、定期的にLDAPクレデンシャルが有効かどうかをチェックするためのcronジョブを設定することです。したがって、後で確認できるように、これらの資格情報を保存する必要があります。しかし、これは、ユーザーがプレーンテキストとして提供するパスワードを保存する必要があることを意味します。そうしないと、検証のためにLDAPサーバーにパスワードを送信できなくなります。LDAPパスワードをプレーンテキストとして保存しないでLDAP資格情報を確認することは可能ですか

私は個人的にはLDAPに慣れていないので、これを回避する方法があるのだろうかと思っていました。私はパスワードのハッシュを保存することを考え、パスワード自体の代わりにパスワードのハッシュを使ってクレデンシャルを検証することができたかどうか疑問に思ったが、それが本当に安全ではないことをすぐに認識した。パスワードがハッシュ化されているかどうかは関係ありません。どちらも認証に使用できる場合は問題ありません。その唯一の利点は、ユーザーが他のサービスに同じパスワードを使用しているかどうかを確認することが難しいことです。

すべての提案をいただければ幸いです。ありがとう!

+0

パスワードをプレーンテキストとして保存しますか?本当に?これはどのようにオプションですか? –

+0

@ TheBeardedLlamaそれは私が解決しようとしている問題です: ') –

+1

なぜですか?そのユーザーがまだ存在するかどうかを調べるために、ユーザー*として再度ログインする必要はありません。通常、このような検索を行うには、LDAP管理者としてログインします。また、現在のセッションがある間にユーザーの削除を検出する必要があるかどうかは議論の余地があります。次回の(失敗した)ログイン時に有効にするだけで、削除時にユーザーセッションを期限切れにして直ちに再ログインを試み、失敗する可能性があります。 – EJP

答えて

1

一部のシステムでは、パスワードを暗号化された(ハッシュではない)形式でファイルシステムに格納する方法があります。

もちろん、資格情報を暗号化して解読する独自の方法を作成することもできます。

オペレーティングシステムのコントロールを使用して、資格情報の場所へのアクセスを制限することができます。

しかし、一般的にどこかには、プレーンテキストに格納されている資格情報が必要です。

また、誰かがサーバーへの「ルート」アクセス権を持っている場合、「おそらく」LDAPデータへのアクセスを停止できません。

0

ハッシュされたパスワードをLDAPディレクトリに保存できます。

LDAPのバインド操作により、提供された資格情報が正しいかどうかがわかります。

ユーザーが削除されると、資格情報を確認するエントリがなくなるため、バインド操作が自然に失敗します。

生成されたAPIトークンに対応するユーザーLDAP DNを(Web APIのバックエンドに)保存し、定期的にディレクトリをチェックして、ディレクトリ内に存在しないエントリにつながるすべてのトークンを削除できます。

関連する問題