我们正在使用CloudFoundry UAA进行用户身份验证和授权。据我所知,我们可以将用户设置为活动和非活动。但是我们要求在给定时间后过期用户帐户。如何实现时基用户帐户使用UAA到期?
答案 0 :(得分:2)
可能不是您正在寻找的内容,但您可以使用密码过期功能来实现此目的。它允许为属于特定区域的所有用户设置月份的到期时间,这意味着最短的时间段是一个月。
如果您展示了自己的区域身份提供商,您会在配置中找到 'expirePasswordInMonths' 属性:
{
"type": "uaa",
"config": "{\"emailDomain\":null,\"additionalConfiguration\":null,\"providerDescription\":null,\"passwordPolicy\":{\"minLength\":0,\"maxLength\":255,\"requireUpperCaseCharacter\":0,\"requireLowerCaseCharacter\":0,\"requireDigit\":0,\"requireSpecialCharacter\":0,\"expirePasswordInMonths\":1},\"lockoutPolicy\":{\"lockoutPeriodSeconds\":300,\"lockoutAfterFailures\":5,\"countFailuresWithin\":3600},\"disableInternalUserManagement\":false}",
"id": "fe5d0b8d-4d65-4090-b65a-3c17682bec7e",
"originKey": "uaa",
"name": "uaa",
"version": 2,
"created": 946684800000,
"last_modified": 1473569982108,
"active": true,
"identityZoneId": "uaa"
}
这是需要更改的属性。但令人惊讶的是,到达那里并不容易。
首先,您必须获得具有两个额外范围的访问令牌:“zones.read”和“zones。{zone id} .admin”,其中{zone id}是区域名称 - 'uaa'表示默认区域
例如,如果您在名为“admin”的客户端上使用uaac,则可以通过以下方式添加范围:
$ uaac client update admin --authorities "EXISTING-PERMISSIONS zones.read zones.uaa.admin"
请记住在更改权限后续订访问令牌:
$ uaac token client get admin -s <password_here>
一旦我们获得所有必需的权限,我们就可以使用'curl'子命令更新密码策略:
uaac curl -k /identity-providers/fe5d0b8d-4d65-4090-b65a-3c17682bec7e -X PUT -H "Content-Type: application/json" \
-d '{ "type": "uaa", "config": "{\"emailDomain\":null,\"additionalConfiguration\":null,\"providerDescription\":null,\"passwordPolicy\":{\"minLength\":0,\"maxLength\":255,\"requireUpperCaseCharacter\":0,\"requireLowerCaseCharacter\":0,\"requireDigit\":0,\"requireSpecialCharacter\":0,\"expirePasswordInMonths\":1},\"lockoutPolicy\":{\"lockoutPeriodSeconds\":300,\"lockoutAfterFailures\":5,\"countFailuresWithin\":3600},\"disableInternalUserManagement\":false}", "id": "fe5d0b8d-4d65-4090-b65a-3c17682bec7e", "originKey": "uaa", "name": "uaa", "version": 2, "created": 946684800000, "last_modified": 1473569982108, "active": true, "identityZoneId": "uaa"}'
我知道,这有点麻烦,这可能就是为什么在Pivotal的Cloudfoundry版本中你会得到一个很好的网页表单来管理密码策略:
https://docs.pivotal.io/pivotalcf/1-7/opsguide/pw-policy.html
请注意,只有在使用 '内部' 身份提供商时才能使用此功能。另一方面,如果您的UAA依赖于LDAP等外部身份验证源,则可能需要使用特定于此外部系统的其他机制。
有关UAA doc中的身份提供商管理的更多信息: