无交互式登录的AAD身份验证

时间:2016-11-09 19:37:25

标签: asp.net-web-api azure-active-directory

我需要从.net Web API对Azure Active Directory进行身份验证。我读过Vittorio Bertucci的文章:Using ADAL .NET to Authenticate Users via Username/Password,并且想知道是否有任何方法可以解决无法从网站/机密客户端执行此操作的限制。他将此描述为AAD设置。它是可以关闭的吗?

对此有任何帮助将非常感谢!

2 个答案:

答案 0 :(得分:1)

在网络应用中使用资源所有者密码凭据并非常见情况。建议的方法是使用Shawn Tabrizi建议的客户端凭据流

如果您确实想使用资源所有者密码凭据流,您可以自行构建请求,如下所示:

POST: https://login.microsoftonline.com/xxxxx.onmicrosoft.com/oauth2/token

Content-Type: application/x-www-form-urlencoded
resource={resource}&client_id={clientId}&grant_type=password&username={userName}&password={password}&scope=openid&client_secret={clientSecret}

答案 1 :(得分:0)

客户端凭据流(仅应用流程)应该使您的机密客户端能够在没有登录用户的情况下对下游资源进行身份验证。这种类型的身份验证是纯服务到服务身份验证,并且只需要以应用密钥(对称密钥)或证书凭据(非对称密钥)的形式呈现客户端应用程序的秘密。

但是,对AAD资源的所有形式的访问都需要某种形式的初始交互式登录。对于App Only Flows,您需要Admin才能使用Client应用程序执行交互式登录体验,这将允许后续的用户流程。

查看这些示例,让我知道它是否解决了您的问题!

https://github.com/azure-samples?utf8=%E2%9C%93&query=daemon

我希望这有帮助!

相关问题