将用户凭证传递给第三方API

时间:2019-07-26 22:16:37

标签: rest asp.net-web-api http-headers authorization asp.net-core-webapi

我有一个.Net Core 2.1 Web API,它依次向第3方API发出请求。

我的API和第三方API有自己的身份验证方案。

例如:

当用户向我的API发出此请求时:

POST https://www.my-api.com/api/messages
Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Content-Type: application/json

{ 
   "ThirdPartyAccount": "Account123", 
   "Username": "3pusername", 
   "Password": "3ppa$$word", 
   "Message": "Hello there!!"
}

我的api通过以下方式在内部创建对第三方API的请求:

POST https://www.3party-api.com/api/accounts/Account123/messages
Authorization: Basic YYYYYYYYYYYYYYYYYYYYYYYYYY

Message=Hello there!!

请注意,上面的“ YYYYYYYYYYYYYYYYYYYYYYYYYYYY”是此字符串的base64编码版本:3pusername:3ppa$$word

如您所见,目前我正在接受第三方帐号,用户名和密码作为我API的json主体的一部分。第三方API的凭据与我自己的凭据不同。

尽管所有这些服务都是TLS1.2,但是感觉像接受正文中的这些详细信息一样,因为json文本不是正确的方法。

在需要传播/传递给第三者的用例中,接受凭据的正确方法是什么?

0 个答案:

没有答案