Go を使用してLDAPプロトコルを直接呼び出して管理するにはどうすればよいですか? パッケージはありますか?または、udp と tcp を使用する必要がありますか?
6 に答える
Go 標準ライブラリには LDAP ライブラリはありませんが、Google で簡単に検索すると、試すことができるライブラリがいくつか見つかります。
この 2 番目のものは、実際には最初のもののフォークです。github では、未解決の問題、最終更新、フォーク ネットワーク ( https://github.com/mmitton/ldap/network ) をいつでも表示して、多くのフォークがある場合にどのライブラリを使用する必要があるかを把握できます。
Go 標準ライブラリで省略されているライブラリが必要な場合は、次の場所を参照してください。
- 常に簡単な Google 検索から始める
- チェックアウト: http://go-lang.cat-v.org/pure-go-libs / http://go-lang.cat-v.org/library-bindings
- そして: http://godoc.org/
- そして: http://code.google.com/p/go-wiki/wiki/Projects
これらすべてに失敗し、独自の実装を作成することに自信がない場合は、いつでも cgo を使用してGoから C コード (たとえば、多くの C LDAP ライブラリの 1つなど)を呼び出すことができることを覚えておいてください。
ここに 10 セントを追加する必要があると思いました。それは古い投稿ですが、それでもここにあります
上記のvoidlogicで述べたものを使用した後、https://github.com/mavricknz/ldapライブラリを使用しました。mmitton/ldap
mmitton lib の問題は、フィルターでエスケープ文字をうまく処理できないことです。
The test filter: (&(objectClass=user)(cn=wickd(bracketTest )))
Escaped Filter: (&(objectClass=user)(cn=wickd\28bracketTest \29))
MMitton library
エスケープされたフィルターを使用しても、フィルター コンパイル エラーが返されました。Mavricknz lib をロードすると、動作しました。EscapeFilter機能も搭載!輝き!
とにかく...私と同じ苦労をした人のためにこれを投稿すべきだと思いました:)
LDAP プロトコルを使用できるサーバー ソフトウェアを構築するためのヘルパー ライブラリの作成を開始しました。いくつかの使用例が含まれています。
単純な高レベルの LDAP クライアントについては、go-ldap-client、go docsを参照してください。
https://godoc.org/?q=ldapのオプションのほとんどは、 別のオプションのフォークにすぎません。それらのほとんどは、レベルが低すぎるか、制限が多すぎます (たとえば、問題のトラブルシューティングを困難にするエラーを返さないでください)。
Web ページで LDAP ベースの認証を提供したい場合は、私が作成したソリューションが気に入るかもしれません: これgo-ldapc
は、API が 1 つしかない LDAP 認証クライアント モジュールです。
githubにあります- sona-tar/go-ldapc。