使用SAML单点登录获取OAuth访问令牌或使用Box.com API的代码

use*_*308 4 saml single-sign-on oauth-2.0 box-api

我们在公司的Intranet Portal和Box之间启用了基于SAML的单点登录(SSO),这样用户就不会使用用户名和密码登录Box.com.他们只需点击Intranet Portal上的一个按钮,该按钮就会向Box.com发布SAML断言进行身份验证.

我们希望我们的用户能够直接从Intranet Portal搜索他们的Box文档,Box.com API看起来非常合适.但是,它需要OAuth访问令牌.

问题是:

  1. 有没有办法从SAML断言中获取OAuth令牌?

  2. Box Embed允许将文件夹视图嵌入到其他站点.有没有办法只嵌入搜索结果.换句话说,我正在寻找一种方法,<iframe src="https://www.box.com/....?search=keywords"></iframe>只需在iframe中显示搜索结果.

Joh*_*err 5

1.我不知道是否有可能从SAML断言中获取OAuth2令牌 - 我认为它不是 - 但您可以非常轻松地配置Box应用程序以支持您公司的SSO.该箱的OAuth2用户授权的第一步工序是将用户的浏览器重定向到类似于网址:

https://www.box.com/api/oauth2/authorize?response_type=code&client_id=MY_CLIENT_ID
Run Code Online (Sandbox Code Playgroud)

在此页面上,用户可以使用他们选择的任何凭据登录Box,并授权您的应用程序触摸他们的文件.为了利用贵公司的SSO集成,您将改为将用户重定向到:

https://sso.services.box.net/sp/startSSO.ping
     ?PartnerIdpId=<YOUR_IDP_URN>
     &TargetResource=https%3A%2F%2Fwww.box.com%2Fapi%2Foauth2%2Fauthorize%3Fresponse_type%3Dcode%26client_id%3DMY_CLIENT_ID
Run Code Online (Sandbox Code Playgroud)

哪里:

  • PartnerIdpId是贵公司的IdP的URN.
  • TargetResource是上面描述的默认OAuth2授权URL的HTTP编码版本.

这将告诉Box将用户退回到您的IdP以进行授权,而不是提示用户使用Box凭据登录.然后OAuth2流程将继续正常进行.

2.我不知道这是可能的,但是使用有效的OAuth2令牌,您可以轻松使用Box Search API.