客户端凭据请求期间没有 'Access-Control-Allow-Origin' Header 错误
No 'Access-Control-Allow-Origin' Header error during Client Credentials Request
我需要为后台服务启用 API 访问权限,这样它就不需要用户手动登录。应用程序写在 Javascript ( Angular ).
我已按照以下 this article 中的同意流程/访问令牌步骤进行操作,但我收到 CORS 错误。
管理员同意确认 - 工作
访问令牌请求 - 失败
同意returns我用于下一步的租户
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);
如有任何帮助,我们将不胜感激。
首先,不要将客户端机密放在前端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.
我需要为后台服务启用 API 访问权限,这样它就不需要用户手动登录。应用程序写在 Javascript ( Angular ).
我已按照以下 this article 中的同意流程/访问令牌步骤进行操作,但我收到 CORS 错误。
管理员同意确认 - 工作
访问令牌请求 - 失败
同意returns我用于下一步的租户
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);
如有任何帮助,我们将不胜感激。
首先,不要将客户端机密放在前端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.