.NET Web应用能否注册为Azure移动原生客户端并使用PublicClientApp?
针对Azure AD身份验证的.NET 4.5 Web应用相关问题解答
1. 能否使用PublicClientApplication以交互式方式获取令牌?
不行。原因如下:
PublicClientApplication是为公共客户端设计的,这类客户端无法安全存储敏感凭据(比如桌面APP、移动APP);而托管在服务器上的Web应用属于机密客户端,具备安全存储客户端密钥/证书的能力,Azure AD会强制这类客户端使用凭据验证身份。- Web应用的交互式登录场景,应当通过
ConfidentialClientApplication结合授权码流程实现:用户在浏览器完成身份验证后,Azure AD返回授权码,Web应用使用该授权码+客户端密钥/证书交换令牌,这是符合Web应用场景的安全流程。你遇到的“需提供客户端密钥”提示,是机密客户端的正常要求,无法绕过。
2. .NET Web应用能否注册为移动/原生客户端平台?
- 操作层面可以在Azure AD应用注册中添加“移动和桌面应用”平台,但这严重不符合安全最佳实践:
- 原生客户端属于公共客户端,Azure AD不会要求这类客户端提供凭据验证身份,任何知晓应用ID的主体都可以冒充你的Web应用发起请求,存在身份伪造的安全风险。
- Web应用的服务器端运行环境天然适合作为机密客户端,使用WEB APP平台配置+客户端密钥/证书,才能保证应用身份的合法性和安全性。
内容的提问来源于stack exchange,提问作者Divyasiri Edula
相关产品推荐
相关产品推荐

