如何解决One Login Open ID Connect 工作流程,如何启用 Duo Security MFA
目前我们有 Open ID Connect 身份验证工作流程,One Login 工作正常,并且能够通过自定义站应用程序登录用户,无需浏览器(自定义 UI)。现在需要通过 Duo Security 启用 MFA。 我们在 One Login 方面启用了 Duo Security Authentication Factor,当用户通过浏览器登录时,它会按预期工作 => 用户可以选择“向我发送推送”。现在我们需要以编程方式实现相同的工作流程:
-
我们遵循了此处概述的示例工作流程调用:https://developers.onelogin.com/api-docs/2/multi-factor-authentication/overview
-
对于给定的 user_id,我们可以使用 API 版本 1 => https://{{api-domain}}/api/1/users/{{user_id}}/otp_devices 检索注册的身份验证因素列表但不是版本 2 https://api.us.onelogin.com/api/2/users?username=ashley.akua,因为它返回空列表。 v1 api 调用的响应示例:
"data": {
"otp_devices": [
{
"active": true,"auth_factor_name": "Duo Duo Security","needs_trigger": false,"type_display_name": "Duo Security","default": true,"id": 11223344,"user_display_name": "Duo Security"
}
]
},"status": {
"message": "Success","error": false,"type": "success","code": 200
}
}
现在我们要触发 Duo Security MFA 的推送通知:
鉴于“need_trigger”设置为false,我们直接调用verify,主体中没有state_token或otp_token => https://api.us.onelogin.com}/api/1/users/999999/otp_devices/11223344/验证
我们得到以下内容:
{
"status": {
"message": "Failed authentication with this factor","error": true,"type": "Unauthorized","code": 401
}
}
在两次调用中,我都尝试使用“管理所有”级别的 API 密钥
现在的问题是,如何从 Open ID Connect 密码授予工作流程触发 Duo Security 推送通知?
解决方法
为未来用户的利益添加答案:
- 首先要通过 OneLogin 或 AWS 的 API 使用 Duo,您需要在 Duo 管理面板上将 Duo 配置为 Duo API
- One Login 目前不支持 Duo Push auth,仅支持 OTP,我不确定为什么会这样。通过创建会话令牌使用 OTP 和 state_token
- 为了回答主要问题,Open ID Connect 目前根本不支持 MFA,特别是密码授予 => 在我们的用户案例中,我们没有可以使用的浏览器,因此密码授予是唯一的选择。
我们目前正在评估替代方案,但 One Login API 中没有任何内容可以让我们此时继续前进
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。