【问题标题】:Azure AD token has already access to other app without permissionsAzure AD 令牌已在无权限的情况下访问其他应用
【发布时间】:2017-09-06 12:28:36
【问题描述】:

我们在 Azure AD 中注册了 2 个应用,我们称它们为 WebApi1 和 WebApi2。

WebApi1 需要调用 WebApi2。已在 WebApi1 中配置了一个秘密以获取令牌。这是我用来获取令牌然后调用 WebApi2 的代码:

这是我的 WebApi2 的配置方式:

我不明白的是,我希望 WebApi2 返回 401 异常,因为我没有在 Azure(通过应用注册门户)中为 WebApi1 设置任何权限。

然而,调用成功,WebApi1 可以访问 WebApi2。

为什么 WebApi1 可以访问 WebApi2 而无需使用 Azure 中的权限?

【问题讨论】:

  • Elferone,你的配置文件中AzureAd:Audiences 的值是多少?
  • 该配置包含 2 个应用程序 ID:第一个是另一个外部应用程序,第二个是 WebApi2 的应用程序 ID。

标签: azure azure-active-directory


【解决方案1】:

您的 Web api 应用程序应使用 IsInRole() 或 [Authorize] 属性检查访问。如果您的 web api 不检查访问权限,默认情况下,没有应用程序角色(权限)的访问令牌可以访问您的 web api。

请参考文档Roles based access control in cloud applications using Azure AD。由于您正在获取具有应用程序身份的令牌(客户端凭据流),请查看文档中的Assigning client applications to application roles of resource APIs部分。

【讨论】:

  • 确实我们还没有使用角色,但是api中的每个控制器都用[Authorize]属性装饰。你是在告诉我,除非我使用角色并在 API 中验证它们,否则 Azure 中的所有这些权限设置都不起作用?
  • 您的 [Authorize] 属性是否检查角色,例如 Authorize(Roles = "Administrator")] ?如果只有 [Authorize] ,它不会检查角色。
【解决方案2】:

只是另一件事。

如果您正在使用 Azure 和角色,则在设置 WindowsAzureActiveDirectoryBearerAuthenticationOptions 时,您需要设置正确的角色类型才能使 IsInRole(或 Authorize("YourRole"))工作。

 app.UseWindowsAzureActiveDirectoryBearerAuthentication(
            new WindowsAzureActiveDirectoryBearerAuthenticationOptions
            {
                TokenValidationParameters = new System.IdentityModel.Tokens.TokenValidationParameters
                {
                    ValidateIssuer = false,
                    ValidAudience = ConfigurationManager.AppSettings["AzureAd:Audience"],
                    RoleClaimType = System.Security.Claims.ClaimTypes.Role
                },
                AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Active,
                Tenant = ConfigurationManager.AppSettings["AzureAd:Tenant"],

            });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 2020-12-21
    • 1970-01-01
    • 2020-07-05
    • 2021-12-26
    • 2018-01-15
    • 2014-08-12
    相关资源
    最近更新 更多