簡體   English   中英

使用LDAP的Symfony身份驗證

[英]Symfony authentication with LDAP

如果有人可以幫助我在symfony2 Framework上使用LDAP身份驗證,我將非常感激。 主要思想是正確使用LDAP來了解所有用戶,而無需使用interne表並且無需登錄(插入用戶名/密碼),比方說,我想成為自動識別之類的人。

您正在尋找單一登錄。 您實際上不必處理LDAP,但必須正確配置Web服務器。 Web服務器正在處理身份驗證,而不是您的應用程序。 然后,您可以從REMOTE_USER環境變量獲取用戶登錄名。 您可以信任的憑證。 在Symfony中,它是特殊的安全提供程序 (從2.6版開始)。

更新 :為IIS添加了更多特定信息

  1. 在IIS上啟用Windows身份驗證( 一些可能有用的鏈接 ,並確保您的服務器和客戶端在域中)。
  2. 嘗試使用簡單的PHP腳本捕獲$ _SERVER ['REMOTE_USER']-您應該會看到域登錄信​​息。

如果一切順利,您可以從上面的鏈接使用Symfony remote_user提供程序。 您還需要在數據庫中擁有用戶(即,僅域登錄名,電子郵件和一些標志),才能使用角色,登錄等。另外,請確保您的服務器位於本地Intranet區域中。

更新2 :添加了Symfony配置示例

security.yml

security:
  role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

  providers:
    in_memory:
      memory:
        users:
          - { name: 'DOMAIN\login', roles: [ 'ROLE_USER' ] }

  firewalls:
    dev:
      pattern:  ^/(_(profiler|wdt)|css|images|js)/
        security: false

    secured_area:
      pattern: ^/demo
      remote_user:
        provider: in_memory

  access_control:
    - { path: ^/demo/secured/login, roles: ROLE_ADMIN }

這是使用AcmeDemoBundle進行全新Symfony 2.6安裝的示例。 嘗試自己玩。 在主頁上,您根本沒有登錄。 如果Windows身份驗證有效並且您的登錄名為DOMAIN \\ login,則在單擊“運行演示”按鈕后將登錄。 如果您嘗試訪問/demo/secured/login您將獲得403。我希望它足以作為介紹,Symfony可以為您做些什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM