无法获得将 SPFX webpart 与 Azure Devops 连接的同意
Cannot get consent to connect SPFX webpart with Azure Devops
我正在尝试从 Sharepoint Web 部件连接到 Azure Devops。
我在包中添加了几个权限请求-solution.json:
"webApiPermissionRequests": [
{
"resource": "Windows Azure Active Directory",
"scope": "User.Read"
},
{
"resource": "Azure DevOps",
"scope": "user_impersonation"
},
{
"resource": "SharePoint Online Client Extensibility Web Application Principal",
"scope": "user_impersonation"
}
...
并使用 AAD 工厂调用 Azure DevOps api,如下所示:
this.context.aadHttpClientFactory.getClient('499b84ac-1321-427f-aa17-267ca6975798').then((client: AadHttpClient) => {
client.get(`https://dev.azure.com/reinder0498/_apis/projects?api-version=6.0`, AadHttpClient.configurations.v1)
.then((response: HttpClientResponse) => {
console.log(response);
return response.json();
})
.then((projects: any): void => {
console.log(projects);
});
});
但随后出现此错误:“用户或管理员未同意使用 ID 为‘177c71fc-1022-4e3c-82cd-faa17d9864bf’且名为 'SharePoint Online Client Extensibility Web Application Principal' 的应用程序。发送交互式授权请求这个用户和资源。"
我查看了 Sharepoint 管理中心中待处理和已批准的请求,但看不到任何请求...
我还需要做什么才能使用 aadHttpClientFactory 连接到 Azure DevOps API?
更新
如果我在 AAD 中浏览到那个 Sharepoint Online 客户端应用程序,授予管理员同意的按钮被禁用:
注册Azure AD(Delegated Permissions)的应用程序出现错误,需要用户或管理员同意才能获得所需的权限。
您需要在 Azure 门户中为您的应用程序配置权限,或者先创建 url 并授予权限。下面是 link 如何构建 url。您只需执行一次,并可以在需要时删除权限。
授予租户范围的管理员对应用程序的同意
此外,这里有一个 GitHub 关于您的设置的问题已提出并已解决。
SPFX USER
能够自己弄清楚。问题是您需要在您的团队环境中 运行 它才能在您的 Sharepoint 环境中创建批准请求。
我现在配置了这些权限请求:
{
"resource": "Azure DevOps",
"scope": "user_impersonation"
},
{
"resource": "Windows Azure Active Directory",
"scope": "User.Read"
}
我将我的 Web 部件上传到 Sharepoint,将其同步到 Teams,然后在 Teams 中打开它。有时我收到有关同意的错误消息,然后我看到批准请求出现在 Sharepoint 管理中。
获得批准后,我的 Web 部件成功连接到 DevOps REST API。
我正在尝试从 Sharepoint Web 部件连接到 Azure Devops。
我在包中添加了几个权限请求-solution.json:
"webApiPermissionRequests": [
{
"resource": "Windows Azure Active Directory",
"scope": "User.Read"
},
{
"resource": "Azure DevOps",
"scope": "user_impersonation"
},
{
"resource": "SharePoint Online Client Extensibility Web Application Principal",
"scope": "user_impersonation"
}
...
并使用 AAD 工厂调用 Azure DevOps api,如下所示:
this.context.aadHttpClientFactory.getClient('499b84ac-1321-427f-aa17-267ca6975798').then((client: AadHttpClient) => {
client.get(`https://dev.azure.com/reinder0498/_apis/projects?api-version=6.0`, AadHttpClient.configurations.v1)
.then((response: HttpClientResponse) => {
console.log(response);
return response.json();
})
.then((projects: any): void => {
console.log(projects);
});
});
但随后出现此错误:“用户或管理员未同意使用 ID 为‘177c71fc-1022-4e3c-82cd-faa17d9864bf’且名为 'SharePoint Online Client Extensibility Web Application Principal' 的应用程序。发送交互式授权请求这个用户和资源。"
我查看了 Sharepoint 管理中心中待处理和已批准的请求,但看不到任何请求... 我还需要做什么才能使用 aadHttpClientFactory 连接到 Azure DevOps API?
更新
如果我在 AAD 中浏览到那个 Sharepoint Online 客户端应用程序,授予管理员同意的按钮被禁用:
注册Azure AD(Delegated Permissions)的应用程序出现错误,需要用户或管理员同意才能获得所需的权限。 您需要在 Azure 门户中为您的应用程序配置权限,或者先创建 url 并授予权限。下面是 link 如何构建 url。您只需执行一次,并可以在需要时删除权限。
授予租户范围的管理员对应用程序的同意
此外,这里有一个 GitHub 关于您的设置的问题已提出并已解决。 SPFX USER
能够自己弄清楚。问题是您需要在您的团队环境中 运行 它才能在您的 Sharepoint 环境中创建批准请求。
我现在配置了这些权限请求:
{
"resource": "Azure DevOps",
"scope": "user_impersonation"
},
{
"resource": "Windows Azure Active Directory",
"scope": "User.Read"
}
我将我的 Web 部件上传到 Sharepoint,将其同步到 Teams,然后在 Teams 中打开它。有时我收到有关同意的错误消息,然后我看到批准请求出现在 Sharepoint 管理中。
获得批准后,我的 Web 部件成功连接到 DevOps REST API。