Azure AD B2C - 无法调用 MS Graph API 或 Azure AD Grap API
Azure AD B2C - Unable to call MS Graph API or Azure AD Grap API
我有一个带有 2 个自定义策略的 azure ad b2c,一个用于统一登录 in/up 页面,另一个用于密码重置。
当我创建帐户并登录时,我无法从 https://graph.microsoft.com/v1.0/me
获得成功的响应,我从中收到以下错误:
AADB2C90077: User does not have an existing session and request prompt parameter has a value of 'None'.
Correlation ID: 6ec76033-f72e-405d-ba1a-04c7534a571e
Timestamp: 2018-08-21 00:56:07Z
|interaction_required
我正在使用以下代码发出请求(使用 MSAL.js 和 axios):
const config = {
tenant: 'tenant.onmicrosoft.com',
clientId: 'app-id',
signInSignUpPolicy: 'https://login.microsoftonline.com/tfp/my_tenant/policy/',
passwordResetPolicy: 'https://login.microsoftonline.com/tfp/my_tenanat/my_pr_policy/',
scopes: ['https://graph.microsoft.com/user.read'],
redirectUri: 'http://theredirect.uri',
cacheLocation: 'localStorage',
graphUrl: 'https://graph.microsoft.com/v1.0',
};
/**
* @returns {Promise<any>}
*/
accessToken() {
return new Promise(async (resolve, reject) => {
try {
const accessToken = await this.userAgent.acquireTokenSilent(config.scopes);
resolve(accessToken);
} catch (exception) {
reject(exception);
// this.userAgent.acquireTokenRedirect(config.scopes).then(resolve, reject);
}
});
}
/**
* @param endpoint
* @returns {AxiosPromise<any>}
*/
async get(endpoint) {
const accessToken = await this.accessToken();
const requestConfig = {
headers: { Authorization: 'Bearer ' + accessToken },
};
const url = config.graphUrl + "/" + endpoint;
return axios.get(url, requestConfig);
}
图表 API 仅供 Azure AD "normal" 用户和应用程序访问。含义 - none 的 B2C 用户,也称为 local
将使用图表 API。
如果您需要在 B2C 上使用图表 API,您唯一的机会是使用应用程序身份注册到 B2C 租户的 "normal" Azure AD 部分 - more info and detailed description here.
另请注意,Microsoft Graph 不适用于 B2C 用户。
我有一个带有 2 个自定义策略的 azure ad b2c,一个用于统一登录 in/up 页面,另一个用于密码重置。
当我创建帐户并登录时,我无法从 https://graph.microsoft.com/v1.0/me
获得成功的响应,我从中收到以下错误:
AADB2C90077: User does not have an existing session and request prompt parameter has a value of 'None'.
Correlation ID: 6ec76033-f72e-405d-ba1a-04c7534a571e
Timestamp: 2018-08-21 00:56:07Z
|interaction_required
我正在使用以下代码发出请求(使用 MSAL.js 和 axios):
const config = {
tenant: 'tenant.onmicrosoft.com',
clientId: 'app-id',
signInSignUpPolicy: 'https://login.microsoftonline.com/tfp/my_tenant/policy/',
passwordResetPolicy: 'https://login.microsoftonline.com/tfp/my_tenanat/my_pr_policy/',
scopes: ['https://graph.microsoft.com/user.read'],
redirectUri: 'http://theredirect.uri',
cacheLocation: 'localStorage',
graphUrl: 'https://graph.microsoft.com/v1.0',
};
/**
* @returns {Promise<any>}
*/
accessToken() {
return new Promise(async (resolve, reject) => {
try {
const accessToken = await this.userAgent.acquireTokenSilent(config.scopes);
resolve(accessToken);
} catch (exception) {
reject(exception);
// this.userAgent.acquireTokenRedirect(config.scopes).then(resolve, reject);
}
});
}
/**
* @param endpoint
* @returns {AxiosPromise<any>}
*/
async get(endpoint) {
const accessToken = await this.accessToken();
const requestConfig = {
headers: { Authorization: 'Bearer ' + accessToken },
};
const url = config.graphUrl + "/" + endpoint;
return axios.get(url, requestConfig);
}
图表 API 仅供 Azure AD "normal" 用户和应用程序访问。含义 - none 的 B2C 用户,也称为 local
将使用图表 API。
如果您需要在 B2C 上使用图表 API,您唯一的机会是使用应用程序身份注册到 B2C 租户的 "normal" Azure AD 部分 - more info and detailed description here.
另请注意,Microsoft Graph 不适用于 B2C 用户。