freeradius 3.0使用ldap bind windows ad 來認證使用者

來源:互聯網
上載者:User

標籤:freeradius memberof ns-user-group 多屬性值 轉換

         需求是要使用windows active directory上的現有帳號來認證freeradius的用戶端,freeradius使用ldap bind來串連windows ad, bind 成功則認證通過,過程中windows ad並不返回使用者的密碼給freeradius.


         過程中碰到幾處容易出問題的地方:


          1.  為了啟用ldap bind認證,需要編輯/usr/local/etc/raddb/sites-available/default檔案。

           Authorize部分添加如下配置:

                ldap

                if ((ok || updated) && User-Password) {

                    update {

                        control:Auth-Type := ldap

                    }

                }


         authenticate部分uncomment如下配置:

           Auth-Type LDAP {

                    ldap

            }

          

        2. 對ldap module的配置:

          將mods-available 目錄下的ldap拷貝到mods-enabled目錄下,修改如下內容:

         ldap {

       .....

        server = ‘1.2.3.4‘      #此處是自己要使用的windows AD的網域名稱或者ip

        identity = "cn=zhangsan,ou=lab,dc=test,dc=com" #此處是查詢windows ad時所用的帳號名

        password = zhangsan123         #此處是查詢windows ad所用帳號的密碼

       base_dn = ‘ou=lab,dc=test,dc=com‘  #此處是待認證帳號在windows AD裡面的base DN,就是父目錄。

      .......

                }


     user {

            .....

             filter = "(CN=%{%{Stripped-User-Name}:-%{User-Name}})" #修改查詢使用者時的filter,windows AD                                                                                                                       #一般改為CN=

                ......     

               }


      3. 如果需要對windows AD 返回來的結果中的某些屬性值進行修改然後再返回給認證用戶端,可以在default檔案的post-auth部分進行配置,如下的執行個體:

        post-auth {

                     ........

               foreach reply:My-Local-String {

                            if("%{Foreach-Variable-0}" =~ /CN=[lab]-[0-9 a-z A-Z]+/) {

                                update reply {

                                   NS-User-Group += "%{0}"

                                                       }

                                                                                                                                         }

                                                                 }

                      ..........

                        }


     ldap檔案也需要稍作修改:

         update {

                ......           

                reply:My-Local-String             += ‘memberOf‘

                ........

               }


        以上的例子把freeradius本來要返回的My-Local-String屬性數群組轉換為NS-User-Group屬性返回給radius client,條件是該屬性是CN=lab-xxxxx的形式開頭的。實際上是返回使用者在windows AD裡的組屬性,但是不是所有的組都返回,只有那些以lab-xxxxxx形式命名的組才返回。

         之所以要進行這種轉換,是因為例子中的這種radius client裝置能識別的組屬性的名字是NS-User-Group,但windows AD裡對應的組屬性的名字是memberOf,所以要轉換,否則client不認識。


=================================

 contact author: [email protected]


freeradius 3.0使用ldap bind windows ad 來認證使用者

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.