时基用户帐户到期

Time base user account expiration

我们正在使用 CloudFoundry UAA 进行用户身份验证,authorization.As 据我了解,我们可以将用户设置为活动用户,inactive.But 我们需要在给定 time.How 我们可以使用UAA 实现时基用户帐户到期吗?

它可能不是您要查找的内容,但您可以为此目的使用密码过期功能。它允许为属于特定区域的所有用户设置以月为单位的到期时间,这意味着最小的时间段为一个月。

如果您向自己展示区域的身份提供者,您将在配置中找到 '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 中,您会得到一个很好的 Web 表单来管理密码策略:

https://docs.pivotal.io/pivotalcf/1-7/opsguide/pw-policy.html

请记住,此功能仅在使用 ‘internal’ 身份提供商时可用。另一方面,如果您的 UAA 依赖于 LDAP 等外部身份验证源,您可能需要使用另一种特定于该外部系统的机制。

UAA 文档中有关身份提供者管理的更多信息:

https://github.com/cloudfoundry/uaa/blob/master/docs/UAA-APIs.rst#identity-provider-api-identity-providers