通过SSO

时间:2018-02-13 01:53:46

标签: oauth single-sign-on office365 onedrive onelogin

我有一个应用程序,支持基于saml的sso和oauth访问云存储提供程序,如google drive,dropbox和microsoft onedrive。我有一个帐户设置,使用OneLogin作为身份提供商,我的应用程序和onedrive充当服务提供商。该应用程序要求用户对其云存储提供程序进行身份验证,因此我在此身份验证步骤中将用户从应用程序重定向到onedrive。因为他们正在使用onelogin sso,他们被从onedrive重定向到onelogin,他们登录onelogin,并被重定向回one​​drive。在这里,他们恢复oauth流并同意授予应用程序某些权限并发回代码。我使用此代码ping onedrive&#token / token路由以交换access_token和refresh_token。但是我们没有收到refresh_token,因此要求用户经常不得不使用onedrive重新进行身份验证。

有没有人知道为什么我们没有收到refresh_token?我也接触过onelogin和microsoft(还没有进展/响应)。 我已经玩弄了MS azure和onelogin中的设置,但还没有解决这个问题。

其他细节:

要清楚,流程是:

    从应用程序
  1. 尝试使用onedrive
  2. 进行oauth auth
  3. 被重定向到onelogin
  4. 登录onelogin
  5. 重定向到onedrive
  6. 授予第三方应用访问权限
  7. 通过访问代码
  8. 重定向回应用
  9. 交换oauth令牌的代码
  10. 无法接收refresh_token
  11. 谢谢!

1 个答案:

答案 0 :(得分:0)

要获取refresh_token,您需要在OneLogin管理门户中配置的“应用程序”的“ SSO”选项卡的“令牌超时设置”中设置“刷新令牌(超时)”字段。