在Onelogin Openid重定向中使用MFA后获取UnauthorizedError

问题描述 投票:1回答:2

我正在使用php测试概念证明,没有框架。我想使用Onelogin和OpenID连接流来确认Onelogin的现有用户(已在Onelogin上设置)的身份,然后重定向到我的登录页面以完成该过程。我找不到类似的问题,所以我在这里。

使用https://developers.onelogin.com/openid-connect/api/authorization-code我已经设置了第一个api调用,其中OpenId Connect(OIDC) - > SSO - > Application Type设置为Web,Token端点设置为POST。有了这个,我能够通过成功回到我的测试系统登录流程。但是这不会传回任何用户可识别的信息,因此我无法在我们的数据库系统上确认用户。

据我在这里的所有例子中都可以看出,我正在登录Onelogin并使用MFA。我的手机上有Google Auth。一切看起来都不错然后我可以确认我已经在我的测试用户下登录了Onelogin。

测试用户没有权限,因为我的最终用户将仅使用Onelogin来确认我的最终系统上的身份。

所以如果有人不关心在启动系统上确认用户,我想这很好。但我确实需要这样,除非我错过了一些我无法使用的方式(Web)。

此外,我似乎能够登录并重新定向回到我的测试系统登录一次使用此但如果我再次尝试后,我得到UnauthorizedError。这让我想到首先将用户从Onelogin中记录下来,但是没有,在两者之间记录用户没有任何效果。

那么我尝试将应用程序类型设置为Native,希望我们重定向回我在应用程序中设置的重定向URL但是我在MFA之后继续获得UnauthorizedError,即使在检查完之后我似乎也无法通过这一点角色,策略和应用程序设置。

我已经尝试了所有选项的Token Endpoint,但我仍然在MFA之后获得UnauthorizedError或者我登录到Onelogin但是我没有被重定向到我在App设置中设置的测试登录URL。

现在不知所措,需要帮助。

编辑添加 - 用户已添加到应用程序,我可以通过应用程序和用户确认。此外,我可以看到,在我的用户的活动中,我可以看到它“登录到Openid Connect(OIDC)”。所以看起来我正在登录,但我仍然收到UnauthorizedError 401。

php openid openid-connect oidc onelogin
2个回答
0
投票

首先执行身份验证,然后执行授权。因此,如果您正在对Onelogin进行身份验证,并且正在收到“未授权”错误,那么所有与Onelogin中配置的OIDC应用程序相同的内容都不会直接或通过Onelogin角色为您分配用户。

所以,检查你的应用程序。转到“访问”选项卡。查看应用分配给谁。确认您的测试用户已分配到该角色。或者转到“用户”选项卡,然后检查您的用户是否已分配。


0
投票

来自@nial_atlasidentity的评论是正确的。这里最可能的答案是您的用户未分配到您的OIDC应用程序。

一旦您分配了用户,您将能够完成second part of the Auth Code Flow并从返回的id_token获取用户信息。您还可以使用返回的access_tokenUser Info Endpoint获取用户详细信息。

如果你想测试流程并检查返回的令牌的内容,我建议使用OIDC Inspector tool

© www.soinside.com 2019 - 2024. All rights reserved.