获取Microsoft Graph的访问令牌

时间:2020-09-22 13:11:26

标签: c# microsoft-graph-api

我有一个C#Web应用程序,试图通过该应用程序获取Microsoft Graph API的访问令牌。我可以通过使用客户端机密来获取令牌,但不想通过使用客户端机密来获取令牌,而是通过其他方式获取令牌,想要获得没有客户端机密的令牌。 我已成功使用机密获取令牌并将其存储在KeyVault中,但收到警报“ 显式凭据正在用于您的应用程序/服务主体 ”,因此需要一些获取令牌的替代方法。 有没有办法获得没有秘密的代币。任何帮助都会很棒。

2 个答案:

答案 0 :(得分:0)

一个人可以使用基于用户名和密码的ROPC oAuth授予,而不是使用“客户端机密”来获取访问令牌。 Microsoft身份平台支持OAuth 2.0资源所有者密码凭据(ROPC)授予,该授予允许应用程序通过直接处理用户的密码来登录用户。请参阅https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc 警告: Microsoft建议您不要使用ROPC流。在大多数情况下,可以使用更安全的替代方案,并建议使用。此流程需要对应用程序非常高度的信任,并且会带来其他流程中不存在的风险。仅当无法使用其他更安全的流时,才应使用此流。

答案 1 :(得分:0)

由于安全方面的考虑,不建议在没有客户端密码的情况下使用该方法。

如果您仍然不想使用客户机密,请使用隐式授予流程,我们可以通过维护SPA并将令牌传递到后端轻松在前端实现