我使用 docker compose 部署了Orion、Cygnus、Keyrock 和 PEP 代理,正如您在存储库中看到的那样。但是实现的安全级别并不是我们想要的。
keystone_url = "http://localhost:5000"
keyrock_url = "http://localhost:8000"
orion = "http://localhost"
def test_authzforce(create=0,usuario="idm",nombre="",password="idm",correo=""):
if(create != 0):
ktoken=get_token(keystone_url)
create_user(keystone_url, ktoken,usuario,nombre,password,correo)
token = get_access_token(keyrock_url,usuario,password)
entities = get_all_entities(orion,token)
print("""
user:\t\t{}
token:\t\t{}
result:\t\t{}
""".format(usuario,token,entities))
test_authzforce()
test_authzforce(1,"test1","test1","test1","tes1t@test.com")
使用这个Python 包,在函数的第一次调用中,它使用管理员用户获取令牌,稍后获取 Orion 上的所有实体。但是在第二次调用中,这些函数在 keyrock 应用程序中创建了一个没有任何授权的新用户,尽管这样可以获取实体。
user: idm
token: ggeWahMo3x7gV7IAkg3hzzoRshEd6Y
result: []
user: test1
token: zDTCiE7GkEFujQSGRjYs76SqL6hkad
result: []
[Finished in 2.1s]
然后,尝试在这个 docker compose 文件上实现 Authzforce,得到了这些结果,而没有向同一个管理员授予访问权限:
user: idm
token: DZKTmiV289FPclWKwceiTi7JhvuIUq
result: User token not authorized
user: test1
token: nPH8fdLQeDdJg6Bi1riJfRYybqITud
result: User token not authorized
[Finished in 2.0s]
而控制台上的这个错误
在这里你有我所有的 authzforce 配置: