我有一个APIapi/GetPets
,它被多个客户端使用,这些客户端也是API的,ClientA, ClientB
具有相同的Azure客户端ID*****
。
虽然ClientA
进行身份验证并使用api/GetPets
,但我想在令牌中获取客户端名称或以某种方式识别调用API的客户端。有没有解决这个问题的解决方案?
区分调用客户端应用的方式是它们使用不同的客户端 ID。
如果要区分它们,则必须单独注册它们,以便它们具有不同的客户端 ID。
@junnas的答案是正确的,可能是最好的方法。但是,我能想到的唯一另一种方法是在 HTTP 请求上显式传递客户端名称;这仅适用于 100% 受信任的客户端。否则,无法阻止任何具有有效身份验证令牌的客户端篡改 HTTP 请求上的客户端名称。如果客户端名称位于签名的身份验证令牌 (JWT( 中,则会检测到并阻止任何篡改。