Goを使用してLdapプロトコルを直接呼び出して管理するにはどうすればよいですか?パッケージはありますか?または、udpとtcpを使用する必要がありますか?
Go標準ライブラリにはLDAPライブラリはありませんが、Googleをすばやく検索すると、いくつか試してみることができます。
この2番目のものは、実際には最初のもののフォークです。 githubでは常に未解決の問題、最終更新、フォークネットワーク( https://github.com/mmitton/ldap/network )を表示して、どのライブラリを使用するかをかなりよく理解できます。フォークがたくさんあります。
Go標準ライブラリで省略されたもののライブラリが必要な場合は、いくつかの良い場所があります。
これらすべてが失敗し、独自の実装を作成する気がない場合は、常に cgo を使用してCコードを呼び出すことができます(たとえば、多くのC LDAPライブラリの1つなど) )Goから。
ここに10セントを追加する必要があると思いました。古い投稿ですが、ここにあります
上記のvoidlogicで言及されているように、mmitton/ldap
を使用した後、 https://github.com/mavricknz/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 のオプションのほとんどは、別のオプションのフォークであり、それらのほとんどは低レベルまたは制限が高すぎます(たとえば、エラーを返さないでください)問題のトラブルシューティングが難しい)。
さらに、サーバー側については、このパッケージを(Goで)少し前に書きました: https://github.com/bradleypeabody/godap
これは完全なLDAPサーバーではありませんが、別のデータソース(アドレス指定できる他のプロジェクトを見つけることができなかったもの)の上に認証を実装するのに適しています。
多くの「Ldapプロトコルを直接管理」します:)
WebページでLDAPベースの認証を提供したい場合は、私が作成したソリューションgo-ldapc
は、APIが1つだけのLDAP認証クライアントモジュールです。
github-sona-tar/go-ldapc にあります。