![](/img/trans.png)
[英]Combine ADFS Authentication and JWT Bearer on ASP.Net Application
[英]Migrate ASP.NET Framework to ASP.NET Core 3.1 with JWT Bearer authentication from ADFS
我們有一個現有的 ASP.NET Framework 網站,它使用 ActiveDirectoryFederationServicesBearerAuthentication 進行身份驗證:
app.UseActiveDirectoryFederationServicesBearerAuthentication(
new ActiveDirectoryFederationServicesBearerAuthenticationOptions
{
MetadataEndpoint = ConfigurationManager.AppSettings["ida:AdfsMetadataEndpoint"],
TokenValidationParameters =
new TokenValidationParameters
{
ValidAudience = ConfigurationManager.AppSettings["ida:Audience"],
RequireSignedTokens = true
}
});
“ida:AdfsMetadataEndpoint”的值為:
https://<adfs-server >/FederationMetadata/2007-06/FederationMetadata.xml
我們有一個 ADFS 3.0 服務器(在 Windows Server 2012 R2 上運行)發布這些 JWT 令牌。
當我們將 Web 服務器遷移到 ASP.NET Core 3.1 時,我們希望繼續使用相同的 ADFS 3.0 服務器向我們的網站頒發 JWT 令牌。
但是我在配置新服務器以驗證來自 ADFS 3.0 服務器的令牌時遇到問題。 這是我嘗試過的:
據我了解,JwtBearerAuthentication 需要支持 OpenIDConnect 的 ADFS 4.0?
我發現這個解決方法應該適用於我的情況,但是在我的應用程序中存儲發行者簽名密鑰似乎有點麻煩。 如果它在 ADFS 上發生變化怎么辦?
我遵循了本指南,但在我看來這不支持承載身份驗證?
使用從 ADFS 3.0 發布的 JWT 承載令牌的 ActiveDirectoryFederationServicesBearerAuthentication 的 ASP.NET Core 等效項是什么?
ADFS 2012 R2 可以發布 JWT 令牌,但不支持 OIDC 發現,它不使用 openid 連接發現規范公開元數據。 因此,您可以在 asp.net core web api 中使用AddJwtBearer
擴展,但需要手動配置頒發者、受眾和簽名密鑰作為您提供的解決方法,此處顯示 . 當然,如果您可以將您的 ADFS 實例升級到“4.0”,這將使該場景更易於實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.