如何从 Okta API 获取密码限制?

How to get Password Restrictions from Okta API?

我使用 Okta 作为自定义用户管理 Web 解决方案的基础。在后端,我有 ASP.NET 我正在使用 OKTA 特定的 SDK 从那里与 okta 通信。

在前端,我使用的是基于 Angular 的 UI,但不从此处与 Okta 通信(无 CORS)。我能够在组和用户中登录、验证会话、CRUD 操作,所以除了密码限制外,几乎所有的东西都工作得很好。

我不想硬编码,而是通过 API 动态获取它们并在工具提示中显示密码复杂性限制或验证我的表单。我可以找到要使用的模型对象,但我不知道如何通过 API 获取它,不知道哪个客户端对象会包含此策略、密码策略或复杂性对象作为 GET 方法。文档很差,所以如果有人能提供帮助,我们将不胜感激。

可以从 Okta API 中检索密码复杂性规则,但还没有详细记录。 Policy API 就是您要查找的内容。

Okta .NET SDK 不支持此 API,但您可以发出原始 HTTP 请求以列出所有密码策略:

GET https://dev-xxxxx.oktapreview.com/api/v1/policies?type=PASSWORD
Authorization: SSWS your-token

200 OK
[
  {
    "type": "PASSWORD",
    "id": "00p9o1nik8khgmupS0h7",
    "status": "ACTIVE",
    "name": "Default Policy",
    // snip...
    "settings": {
      "password": {
        "complexity": {
          "minLength": 8,
          "minLowerCase": 1,
          "minUpperCase": 1,
          "minNumber": 1,
          "minSymbol": 0,
          "excludeUsername": true
        },
      },
      // snip...
    },
    // snip...
  }
]

您应该能够提取复杂性规则并为用户呈现它们。

完全披露:我在 Okta 工作。 (我会确保将来有更简单的方法来做到这一点!)