【问题标题】:Azure AD Multitenant WebApi Bearer Authorization ConfigurationAzure AD 多租户 Web Api 承载授权配置
【发布时间】:2019-03-11 16:58:59
【问题描述】:

我目前正在开发一个带有 AAD 单点登录的 ASP.net MVC 和 Web API 项目。我目前面临的问题是我不知道如何配置 WebAPI 的授权。这是我目前尝试过的方法,但它不起作用。

 
public void ConfigureAuth(IAppBuilder app)
        {
...
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
                        new WindowsAzureActiveDirectoryBearerAuthenticationOptions
                        {
                            Tenant = "common",
                            TokenValidationParameters = new TokenValidationParameters
                            {
                                ValidAudience = audience,
                                ValidateIssuer = false

                        }              });

...}

我通过邮递员令牌预定义令牌请求获取访问令牌,这很有效。

postman token request

当我调用 WebAPI(标题:授权 -> 承载)时,我得到了以下异常:


{
    "Message": "Authorization has been denied for this request."
}

是否必须准备令牌请求、API 标头或配置?

背景, 汤姆

【问题讨论】:

    标签: c# asp.net-web-api azure-active-directory multi-tenant


    【解决方案1】:

    这是一个关于Building a multi-tenant web API secured by Azure AD 的示例。您可以下载它并按照它提供的步骤进行配置。

    应用程序使用 Active Directory 身份验证库 (ADAL) 通过 OAuth 2.0 协议获取 JWT 访问令牌。访问令牌被发送到 Web API 以对用户进行身份验证。 Web API 项目演示了如何构建服务以供来自多个 Azure AD 租户的用户访问。

    由于您要登录多个租户,您需要进入注册的应用程序并单击Manifest选项设置availableToOtherTenantstrue

    更多详情可以参考这个article

    【讨论】:

    • 是的,我知道所有这些示例,我已经将其设置为 true,但我的问题是令牌验证。如何检查为什么令牌不是有效的?或者我应该使用另一个邮递员请求令牌调用吗?我在我的 API 的匿名调用中使用了令牌来调用用户并且它可以工作 (graph.microsoft.com/v1.0/users)
    猜你喜欢
    • 2017-06-11
    • 2017-01-04
    • 2018-10-11
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 2017-07-07
    • 2017-10-10
    相关资源
    最近更新 更多