对oidc访问令牌的flask支持

flaat的Python项目详细描述


#flask支持处理oidc访问令牌-flaat

python
依赖项包括请求、flask、json和functools。其中大部分
都是相当标准的。

d非常容易做出
访问决策。优先考虑的是易用性,它有一些潜在的缺点。

example.py通过flask提供了一个api,该flask使用flaat(flask支持访问令牌)进行保护。

`flaat'允许使用简单的修饰符来保护rest接口,例如:
````
@flaat.login\u required()
`````
`flaat'还支持复杂的组成员身份检查。要匹配给定组中的两个,请使用:
``
@flaat.group\u required(group=['admins@kit.edu','employee@kit.edu','member@kit.edu'],
claim='eduperson\u scoped\u affiliation',match=2)
```
claim参数允许选择要在其中查找
group memb的oidc声明rship.

一旦启动,您就可以测试对以下示例的调用:

````
curl http://localhost:8080/valid廑user-h"authorization:bearer`oidc token deep`"
````
````
http localhost:8080/group廑test廑hdf"authorization:bearer`oidc token unity`"
``


请在example.py和相应的
docstrings中查找使用详细信息。


flaat可以是任何oidc访问令牌。

使用flaat提供的三个
装饰器:
-需要登录
-需要组
-aarc-g002-u需要组
保护它们装饰的函数
可以像运行python3一样运行它。r/>http localhost:8080/有效用户"授权:bearer$oidc"
http localhost:8080/有效用户"授权:bearer`oidc token unity`"
curl localhost:8080/有效用户-h"授权:bearer`oidc token egi`"
http localhost:8080/组测试iam"授权:bearer`oidc token goog"le`"
```

-`get_userinfo.py`是用于测试的命令行应用程序。它使用flaat的方式类似于example.py`
示例:
````
/get_userinfo.py`oidc token indigo iam`
```

flaat做什么?

flaat试图从at获取尽可能多的信息,以确定是否应该调用它所保护的函数。


flaat仅对调用at的oidc访问令牌进行操作。

-flaat首先分析at,以确定at是否是json web令牌
(jWT)。在这种情况下,可能会有一个"exp"声明,该声明已被使用。

。您可以提供可信操作列表、包含可信操作列表的文件或单个操作。
对于列表,可以指定操作提示,用于筛选可用的可信操作列表。

为他们的
配置,然后为他们的userinfo端点,评估at
是否可能由他们提供。


注意:为了对已知发布jwt的操作友好,这些
被排除在搜索之外。

-如果用户提供了有效的客户端id还有客户的秘密查询给定操作的内省终结点。

这似乎不是
的情况。如果您需要严格的生命周期检查,请从与您合作的Ops获取
客户端ID和客户端机密。



-datacloud.eu/
-egi--https://aai.egi.eu/oidc/
-unity/b2access,如helmholtz数据联合会中使用的--https://unity.helmholtz数据联合会.de/oauth2/
-kit的shibboleth安装--https://oidc.scc.kit.edu/auth/realms/kit/
-google--https://accounts.google.com/
-eduteams——https://proxy.demo.eduteams.org


//opensource.org/licenses/mit)




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

推荐PyPI第三方库


热门话题
java刷新系统。用自己的记录器输出   使用Jython将参数从Java传递到Python   JavaSocksV4代理   java如何使用通知?   java@DirtiesConext不工作   java将多个jar组合成一个(使用maven)   java使用相等运算符比较两个类   java我怎样才能让两个JOptionPane一起出现在我的第一页上,并让它们在两个页面上都有正确的答案?   html无法访问java中资产文件夹内的文件   通过post命令向SpringWebApp发送对象时,java对象字段为null   单个实例中静态变量的类更改值(Java)   java解决方案是什么   试图检查网站所有受支持的密码套件的安全性,在java中遇到chacha20和poly1035问题