Authentication 无需重定向即可从Microsoft AD应用程序获取访问令牌

Authentication 无需重定向即可从Microsoft AD应用程序获取访问令牌,authentication,azure-active-directory,Authentication,Azure Active Directory,要求 我已经创建了一个Web API,它需要来自Microsoft Active Directory应用程序的访问令牌,然后在对Web API的后续请求中使用该访问令牌。我正在PowerApp组件中使用这些Web API。但是,如果不将用户重定向到登录页面,我无法从Javascript内部获取访问令牌。根据我的要求,我必须获得访问令牌,然后访问我的Web API,而无需重定向用户登录 实施 我正在从JS对“{tanent_id}/oauth2/token”进行一个POST调用,并试图使用客户机机

要求

我已经创建了一个Web API,它需要来自Microsoft Active Directory应用程序的访问令牌,然后在对Web API的后续请求中使用该访问令牌。我正在PowerApp组件中使用这些Web API。但是,如果不将用户重定向到登录页面,我无法从Javascript内部获取访问令牌。根据我的要求,我必须获得访问令牌,然后访问我的Web API,而无需重定向用户登录

实施

我正在从JS对“{tanent_id}/oauth2/token”进行一个POST调用,并试图使用客户机机密获取访问令牌

问题

每当试图访问登录API时,我都会遇到CORS问题。我可以从Postman和Internet Explorer获得访问令牌,但不能访问其他浏览器(如Chrome、Firefox、Edge)

有人可以建议我如何防止CORS问题,并使用访问令牌继续我的Web API调用吗。我已经学习了隐式方法,但它不起作用,因为我们也需要在这种方法中重定向到URL


由于隐式授权流不是您的选择,而且您确实需要一个仅应用程序令牌,因此恐怕您必须从后端应用程序发出请求。然后您可以从后端应用程序获取访问令牌。

您是否尝试使用客户端凭据流?有关更多详细信息,请参阅是的,我也已经这样做了。在这种情况下,它需要身份验证,并将应用程序重定向到在我的场景中无效的登录Microsoft的登录页面。我必须在应用程序内获取身份验证和访问令牌,而无需重定向到任何位置。据我所知,如果我们使用客户端凭据流,我们可以直接获取Azure AD访问令牌,而无需登录。你能提供你使用的代码吗?我使用的是客户端秘密流,它似乎对我有效,但问题是CORS。每当我试图请求访问令牌时,它总是给我CORS问题。这是我得到的主要问题,我已经搜索了很多来解决这个问题,但是我找不到任何方法。你能提供错误图片吗?