Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自定义Django VM控制面板-需要LDAP问题/洞察_Django_Python 2.7_Ldap - Fatal编程技术网

自定义Django VM控制面板-需要LDAP问题/洞察

自定义Django VM控制面板-需要LDAP问题/洞察,django,python-2.7,ldap,Django,Python 2.7,Ldap,我暑假在一家公司实习。我已经被分配了一个项目,必须在Django完成。我有一个粗略的设置进行,我需要一些反馈,我应该如何进一步设置事情。techops团队中的人员在开发人员破坏某些东西时花费了太多时间重新启动VM。解决方案是允许用户自己做这件事 项目大纲 用户使用ldap凭据登录 服务器获取个人所在的ldap组['techops','staff'] 将仅显示这些ldap组之外的服务器 然后,用户将能够重新启动这些虚拟机 服务器将通过ssh密钥ssh到指定的VM域,并触发VM重新启动 我目前可

我暑假在一家公司实习。我已经被分配了一个项目,必须在Django完成。我有一个粗略的设置进行,我需要一些反馈,我应该如何进一步设置事情。techops团队中的人员在开发人员破坏某些东西时花费了太多时间重新启动VM。解决方案是允许用户自己做这件事

项目大纲

  • 用户使用ldap凭据登录
  • 服务器获取个人所在的ldap组['techops','staff']
  • 将仅显示这些ldap组之外的服务器
  • 然后,用户将能够重新启动这些虚拟机
  • 服务器将通过ssh密钥ssh到指定的VM域,并触发VM重新启动
我目前可以让用户通过ldap登录管理面板,但不能在网站的单独身份验证页面上登录。有没有办法自动填充用户的LDAP组

# Populate the Django user from the LDAP directory.
AUTH_LDAP_USER_ATTR_MAP = {
    "first_name": "givenName",
    "last_name": "sn",
    "email": "mail"
}
我需要帮助了解LDAP如何工作(使用Django),以及如何检索当前登录的用户,运行get_Ldapgroups函数,将这些组与服务器LDAP组进行比较,然后仅在/reboot页面上显示这些服务器

请随时提问或索取任何其他文件。我感谢你们为我提供的所有时间和帮助

以下是我截至目前的文件:

servers models.py

class Team(models.Model):
  name = models.CharField(max_length=64)
  email = models.EmailField(max_length=254, default='@business.com')
  ldap_group = models.CharField(max_length=64)

  def __unicode__(self):
        return '"' + self.name + '" <' + self.email + '>'

class Site(models.Model):
  name = models.CharField(max_length=254)

  def __unicode__(self):
        return self.name

class Server(models.Model):
  hostname = models.CharField(max_length=254)
  fqdn = models.CharField(max_length=254)
  owner = models.ForeignKey(Team)
  site = models.ForeignKey(Site)

  def __unicode__(self):
        return self.hostname
重新启动模板

{% block title %}Server{% endblock %}

{% block content %}
<h1>Server</h1>
<ul>
  {% for server in servers %}
    <li><a href="{% url 'server' server.hostname %}">{{ server.hostname }}
  {% endfor %}
</ul>
{% endblock %}
{%block title%}服务器{%endblock%}
{%block content%}
服务器
    {%用于服务器中的服务器%}
  • {{server.hostname} {%endfor%}
{%endblock%}
django有一个可插拔的身份验证系统,具有不同后端的概念。django有两个后端;一个使用数据库,另一个可以使用外部用户系统

利用这种灵活性的是一个定制后端,设计用于LDAP目录。这是替代品的下降

您可以设置它,然后它将自动填充用户组,还可以执行其他操作(有关更多信息,请参阅)

详细信息包括大多数配置和设置详细信息


作为最后一个提示,考虑卸载服务器的重新启动。否则,如果出现网络问题或其他延迟,您的应用程序将不会被阻止。要从django计划脱机任务,请使用。

谢谢您的帮助。我很好地掌握了django_身份验证,希望很快就能通过ldap实现这一点。我还将研究卸载。
{% block title %}Server{% endblock %}

{% block content %}
<h1>Server</h1>
<ul>
  {% for server in servers %}
    <li><a href="{% url 'server' server.hostname %}">{{ server.hostname }}
  {% endfor %}
</ul>
{% endblock %}