Azure AD Token based Authentication for WebAPI



我们在.net Core 2.1中开发了无需身份验证的Web API。

但现在我们正在尝试添加基于 Azure AD 令牌的身份验证。

我们已经在 Azure AD 中注册了应用,并在启动.cs文件中进行了必要的更改。 并添加了授权标签

当我们在邮递员中测试 API 时,我们生成了令牌Microsoft结果我们得到了 Html 格式的登录页面。

当我们在浏览器中交叉检查 API 时,它通过提供用户名密码来询问域用户名和密码,我们得到结果。

Azure AD 设置或代码中似乎缺少一些配置或设置。

任何人都可以帮忙吗? 其他明智的人分享了API基于令牌的身份验证实现的步骤。

如果已有 api,则应首先在 Azure 门户中注册应用。

在您的 api 应用程序中,您可以按照以下步骤操作:

  1. 安装软件包Microsoft.AspNetCore.Authentication.AzureAD.UI
  2. ConfigureServices函数中注册 Azure AD 持有者身份验证服务:

    services.AddAuthentication(AzureADDefaults.BearerAuthenticationScheme)
    .AddAzureADBearer(options => Configuration.Bind("AzureAd", options));
    
  3. appsettings.json中,从 Azure 门户设置正确的 api 配置:

    "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "YourDomain.onmicrosoft.com",
    "TenantId": "cb1c3f2e-a2dd-4fde-bf8f-f75ab18b21ac",
    "ClientId": "83bf146d-4948-4596-a4b3-b7b2e68ac3e0"
    },
    

    租户 ID、域名和 API 的客户端 ID 可以在 Azure 门户中找到。然后,您可以在受保护的控制器/操作上添加Authorize属性。如果您有多个身份验证模式,则可以使用特定方案进行授权。

客户端应用将使用 OpenID Connect 中间件和 ADAL/MSAL 为 OAuth 2.0 协议的登录用户获取 JWT 持有者令牌。持有者令牌将传递给 Web API,Web API 验证令牌并使用 JWT 持有者身份验证中间件授权用户。

最新更新