我真的想了解关键点的关键点,关于端点,区域,租户,服务,用户和角色之间的关系.我试图找到相关的文件,但遗憾的是,失败了.
任何人都可以提供任何指示或解释吗?
我创建了两个用户,管理员,具有管理员权限,另一个用户,现在也具有管理员权限,但最初是社区(我将将此帐户称为社区)。
我已向社区用户注册了一个应用程序,并稍后关联了管理员。作为callbackUrl,我已在我的 keyrock 实例中注册了以下地址
<keystone ip>:/oauth2/token
Run Code Online (Sandbox Code Playgroud)
我要获取 oauth2 的请求如下,它使用https://raw.githubusercontent.com/Bitergia/fiware-chanchan-docker/master/images/pep-wilma/4.3.0/auth-token.sh作为指导方针。我更改了用户、通行证、主机、客户端 ID 和应用程序密钥
curl -s --insecure -i --header "Authorization: Basic NmJjODMyMWMzNDQwNGVlYzkwYzNhNzhlYTU0ZTE2NjY6M2YwMzQyZjE4ZTM1NGI0ZDg5YjhlYWVkNTZmNGI5Mjc=" --header "Content-Type: application/x-www-form-urlencoded" -X POST http://<keyrock IP>/oauth2/token -d 'grant_type=password&username=<user>&password=<pass>&client_id=<clientID>&client_secret=<secret>'
Run Code Online (Sandbox Code Playgroud)
请求到达 keystone 并回复 404(未找到访问令牌)。
当我尝试从 keyrock 为管理员和社区获取 oauth2 令牌时,它说
Error: Root - User access-token not authorized
Run Code Online (Sandbox Code Playgroud)
我可以用两个用户登录 Horizon。
为了从 idm 获取 oauth2 令牌,我错过了什么?
编辑:用于创建用户的代码:
users_default_pass = '...'
user0 = _register_user(keystone,"user0",passwd=users_default_pass)
keystone.roles.grant(user=user0.id,role=keystone.roles.find(name='community'), project=user0.default_project_id)
Run Code Online (Sandbox Code Playgroud)
Edit2:原始响应和来自使用 tcpflow 捕获的 keystone 的响应
要求:
POST /oauth2/token HTTP/1.1
User-Agent: curl/7.35.0
Host: 130.206.118.xxx:5000
Accept: */*
Authorization: …Run Code Online (Sandbox Code Playgroud) 我有一个简单的服务和 pod,如下所述,但就绪探测失败,抱怨连接被拒绝
apiVersion: v1
kind: Service
metadata:
name: keystone-api
spec:
selector:
app: keystone
ports:
- protocol: TCP
port: 5000
targetPort: 5000
name: public
- protocol: TCP
port: 35357
targetPort: 35357
name: admin
...
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: keystone
labels:
app: keystone
spec:
replicas: 1
selector:
matchLabels:
app: keystone
template:
metadata:
labels:
app: keystone
spec:
containers:
- name: keystone
image: openio/openstack-keystone
readinessProbe:
tcpSocket:
port: 5000
env:
- name: OS_IDENTITY_ADMIN_PASSWD
value: password
- name: IPADDR
valueFrom:
fieldRef:
fieldPath: status.podIP …Run Code Online (Sandbox Code Playgroud) openstack keystone kubernetes kubernetes-helm kubernetes-pod