我有一个.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文本不是正确的方法。
在需要传播/传递给第三者的用例中,接受凭据的正确方法是什么?