日本語版
最新ニュース
科学&テクノロジー

ASP.NET Core 8.0 用にワークショップが更新されました

Amazon Cognito を使用すると、開発者はストレージ、管理、ユーザー認証を、数百万のユーザーに拡張できるマネージド サービスに委任できます。 このラボは、 AWS が提供するラボ 5 ワークショップの一環として .NET 開発者道場。 元の AWS ラボは ASP.NET Core 8.x バージョンを使用して構築されていたため、この新しいバージョンの背後にある動機は、ASP.NET Core 8.x バージョンをサポートすることです。 ASP.NET コア 3.1そのため、より新しいバージョンでは動作できなくなります。 ユーザーを認証、保存、管理するために Amazon Cognito ユーザープールを作成および設定するには、ラボの最初の部分に進みます。 .NET 開発者道場ラボ 5: Amazon Cognito による認証: ユーザープールの作成 このラボでは、Web アプリケーションを構成してデプロイします。 ASP.NET…

ASP.NET Core 8.0 用にワークショップが更新されました

1719092986
2024-06-18 23:07:22

Amazon Cognito を使用すると、開発者はストレージ、管理、ユーザー認証を、数百万のユーザーに拡張できるマネージド サービスに委任できます。

このラボは、 AWS が提供するラボ 5 ワークショップの一環として .NET 開発者道場。 元の AWS ラボは ASP.NET Core 8.x バージョンを使用して構築されていたため、この新しいバージョンの背後にある動機は、ASP.NET Core 8.x バージョンをサポートすることです。 ASP.NET コア 3.1そのため、より新しいバージョンでは動作できなくなります。

ユーザーを認証、保存、管理するために Amazon Cognito ユーザープールを作成および設定するには、ラボの最初の部分に進みます。 .NET 開発者道場ラボ 5: Amazon Cognito による認証: ユーザープールの作成

このラボでは、Web アプリケーションを構成してデプロイします。 ASP.NET Amazon Cognito で認証するためのコア。

新しいプロジェクトを作成する ASP.NET コアウェブAPI

まず、新しいプロジェクトを作成します ASP.NET コア Web API。

必ず選択してください .NET 8.0 そしてへ Docker サポートを無効にする

プロジェクトをコンパイルして実行します。 ブラウザに次の応答が表示されるはずです。

ポート番号に注意してください。Amazon Cognito 設定のポート番号と一致する必要があります。 https://localhost:7238/。 Amazon Cognito に戻って、 クライアントアプリケーション設定を構成する

道路を確保する

ファイルを開く WeatherForecastController.cs そして次の変更を加えます。
次の使用説明を追加します

using Microsoft.AspNetCore.Authorization;

属性を追加する Authorize 方法に GetWeatherForecastController :

[HttpGet(Name = "GetWeatherForecast")]
[Authorize]
public IEnumerableWeatherForecast> Get()

プロジェクトを再度実行します。 次のエラーが表示されるはずです認証スキームが指定されていませんでした :

Cognito を使用するように .NET Core を構成する

パッケージの追加 ヌゲット Microsoft.AspNetCore.Authentication.OpenIdConnect プロジェクトへ (を選択してください) バージョン 8.x プロジェクトに合わせて ASP.NET Core 8.x あなたが作成したもの):

開ける Program.cs 次の参照を追加します。

using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;

認証および認可サービスを構成する 電話をかけた直後に builder.Services.AddControllers(); :

builder.Services.AddAuthentication(options =>
{
    options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect(options =>
{
    options.ResponseType = builder.Configuration["Authentication:Cognito:ResponseType"];
    options.MetadataAddress = builder.Configuration["Authentication:Cognito:MetadataAddress"];
    options.ClientId = builder.Configuration["Authentication:Cognito:ClientId"];
});

ミドルウェアを追加する 認証を使用する リクエスト処理パイプラインで、UseAuthorization が UseAuthentication の後に来るようにします。

app.UseAuthentication();
app.UseAuthorization();

UseAuthorization() の後に定義する必要があります UseAuthentication()。 これにより、望ましくない影響が生じる可能性があります。 自分で確認できます。

構成 : 構成キーが以下であることを確認します。

  • Authentication:Cognito:ResponseType
  • Authentication:Cognito:MetadataAddress、など
  • Authentication:Cognito:ClientId

    ファイルに存在します appsettings.json または別の適切な構成ソースで。

開ける appsettings.json セクションを追加します Authentification 次 :

{
    "Logging": {
        "LogLevel": {
            "Default": "Information",
            "Microsoft.AspNetCore": "Warning"
        }
    },
    "AllowedHosts": "*",
    "Authentication": {
        "Cognito": {
            "ClientId": "",
            "IncludeErrorDetails": true,
            "MetadataAddress": "https://cognito-idp..amazonaws.com//.well-known/openid-configuration",
            "RequireHttpsMetadata": false,
            "ResponseType": "code",
            "SaveToken": true,
            "TokenValidationParameters": {
                "ValidateIssuer": true
            }
        }
    }
}

プールID セクションで入手可能です ユーザープールの概要 :

クライアントアプリID 列の中にあります クライアントID :

プロジェクトを実行すると、デフォルトのユーザー登録/ログイン フォームにリダイレクトされるはずです。 学んだ上で :

アカウントを作成し、確認コードまたは Amazon Cognito ダッシュボードを使用して確認します。

登録すると、エンドポイントにリダイレクトされます。 /weatherforecast 結果が表示されるはずです。 これは、認証に成功したことを意味します。

#ASP.NET #Core #用にワークショップが更新されました

執筆者について: nipponese

Nipponese News編集部は、国内外のニュースを日本語で分かりやすくお届けします。