我使用OpenIDIdentityProvider
和mappingMethod: claim
来验证Openshift管理控制台中的管理员用户。我使用auth0服务对用户进行身份验证。管理员用户在部署的ansible playbook中定义,有效地使管理员用户硬编码。
是否可以使用OpenIDIdentityProvider
,lookup
映射方法完全管理所有管理员和开发人员用户,并添加extraScopes: [roles]
之类的内容以将其他授权角色引入身份验证请求?这将使我能够完全管理用户和角色与ansible playbook。 管理身份验证提供程序方权限的下一级奖励点。
Openshift文档非常清楚默认mappingMethod: claim
之外的身份验证/授权细节。
以下是基于声明的映射方法的身份提供者json文件:
{
"items": [
{
"name": "auth0",
"challenge": false,
"login": true,
"mappingMethod": "claim",
"kind": "OpenIDIdentityProvider",
"clientID": "supersecretsauce",
"clientSecret": "extrasupersecretsauce",
"extraScopes": ["email", "profile"],
"claims": {
"id": [
"email"
],
"preferredUsername": [
"email"
],
"name": [
"name"
],
"email": [
"email"
]
},
"urls": {
"authorize": "https://fancypants.auth0.com/authorize",
"token": "https://fancypants.auth0.com/oauth/token",
"userInfo": "https://fancypants.auth0.com/userinfo"
}
}
]
}
简单来说,下面的内容足以满足身份验证提供程序返回的角色的基于查找的映射方法:
{
"items": [
{
"name": "auth0",
"challenge": false,
"login": true,
"mappingMethod": "lookup",
"kind": "OpenIDIdentityProvider",
"clientID": "supersecretsauce",
"clientSecret": "extrasupersecretsauce",
"extraScopes": ["email", "profile", "roles"],
"claims": {
"id": [
"email"
],
"preferredUsername": [
"email"
],
"name": [
"name"
],
"email": [
"email"
],
"role": [
"roles"
]
},
"urls": {
"authorize": "https://fancypants.auth0.com/authorize",
"token": "https://fancypants.auth0.com/oauth/token",
"userInfo": "https://fancypants.auth0.com/userinfo"
}
}
]
}
功能角色值的示例是cluster-admin
。
答案 0 :(得分:1)
OpenID只能用于身份验证。您正尝试将其用于身份验证和授权。这是不可能的,因为角色和绑定由Openshift管理 - 它们不能委托给外部服务。