web-dev-qa-db-ja.com

Go with LDAPプロトコルの使用方法

Goを使用してLdapプロトコルを直接呼び出して管理するにはどうすればよいですか?パッケージはありますか?または、udpとtcpを使用する必要がありますか?

23
Mahdi Sardari

Go標準ライブラリにはLDAPライブラリはありませんが、Googleをすばやく検索すると、いくつか試してみることができます。

この2番目のものは、実際には最初のもののフォークです。 githubでは常に未解決の問題、最終更新、フォークネットワーク( https://github.com/mmitton/ldap/network )を表示して、どのライブラリを使用するかをかなりよく理解できます。フォークがたくさんあります。

Go標準ライブラリで省略されたもののライブラリが必要な場合は、いくつかの良い場所があります。

これらすべてが失敗し、独自の実装を作成する気がない場合は、常に cgo を使用してCコードを呼び出すことができます(たとえば、多くのC LDAPライブラリの1つなど) )Goから。

18
voidlogic

ここに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機能も付いてきます!輝き!

とにかく...私と同じ苦労をした人には誰でもこれを投稿するべきだと思いました:)

11
wickd

LDAPプロトコルを話すことができるサーバーソフトウェアを構築するためのヘルパーライブラリを書き始めました。いくつかの使用サンプルが含まれています。

3
vjeantet

単純な高レベルLDAPクライアントについては、 go-ldap-clientgo docs を参照してください。

https://godoc.org/?q=ldap のオプションのほとんどは、別のオプションのフォークであり、それらのほとんどは低レベルまたは制限が高すぎます(たとえば、エラーを返さないでください)問題のトラブルシューティングが難しい)。

2
jtblin

さらに、サーバー側については、このパッケージを(Goで)少し前に書きました: https://github.com/bradleypeabody/godap

これは完全なLDAPサーバーではありませんが、別のデータソース(アドレス指定できる他のプロジェクトを見つけることができなかったもの)の上に認証を実装するのに適しています。

多くの「Ldapプロトコルを直接管理」します:)

2
Brad Peabody

WebページでLDAPベースの認証を提供したい場合は、私が作成したソリューションgo-ldapcは、APIが1つだけのLDAP認証クライアントモジュールです。

github-sona-tar/go-ldapc にあります。

1
sona-tar