株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

認証したいユーザー

  • cn=yuta

ldapモジュールをインストール

github.com/go-ldap/ldapを取得します

サンプルコード

パッケージ メイン

インポート 
    "fmt" 
    "github.com/go-ldap/ldap/v3" 
    "log" 


var  
    ldapServer  =  "ldap:// localhost:389" 
    baseDN      =  "dc = vamdemic、dc = black" 
    username  =  " yuta " 
    password  =  "password" 
    bindusername  =  "cn = admin、dc = vamdemic、dc = black" 
    bindpassword  =  「パスワード」



//この例は、典型的なアプリケーションがログイン試行を検証する方法を示しています
func  Example_userAuthentication () { 
    l  err  :=  ldap DialURL ldapServer 
    if  err  !=  nil  { 
        log Fatal err 
    } 
    defer  l 閉じる()

    //最初に読み取り専用ユーザー
    err  =  lでバインドしますバインドするbindusername  bindpassword 
    if  err  !=  nil  { 
        log 致命的err 
    }

    //指定されたユーザー名
    searchRequest  :=  ldapを検索しますNewSearchRequest 
        ベースDN 
        LDAP ScopeWholeSubtree  LDAP NeverDerefAliases  0  0  
        FMT SPRINTF "(&(オブジェクトクラス= organizationalPersonを)(CN =%S))"  ユーザ名)、
        [] の文字列{ "DN" } 、
        nil 
    

    sr  err  :=  l 検索searchRequest 
    if  err  !=  nil  { 
        log 致命的err 
    }

    場合 でlen SR エントリー !=  1  { 
        ログ致命的「ユーザーが存在しないか、返されるエントリが多すぎます」
    }

    userdn  :=  sr エントリー[ 0 ] DN

    //ユーザーとしてバインドして、パスワードを確認します
    err  =  l err != nil { logの場合バインドuserdn  パスワード
    致命的err }    
        
    

    //これ以降のクエリでは、読み取り専用ユーザーとして再バインドします
    err  =  l バインドするbindusername  bindpassword 
    if  err  !=  nil  { 
        log 致命的エラー
    } 
}

func  main () { 
    Example_userAuthentication ()
}

<スポンサーリンク>

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)