python-fastapi-keycloak RBAC后端实现以及docker部署时候的一些坑

本文介绍了在FastAPI后端集成Keycloak进行权限控制(RBAC)的实现过程,包括如何处理Keycloak公钥、获取用户角色以及设置中间件。在设置过程中,需注意请求地址的变化。此外,还提醒在Docker部署时URL的正确配置。若需要前端Token请求示例,作者愿意提供Vue版本。
摘要由CSDN通过智能技术生成

Fastapi后端中集成keycloak

注意request可以在各个function里被传入 like:

@post....
def a (request):
	request.headers[]....
	...

定义一个类

class KeycloakAuthenticationMiddleware(BaseHTTPMiddleware):
    async def __call__(self, request: Request, call_next):
        try:
            token = request.headers['token']
        except KeyError:
            return Response(status_code=401, content="Token required")

这里很重要的是 keycloak返回的公钥里不带begin public key 和end public key,要手动加。

       # Token received. Decode token
       try:
           KEYCLOAK_PUBLIC_KEY = keycloak_openid.public_key()
           KEYCLOAK_PUBLIC_KEY = '-----BEGIN PUBLIC KEY-----\n' + KEYCLOAK_PUBLIC_KEY + '\n-----END PUBLIC KEY-----'
           print("DEBUG: PUBKEY:" + KEYCLOAK_PUBLIC_KEY)
           print("DEBUG: TOKE
Python-管理后台脚手架实现RBAC(基于角色的访问控制)和一个简单的SQLAlchemy的映射工具基于Tornado。管理后台脚手架是一个基础的框架,用于快速搭建管理后台系统。下面我详细介绍一下这两个功能的实现。 首先,RBAC是一种常见的权限管理模型,它通过对用户、角色和权限进行关联,实现了灵活的访问控制。在管理后台脚手架中,RBAC实现包括以下步骤: 1. 定义角色和权限:可以通过配置文件或者数据库定义角色和权限列表,例如:管理员、编辑、查看等。 2. 分配角色和权限:根据具体需求,将用户分配给相应的角色,同时为角色分配适当的权限。 3. 鉴权:在用户登录后,可以根据用户的角色和权限,通过一些逻辑判断来决定用户是否具有执行某个操作的权限。 其次,SQLAlchemy是Python中一个强大的ORM(对象关系映射)工具,它可以将数据库表映射为Python类,方便开发者使用面向对象的方式进行数据库操作。在管理后台脚手架中,SQLAlchemy的mapper工具用于简化数据库操作的代码,提高开发效率。具体实现包括以下步骤: 1. 定义模型类:通过定义Python类,使用SQLAlchemy提供的装饰器和字段类型,将数据库表映射为Python类,定义了表结构和字段类型等信息。 2. 创建数据库连接:通过SQLAlchemy提供的连接池机制,设置数据库连接参数,并创建数据库会话。 3. 数据库操作:通过调用模型类的方法,进行数据库的增删改查操作。SQLAlchemy的mapper工具将会自动创建SQL语句并执行。开发者无需手动编写SQL语句。 总之,使用Python-管理后台脚手架可以快速搭建一个具有RBAC权限管理和使用SQLAlchemy的mapper工具的管理后台系统。这些功能的实现大大简化了开发者的工作,提高了开发效率和系统的可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值