在django内部使用shibboleth用户

django-shibboleth-remoteuser-kennydude的Python项目详细描述


django shibboleth remoteuser
==


这是一个用于保持事物最新的fork


用于将shibboleth与django一起使用的中间件。RemoteAuthMiddleware需要Django 1.3或更高版本。

[![构建状态](https://secure.travis-ci.org/brown-university-library/django-shibboleth-remoteuser.png?branch=master)(http://travis ci.org/brown university library/django shibboleth remoteuser)

git+https://github.com/brown university library/django shibboleth remoteuser.git
```

*在设置中。py:

*启用远程用户后端。

``python
身份验证后端+=(
'shibboleth.backends.shibboleth remoteuserbackend',

```

*添加django shibboleth中间件。
必须将django.contrib.auth.middleware.shibbolethremoteusermiddleware添加到django.contrib.auth.middleware.authenticationmiddleware之后的中间件类设置中。
例如:

``python
middleware类=(

“django.contrib.auth.middleware.authenticationmiddleware”,
“shibboleth.middleware.shibbolethremoteusermiddleware”,

)“将shibboleth属性映射到django用户模型。属性必须以其在http头中的格式声明。
使用此选项从shibboleth属性填充django用户对象。

如果属性是必需的,则元组的第一个元素状态为。如果在分析的
shibboleth头中找不到所需的元素,则会引发异常。
(true,“必需的”属性“)
(false,“可选的”属性)。

``python
shibboleth属性“映射={
“shib用户”:(true,“用户名”),
“shib给定名称”:(true,“名字”),
“shib-sn”:(true,“last-name”),
“shib-mail”:(false,“email”),
}
````





*登录url-将其设置为shibboleth安装的登录处理程序。在大多数情况下,这将类似于:

`` python
login_url='https://your_domain.edu/shibboleth.sso/login'
````

*apache配置-确保应用程序可以使用shibboleth属性。应用程序url不需要shibboleth。

```
<;location/app>;
authtype shibboleth
require shibboleth
<;/location>;
````

--
如果要验证所有配置是否正确,请执行以下两步。它将在您的应用程序/yourapp/shib/中创建一个路径,该路径将回送从shibboleth获得的属性。如果在屏幕上看到上面映射的属性,则一切正常。
*将shibboleth添加到已安装的应用程序中。

`` python
已安装的应用程序+=(
'shibboleth',

````

*将下面的内容添加到url.py以启用包含的示例视图。这个视图只是回显解析后的用户属性,这对测试很有帮助。

`` python
url patterns+=模式('',
url(r'^shib/',include('shibboleth.url',namespace='shibboleth'),

````

Django Shibboleth远程用户中间件应该是完整的。

这些都是为了方便而不是必需的。若要激活,请将以下内容添加到settings.py.

``python
template_context_processors+=(
'shibboleth.context_处理器。登录链接,
“shibboleth.context\u处理器。注销链接”

```

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java应该考虑使用DTO来代替Spring控制器层吗?   java为什么要将Maven与Git结合起来?   java试图将CSV转换为XLSX,但使用了错误的逗号拆分列   mysql Spring 3+Hibernate:java。sql。BatchUpdateException:无法添加或更新子行(ManyToMany)   java基本字符串反转器   java无法使用RestControllerAdvice为身份验证失败生成自定义错误消息   java当只允许SQLException时,如何抛出EOFEException?   java如何创建播放模块?   Android中匿名类的java实例化异常问题   java两个停靠组件,其中第二个组件填充剩余空间   java如何在按钮延迟时启用它   Java中正在运行的应用程序中的后台进程   java我正试图从一个字符串打印出这个字符输出   如何使用java socket通过两个不同的wifi连接两台电脑?   javaapachecamel:如何将分层数据从数据库转换为pojo   java Webrtc:OniconConnectionChange和onConnectionChange之间有什么区别   java如何重写已经创建的JTable方法   爪哇扫雷机堆垛机   雅加达ee Java ee EJB 3.0 Glassfish