BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース .NET 9 Preview 2のASP.NET Coreアップデート:Blazor、OIDC、OAuth、HTTP.sysの設定

.NET 9 Preview 2のASP.NET Coreアップデート:Blazor、OIDC、OAuth、HTTP.sysの設定

原文リンク(2024-03-26)

Microsoftがリリースした.NET 9 Preview 2には、ASP.NET Coreに関するいくつかの更新が含まれている。Blazorコンポーネントコンストラクタインジェクション、BlazorインタラクティブサーバーコンポーネントのWebSocket圧縮などだ。さらに、開発者はOIDCとOAuthパラメータをカスタマイズし、HTTP.sys拡張認証フラグを設定することで、認証統合を効率化できる。

Blazor コンポーネントは、@inject[Inject]属性を使用したサービスプロパティの挿入という既存の機能を補完し、設定されたサービスのコンストラクタ挿入をサポートするようになった。マイクロソフトはこの機能を以下の例で紹介している。この例では、あるコンポーネントが基本 C# コンストラクタを介してコンストラクタ挿入を使用し、NavigationManagerサービスにアクセスしている。

Blazorコンポーネントのコンストラクタ挿入(出典:Microsoftブログ)

Blazorのインタラクティブサーバーレンダリングは、デフォルトでWebSocketプロトコル圧縮を取り入れ、メッセージのペイロードサイズを大幅に削減した。さらに、安全な接続における圧縮攻撃の潜在的なリスクを軽減するため、インタラクティブサーバーレンダリングはデフォルトのコンテンツセキュリティポリシー(CSP)ancestor frame:'self'を採用し、アプリケーションの埋め込みを同じソースから発信されたページのみに制限している。

frame-ancestors ソースを変更するには、ContentSecurityFrameAncestorsPolicyオプションを使う必要がある。

app.MapRazorComponents<App>()    .AddInteractiveServerRenderMode(o => o.ContentSecurityFrameAncestorsPolicy="'none'");

圧縮を無効にするには、DisableWebSocketCompressionオプションがある。

app.MapRazorComponents<App>()    .AddInteractiveServerRenderMode(o => o.DisableWebSocketCompression = true);

さらに、OAuthとOIDC認証手続きには、新しいAdditionalAuthorizationParametersオプションがあり、リダイレクトリクエスト文字列によく含まれる認証メッセージパラメータのカスタマイズを容易にする。これは次のようにして実行できる。

builder.Services.AddAuthentication().AddOpenIdConnect(options =>){    options.AdditionalAuthorizationParameters.Add("prompt", "login");    options.AdditionalAuthorizationParameters.Add("audience", "https://api.example.com");});

次の機能は、HTTP.sys拡張認証フラグの設定である。開発者は、HTTP.sys AuthenticationManagerの新しいEnableKerberosCredentialCachingプロパティとCaptureCredentialsプロパティを使用して、HTTP_AUTH_EX_FLAG_ENABLE_KERBEROS_CREDENTIAL_CACHINGHTTP_AUTH_EX_FLAG_CAPTURE_CREDENTIALHTTP.sysフラグを設定し、Windows認証の処理方法を最適化できる。

最新リリースでは、System.Text.Jsonの新しいAllowOutOrderMetadataProperties設定も登場した。コメント欄で、.NETソフトウェア開発エンジニアのWeihan Li氏は、JsonSerializerで順不同のメタデータ読み込みのサポートを導入し、読み込み時にJSONプロパティ名が常にエスケープされないようにする変更を指摘した。

.NET 9のASP.NET Coreのロードマップは、Githubリポジトリで入手できる。

作者について

この記事に星をつける

おすすめ度
スタイル

BT