另一个单点登录系统:OAuth2提供者
项目描述
Yasso(另一个单点登录系统)是一个使用OAuth2构建基于Web的单点登录服务的系统。它旨在符合OAuth2规范的草案25。
入门指南
包含一个演示配置以帮助您入门。按照以下方式安装和运行演示配置:
$ git clone git://github.com/hathawsh/yasso.git $ cd yasso $ virtualenv --no-site-packages . $ bin/pip install -U zc.buildout $ bin/buildout $ bin/pserve demo.ini
演示Yasso服务器将随后在http://localhost:8510/上可用。您可以浏览到它,但您目前看不到太多。
在另一个shell中,安装并运行oauth2sample客户端
$ git clone git://github.com/hathawsh/oauth2sample.git $ cd oauth2sample $ virtualenv --no-site-packages . $ bin/pip install -U zc.buildout $ bin/buildout $ bin/pserve yasso-demo.ini
示例客户端将随后在http://localhost:8511/上可用。浏览到那里。您将被重定向到Yasso授权端点,Yasso将要求您使用HTTP基本身份验证登录。使用用户名sample1,密码password登录。最后,您将被重定向回示例OAuth2客户端,并且将以sample1身份登录。演示结束。
假设一切顺利,这个演示简短且安静,这正是应有的样子:单点登录应主要对用户不可见。
HTTP基本认证可能是您首先想要替换的东西。要更改它,创建一个适用于您组织的repoze.who配置,并使用您自己的Pyramid配置文件(而不是demo.ini),该文件指向您的repoze.who配置文件。
结构
Yasso由三个独立的Pyramid应用程序组成。每个都有不同的安全策略和视图,但都使用相同的模型对象。
授权应用程序对最终用户可见。当用户想要在客户端网站上登录时,客户端会将用户的浏览器重定向到Yasso授权端点(这是授权应用程序的一部分),以便用户登录。用户登录后,Yasso将浏览器重定向回客户端网站,并带有OAuth2参数;网站调用令牌端点以完成授权。
提供令牌端点的令牌应用程序不打算让用户可见。用户在Yasso中认证后,客户端网站会直接调用令牌端点(使用REST调用)来创建访问令牌。访问令牌允许客户端使用资源应用程序。
资源应用程序也不打算让用户可见。对资源应用程序的调用需要在POST参数或HTTP头中包含有效的访问令牌。默认资源应用程序只允许客户端网站获取用户ID,但您可以创建自己的视图,允许客户端代表用户执行其他操作。
Yasso包括一个WSGI复合应用程序,将这三个应用程序结合起来。复合应用程序将起始URL路径为/resource的路径映射到资源应用程序,将起始URL路径为/token的路径映射到令牌应用程序,并将所有其他URL映射到授权应用程序。
0.0
初始版本
项目详情
yasso-0.1.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 704dec0da69b3983d634ba1521135306746d0dd0b00406ac1b9534c22c0b6e1c |
|
MD5 | c8253f10002a9b5da939142c6286d121 |
|
BLAKE2b-256 | eb81bd31b5a7c3babc037cf07d76786d8c3dc2560a3f52ba5ac2e87b6afe3613 |