私がしていること...
組織のすべてのマシン、ブログ、ウィキ、CRM、HRM、プロジェクト管理ツール、SVNなどにシングルサインオンを実装しようとしています...
CentOSを実行している専用サーバーにOpenLDAPをインストールして構成しました。 phpLdapAdminを使用して、さまざまなユーザー、クライアント、リソースに関する組織構造と情報を追加しました。
ユーザーのエントリ例...
DNは:: cn = Bill Gates、ou = users、dc = example、dc = com
ユーザーID :: bill.gates
メール:: [email protected]
userpassword :: as2%$%66789ds(一部のmd5暗号値)
私が今いるところ...
OpenLDdapは正常に機能しています。バインドテストも正常に実行されました。
やりたいこと...
より高い特権のユーザーを使用してバインドし、CNとは少し異なる入力されたユーザーIDまたはメールでユーザーを検索します。ポイントは、RDNの一部ではない属性に対してユーザーを認証したいということです。
行き詰まったところ...
私の質問(最後に)
私の最大の関心事は、ほとんどのアプリで簡単に機能するようにすることができるアプローチを採用することです。ミッションのシングルサインオン中に変更するWebベースのアプリやデスクトップソフトウェアなどがたくさんあります。
読んでくれてありがとう...そして助けてくれてありがとう!
-ラフル
最初の質問について:
私は、さまざまなユーザー属性に対して「ログイン」を許可する別のLDAPシステムを使用しました。解決策は、2つの接続を行うことでした。最初の接続は、おそらく匿名でバインドされており、ユーザーが指定した情報を使用してLDAPにクエリを実行し、ユーザーオブジェクトのRDNを特定します。 2番目の接続は、検出されたRDNと指定されたパスワードを使用してパスワードとのバインドを試みます。これは2段階のプロセスであり、機能します。
ただし、このアプリがRDN自体ではない提供された属性で多くのログインを取得する場合は、それらの属性にインデックスを付けることをお勧めします。それはパフォーマンスの問題です。
二:
私が覚えている限り、OpenLDAPはLDAP-SSL(TCP/636)をサポートしています。これは、HTTPSトンネルよりも優れたルートである可能性があります。デフォルトでは、LDAPバインドはクリアされていますが、追加のメソッドを許可するLDAP拡張機能があります。 Active Directoryでは、たとえばNTLM LDAPバインドが許可されており、LDAPもある時点でカーネル化されていると確信しています。 openLDAPがサポートするメソッドがわかりません。
三:
属性に「[email protected]」形式の電子メールを含むLDAPソースがあります。それがより厄介になるのはネーミング属性であり、それが私のopenLDAPエクスペリエンスがフラットになるところです。 itがそれをサポートしているのかわかりません。 Active Directoryでは名前付け属性にスペースが許可されており、Novell eDirectoryではスペースとピリオドの両方が許可されていることを知っています(ただし、そうすることはお勧めしません)。通常、名前付け属性はuserIDであり、givenName、surname、emailAddressなどの属性には特殊文字が含まれます。属性に名前を付けていないため、同じ制限はありません。
OpenLDAPを具体的に支援するのに十分な知識がないのではないかと思いますが、OpenDSの IDマッピング機能 に類似した機能があるのではないかと思います。あなたが使用できること。
クライアントはカスタムIDで自分自身を識別でき、マッピングは正規表現を使用してこれをユーザーのエントリの他の属性と照合するという考え方です。 OpenDSでは、これはSASLオプションを使用しているように見えるため、それらのツールを使用して、次のようなオプションを提供できます。
bin/ldapsearch --saslOption authid=u:dominic --saslOption mech=PLAIN [..]
次に、認証IDがIDマッパーによって使用されます。この場合、IDマッパーはユーザーエントリのuid属性と一致します。
お役に立てば幸いです。