我尝试使用Lync UCWA刷新OAuth令牌,请按照此处的示例https://msdn.microsoft.com/en-us/library/office/dn356686.aspx#sectionSection3
他们的文档中的示例使用grant_type urn:microsoft.rtc:anonmeeting,但我使用的是grant_type =密码。我的客户端首先成功通过/ WebTicket / oauthtoken端点进行身份验证,我收到access_token就好了。
几个小时后,我需要通过以下参数再次发布到/ WebTicket / oauthtoken来刷新OAuth令牌:
grant_type=password
username=$my_username
password=$my_password
ms_rtc_renew=$access_token (cwt=AA....)
但是返回状态400,但是出现错误:invalid_request和标题中的注释"没有有效的安全令牌"。我在ms_rtc_renew中输入的值与我在所有标头中使用的其他端点的值相同,'授权' :[' Bearer $ access_token'],因此令牌工作正常。
我确保在发布到/ WebTicket / oauthtoken端点时使用Content-Type标题:application / x-www-form-urlencoded,并且我正在编码数据在发布之前。
是否有其他人能够使用Lync UCWA 1.0和grant_type =密码刷新OAuth令牌?任何经验丰富的UCWA都会在那里识别我在帖子中遗漏的内容以刷新令牌?
提前致谢。
答案 0 :(得分:5)
ms_rtc_renew特定于匿名会议授权类型。在同一文件中,它提到:
为经过身份验证的用户刷新令牌与获取新令牌的流程相同。
这是正确的思路,但它确实省略了一些关键信息。如果您有兴趣保持原有的UCWA应用程序有效,则必须在应用程序上执行POST请求时提供相同信息,否则将创建新应用程序。
扩展答案
当您到达UCWA应用程序返回404请求并指示当前OAuth令牌无效时,需要续订。按照KeyTasks-CreateApplication的步骤,在步骤#5上请求新令牌。此时,请使用新令牌并替换授权标头,并尝试发出失败的请求。
如果不起作用,请考虑使用相同的数据(UserAgent,EndpointId,Culture)重新创建应用程序(步骤#9)。您需要替换任何已保存的Json数据,因为应用程序Url可能会在实例之间更改(不完全确定)。