【问题标题】:No 'Access-Control-Allow-Origin' Header error during Client Credentials Request客户端凭据请求期间没有“Access-Control-Allow-Origin”标头错误
【发布时间】:2018-04-13 17:33:27
【问题描述】:

我需要为后台服务启用 API 访问,这样它就不需要手动用户登录。应用程序是用 Javascript ( Angular ) 编写的。

我已按照以下this article 中的同意流程/访问令牌的步骤进行操作,但出现 CORS 错误。

管理员同意确认 - 工作

访问令牌请求 - 失败

同意返回我用于下一步的租户

let payload = {
    client_id: 'CLIENT_ID_HERE',
    scope: 'https://graph.microsoft.com/.default',
    client_secret: 'CLIENT_SECRET_HERE',
    grant_type: 'client_credentials'
};
$http.post('https://login.microsoftonline.com/' + tenant + '/oauth2/v2.0/token', payload);

任何帮助将不胜感激。

【问题讨论】:

    标签: azure-active-directory microsoft-graph-api adal


    【解决方案1】:

    首先,不要将客户端机密放在前端 JavaScript 中

    客户端凭据授予流程不适合从前端使用。这就是您收到 CORS 错误的原因。

    您需要为您的应用启用隐式授权流程。在这里查看:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-implicit

    然后,您可以在 AAD 的第一个响应中获得访问令牌。或者您可以通过隐藏的 iframe 请求它。 Msal.js 可以在这里为您提供很多帮助:https://github.com/AzureAD/microsoft-authentication-library-for-js

    【讨论】:

      猜你喜欢
      • 2015-07-03
      • 1970-01-01
      • 2023-04-03
      • 2018-09-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2016-01-21
      • 1970-01-01
      相关资源
      最近更新 更多