一个基于python 3 django的oauth2/docker auth/jwt sso服务器,带有附加的邮件路由。

net.maurus.authserver的Python项目详细描述


maurus.networks身份验证服务器

这是一个基于python django的服务器应用程序,提供单点登录 为我自己的设置服务。它有OAuth2端点和应用程序 不支持以下任何功能:SQL存储过程数据库抽象。

作为第二个应用程序,它提供了 dkimsigner ,这个守护进程可以说smtp和 接收邮件,然后在使用 数据库中的DKIM密钥。

第三个包含的应用程序是 邮件转发器 。因为opensmtpd 6.x没有 提供一个稳定的过滤API和依赖于我的OpenSMTPD设置的 在"存储过程API"上, 邮件转发器提供 一个说守护进程的SMTP,它解析域和电子邮件地址 authserver的 数据库,然后可以将电子邮件转发到一个或多个其他数据库 电子邮件地址。基本上是基于 authserver的数据库模式作为python守护进程。

它还提供django manage.py 命令来注册OAuth2 应用程序、用户、域和Docker注册表。这些是有用的 通过配置管理系统创建配置条目。

它还包括 Docker令牌身份验证协议 ,因此可以是 用于使用SSO凭据保护Docker注册表的推拉。这个 包括 manage.py 命令: manage.py dockerauth registry add… 允许基于脚本的设置。

最后,它包括一个兼容的客户端应用程序 用于集成apache2 mod_authnz_external 或djb checkpassword 与AuthServer兼容的客户端。

用户可以使用管理界面创建特定的"服务用户" 可用于不支持的应用程序的用户帐户的别名 OAuth2所以用户不必与服务共享他们的密码 (相当于google gmail上的相同功能)。

计划的功能

  • OAuth2应用程序可以使用SSL客户端证书来验证 注册为oauth2客户机并获取其oauth2的非标准http api 凭证,减少手动配置。
  • openid connect支持
  • 不支持的系统的特定于服务的用户名和密码 OAuth2/OIDC
  • 通过mama cas支持cas
  • 通过django otp添加google authenticator支持

安装

目前还没有广泛可用的Docker容器,但您可以安装 从这个存储库:

$ virtualenv -p python3 authserver
$ authserver/bin/pip install net.maurus.authserver

或者对于Debian 9.0 Stretch:

$ echo"deb http://repo.maurus.net/release/stretch mn-release main" >> /etc/apt/sources.list.d/maurusnet.list
$ apt update
$ apt install authserver authclient

appconfig文件夹

此应用程序在其systemd配置中使用 12factor 。 从a appconfig文件夹加载其配置

此应用程序的规范保留配置文件夹:

  • /etc/appconfig/authserver
  • /etc/appconfig/dkimsigner
  • /etc/appconfig/mailforter

运行django admin.py,如下所示:

bin/envdir /etc/appconfig/authserver/env bin/django-admin.py [command]
    --settings=authserver.settings

12因素环境配置

托管配置

这些环境onment变量必须手动放置在appconfig文件夹中(或 通过配置管理)。您只需将 保险库 保留为空并设置 数据库URL 如果您不打算使用保险库。

<表> < COLGROUP > < COL/> < COL/> <广告> 变量 说明 < /广告> <正文> 保险库 固定的CA用于验证我们正在与 右侧保险库。 保险库数据库路径 从保险库读取以获取数据库的关键路径 完全访问角色的凭据。 数据库父角色 authserver应该"sudo"到的角色(通过 设置角色 )连接到数据库后,即 主要访问角色(仅用于保险库)。 数据库名称 要连接到的数据库的名称(仅用于 拱顶) 数据库URL 当客户端ssl证书或用户名和密码 用于连接到数据库而不是Vault, 然后这个url(由dj数据库url解析)用于 连接(仅在没有保险库的情况下使用)。 <表>

智能堆栈服务

此应用程序依赖于以下可用的SmartStack服务 在本地主机上:

<表> < COLGROUP > < COL/> < COL/> < COL/> <广告> 端口 服务 SSL主机名 < /广告> <正文> 5432 PostgreSQL postgresql.local 8200 保险库 本地保险库 <表>

SmartStack注册和负载平衡

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

推荐PyPI第三方库


热门话题
java传递实现接口的内部类   java为什么managedbean方法在post请求中的过滤器调用之前调用   java Android应用程序在Android M,O上崩溃,登录A/libc时出错:tid 17938中的致命信号11(SIGSEGV),代码2,故障地址0x343a2944   java JPA存储库。findByAll()返回null,但数据库中存在所有内容   用于发送电子邮件的java Ant脚本   Java小程序HTML页面发生了奇怪的事情   在Postman的请求正文中传递多个JSON数据,并使用Jersy(JXRS)进入Java Rest API   无法强制转换java DAO类   10分钟后重新连接java   正则表达式如何在java中选择字符串直到某个字符   java我的输出有一些问题   Objective中的java时间段   java如何在新屏幕上基于按钮单击在webview中打开url   java哪个selenium版本与Firefox ESR 45.2.0兼容   java无法使用Apache Camel 3.1.0将XML转换为JSON