如何在Azure中添加作用域?

gorkyyrv  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(100)

我正在研究这个项目
https://github.com/Azure-Samples/ms-identity-docs-code-dotnet/tree/main/web-api#2-add-scopes
上面的链接建议添加一个作用域,但没有列出作用域应该添加到哪里?
我四处搜索,并注意到角色已被删除(如果这是同一件事),但考虑到我使用该项目中提供的默认代码(实际上有些人可能会说它的不同,因为我的代码是Web核心API,而不是最小的API),我不能让它运行。
我得到一个401和潜在的错误是

Microsoft.AspNetCore.Authorization.DefaultAuthorizationService: Information: Authorization failed. These requirements were not met:
ScopeAuthorizationRequirement:Scope=

编辑:

我终于找到了一个
应用注册〉公开API〉添加作用域
在此之后,我添加了API权限下的权限,并在状态列下有绿色标记,但上面的相同错误仍然存在

r3i60tvu

r3i60tvu1#

我在我的Azure AD租户中注册了一个Web API,如该项目中所述,如下所示:

现在,我通过点击Expose an API标签中的**Set**添加了Application ID URI,如下所示:

要添加作用域,需要点击**Add a scope**选项,并填写如下详细信息:

添加作用域后,会显示在本API定义的作用域下,如下图所示:

我克隆了相同的项目并修改了 。/appsettings。json 文件,**ClientIdTenantId**值如下:

{
  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "ClientId": "f736a78c-7493-468a-a572-xxxxxxxxxxx",
    "TenantId": "3f5c7a77-062d-426c-8582-xxxxxxxx",
    "Scopes": "Forecast.Read"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*"
}

当我用**dotnet run**命令运行这个项目时,我得到了下面的响应:

当我通过Postman向web API发送一个认证请求时,通过包含bearer token,我成功得到如下响应:

GET https://localhost:5001/weatherforecast
Authorization: Bearer <token>

答复:

相关问题