对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反射和构造函数   java Spring Thymeleaf如何通过Thymeleaf表单编辑(更新)用户选择的实体(对象)?   Java Tapestry中不同类之间的静态、非静态和调用   java如何使用dojo 1.9显示地理地图   安卓如何在java中简化这个代码片段?   尝试将java spring应用程序部署到Oracle weblogic群集java时出错。lang.ArrayIndexOutofBounds异常:52304   java如何在标头中包含SOAP身份验证详细信息?   java使用流删除一个列表中的元素(如果存在于另一个列表中)   java如何将包含UTC时间的字符串(如“193526”(19:35:26)转换为本地时区?   java部署Grailsgenerated WAR文件的最简单方法是什么?   java使用两种类型向通用列表添加对象   java如何在安卓应用程序中保存应用程序数据?   java有人能帮我弄清楚如何从“:”(不包括)读取我的文件直到行尾吗?   java在org上找不到javadoc。日食团队svn anywhere