UCWA 使用 grant_type=密码刷新 Oauth 令牌
UCWA refresh Oauth token with grant_type=password
我正在尝试使用 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 就好了。
几个小时后,我需要使用以下参数再次 posting 到 /WebTicket/oauthtoken 来刷新 OAuth 令牌:
grant_type=password
username=$my_username
password=$my_password
ms_rtc_renew=$access_token (cwt=AA....)
虽然返回状态 400,但有错误:invalid_request 和 header 中的注释 "No valid security token"。我输入 ms_rtc_renew 的值与我在所有 header 到其他端点 'Authorization' : ['Bearer $access_token'] 中使用的值相同,因此令牌工作正常。
我已经确定我正在使用 Content-Type 的 header:application/x-www-form-urlencoded 当 post 连接到 /WebTicket/oauthtoken 端点时,并且我在 posting 之前对数据进行 urlencoding。
有没有其他人能够使用 Lync UCWA 1.0 和 grant_type=密码刷新 OAuth 令牌?任何有经验的 UCWA 开发人员都知道我在 post 中缺少什么来刷新令牌?
提前致谢。
ms_rtc_renew 特定于匿名会议授权类型。在同一文档中提到:
Refreshing a token for authenticated users is the same flow as acquiring a new token.
这是正确的思路,但它确实遗漏了一些关键信息。如果您有兴趣保持原始 UCWA 应用程序有效,则有必要在对应用程序执行 POST 请求时提供 相同信息,否则将创建一个新应用程序。
扩展答案
当您到达 UCWA 应用程序向请求返回 404 并指示当前 OAuth 令牌无效时,有必要更新。按照 KeyTasks-CreateApplication 的步骤,在步骤 #5 中请求一个新令牌。此时获取新令牌并替换 Authorization header 并尝试发出失败的请求。
如果这不起作用,请考虑 re-creating 应用程序(步骤 #9)使用相同的数据(UserAgent、EndpointId、Culture)。您将需要替换任何保存的 Json 数据,因为应用程序 Url 可能会在实例之间发生变化(不完全确定)。
我正在尝试使用 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 就好了。
几个小时后,我需要使用以下参数再次 posting 到 /WebTicket/oauthtoken 来刷新 OAuth 令牌:
grant_type=password
username=$my_username
password=$my_password
ms_rtc_renew=$access_token (cwt=AA....)
虽然返回状态 400,但有错误:invalid_request 和 header 中的注释 "No valid security token"。我输入 ms_rtc_renew 的值与我在所有 header 到其他端点 'Authorization' : ['Bearer $access_token'] 中使用的值相同,因此令牌工作正常。
我已经确定我正在使用 Content-Type 的 header:application/x-www-form-urlencoded 当 post 连接到 /WebTicket/oauthtoken 端点时,并且我在 posting 之前对数据进行 urlencoding。
有没有其他人能够使用 Lync UCWA 1.0 和 grant_type=密码刷新 OAuth 令牌?任何有经验的 UCWA 开发人员都知道我在 post 中缺少什么来刷新令牌?
提前致谢。
ms_rtc_renew 特定于匿名会议授权类型。在同一文档中提到:
Refreshing a token for authenticated users is the same flow as acquiring a new token.
这是正确的思路,但它确实遗漏了一些关键信息。如果您有兴趣保持原始 UCWA 应用程序有效,则有必要在对应用程序执行 POST 请求时提供 相同信息,否则将创建一个新应用程序。
扩展答案
当您到达 UCWA 应用程序向请求返回 404 并指示当前 OAuth 令牌无效时,有必要更新。按照 KeyTasks-CreateApplication 的步骤,在步骤 #5 中请求一个新令牌。此时获取新令牌并替换 Authorization header 并尝试发出失败的请求。
如果这不起作用,请考虑 re-creating 应用程序(步骤 #9)使用相同的数据(UserAgent、EndpointId、Culture)。您将需要替换任何保存的 Json 数据,因为应用程序 Url 可能会在实例之间发生变化(不完全确定)。