簡體   English   中英

如何以編程方式為 web 服務實施 AAD 身份驗證提供程序?

[英]How to implement the AAD auth provider for a web service programmatically?

我有一個簡單的 web 應用程序(Web API),想象一個默認的。 使用 Azure 門戶通過 AAD 身份驗證提供程序保護它,即時創建應用程序注冊。

在“請求未通過身份驗證時采取的操作”中,我選擇了“使用 Azure Active Directory 登錄”。 所以它工作 - 來自租戶的用戶可以在 AAD 登錄后訪問 web。 在生成並提供訪問令牌后,我還可以通過 Postman 訪問 API

現在,我想在 API 代碼中實現這個 AAD 身份驗證提供程序以提高靈活性(需要一些匿名端點)。 怎么做?

If you want to secure your ASP.NET Core web app with Azure AD auth programmatically, you could refer to this sample, it demonstrates how an ASP.NET Core web app can sign in users from any Azure Active Directory (Azure AD) organization.

快速入門:將 Microsoft 登錄添加到 ASP.NET 核心 web 應用程序

在此處輸入圖像描述

請查看 API 日志文件以了解身份驗證和授權模塊。

您在 Appsetting.json 中將日志記錄級別設置為調試

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information",
      "Microsoft.AspNetCore.Authentication": "Debug",
      "Microsoft.AspNetCore.Authorization": "Debug"
    }
  }
}

此外,請檢查對 API 的失敗請求的響應 header 並查找WWW-Authenticate: header。

如果存在,它可能如下所示:

HTTP/1.1 401 Unauthorized
Date: Sun, 02 Aug 2020 11:19:06 GMT
WWW-Authenticate: Bearer error="invalid_token", error_description="The signature is invalid"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM