我正在尝试在个人api from pyspark.sql import types as T, functions as F
df = spark.createDataFrame([
('0', 0),
('1', 1),
('2', None),
(None, 3),
(None, None),
None,
('6', 6),
('7', 7)
],
T.StructType([
T.StructField('str', T.StringType()),
T.StructField('num', T.IntegerType())
])
)
for n in range(7):
try:
print(df.take(n+1))
except:
print("Null on row [{}]".format(n))
break
# print(df.show())
# df.toPandas()
中使用keycloak + keycloak-gatekeeper进行授权。到目前为止,我已经完成了:
api.mydomain.com
,密钥斗篷的URL为https://auth.mydomain.com MY-REALM
ON 和confidential client
在同一领域中创建Authorization Enabled
:https://api.mydomain.com/ * Valid redirect URIS
现在,如果我在浏览器https://api.mydomain.com中访问,我将被重定向到https://auth.mydomain.com,要求输入用户名和密码。我提供了在第3点中创建的用户,并按预期将其再次重定向到https://api.mydomain.com。到目前为止一切都很好。
问题出在授权部分的配置中:
在密钥斗篷-> client-id: <MY-API-CLIENT-ID>
client-secret: <SECRET>
discovery-url: https://auth.mydomain.com/auth/realms/<MY-REALM>
enable-default-deny: true
listen: 127.0.0.1:5000
upstream-url: http://127.0.0.1:5001
verbose: true
enable-logging: true
enable-security-filter: true
enable-json-logging: true
-> Clients
-> <MY-API-CLIENT-ID>
-> Authorization
中,我将默认策略编辑为拒绝 {{ 1}} / * ,但我可以像以前一样访问https://api.mydomain.com中的每个资源(URL)。
我尝试过:
当然,我已经在密钥斗篷的Resources
标签中尝试了上述各项的所有组合,并在此处有效地模拟了策略显示 DENY 。
那么我在做什么错了?顺便说一句,在每个请求之后,这是来自keycloak-gatekeeper的日志:
resource
任何想法都会得到深深的赞赏。
答案 0 :(得分:0)
Gatekeeper不使用Keycloak -> Clients -> <MY-API-CLIENT-ID> -> Authorization -> Resources
。
它具有自己的资源配置,例如:
resources:
- uri: /admin/*
methods:
- GET
roles:
- openvpn:vpn-user
- openvpn:commons-prod-vpn
文档:https://www.keycloak.org/docs/latest/securing_apps/index.html#configuration-options