ホームページ > バックエンド開発 > C++ > AngularJS アプリケーションの ASP.NET Core Web API でトークンベースの認証を構成する方法

AngularJS アプリケーションの ASP.NET Core Web API でトークンベースの認証を構成する方法

Linda Hamilton
リリース: 2024-12-30 14:23:13
オリジナル
403 人が閲覧しました

How to Configure Token-Based Authentication in ASP.NET Core Web API for AngularJS Applications?

ASP.NET Core WebApi でのトークン ベースの認証の構成

チャレンジ

ASP.NET Core アプリケーションでは、トークン ベースの認証を実装できます。挑戦です。従来の例は通常、Cookie 認証または外部認証プロバイダーを中心に展開します。ただし、AngularJS アプリケーションが /token エンドポイントからトークンを要求し、ユーザー名とパスワードを渡すシナリオを扱う場合は、それに応じて WebApi アプリケーションを構成する方法を理解することが重要です。

認証セットアップ

ASP.NET Core WebApi でトークンベースの認証を構成するには、次の手順に従ってください手順:

  1. トークン プロパティの定義: まず、トークンの対象者と発行者を含むトークン パラメーターの定数を作成します。
const string TokenAudience = "Myself";
const string TokenIssuer = "MyProject";
ログイン後にコピー
  1. DI の構成Services:

    • Startup.cs ConfigureServices メソッドで、JwtSignInHandler クラスの依存関係注入を追加します。
    • 認証をデフォルトの JWT に構成し、トークン検証を設定します。パラメータ。
var keySecret = authenticationConfiguration["JwtSigningKey"];
var symmetricKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(keySecret));

services.AddTransient(_ => new JwtSignInHandler(symmetricKey));

services.AddAuthentication(options =>
{
    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
})
    .AddJwtBearer(options =>
    {
        options.TokenValidationParameters.ValidateIssuerSigningKey = true;
        options.TokenValidationParameters.IssuerSigningKey = symmetricKey;
        options.TokenValidationParameters.ValidAudience = JwtSignInHandler.TokenAudience;
        options.TokenValidationParameters.ValidIssuer = JwtSignInHandler.TokenIssuer;
    });
ログイン後にコピー
  1. 認証ミドルウェアを有効にする: ユーザーを必要とするミドルウェアの前に、リクエスト パイプラインに UseAuthentication ミドルウェアを追加します。
app.UseAuthentication();
ログイン後にコピー
  1. 認可ポリシーの定義 (オプション): オプションで、ベアラーに基づいてコントローラーとアクションへのアクセスを制限する認可ポリシーを定義できます。
services.AddAuthorization(auth =>
{
    auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
        .AddAuthenticationTypes(JwtBearerDefaults.AuthenticationType)
        .RequireAuthenticatedUser().Build());
});
ログイン後にコピー
  1. JWT を構築します: トークン生成用の JwtSignInHandler クラスを作成します。
class JwtSignInHandler
{
    public const string TokenAudience = "Myself";
    public const string TokenIssuer = "MyProject";
    private readonly SymmetricSecurityKey key;

    public JwtSignInHandler(SymmetricSecurityKey symmetricKey)
    {
        this.key = symmetricKey;
    }

    public string BuildJwt(ClaimsPrincipal principal)
    {
        var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

        var token = new JwtSecurityToken(
            issuer: TokenIssuer,
            audience: TokenAudience,
            claims: principal.Claims,
            expires: DateTime.Now.AddMinutes(20),
            signingCredentials: creds
        );

        return new JwtSecurityTokenHandler().WriteToken(token);
    }
}
ログイン後にコピー
  1. トークン生成を実装するコントローラー: コントローラー アクション内で、JwtSignInHandler を使用してトークンを生成します。
[HttpPost]
public string AnonymousSignIn([FromServices] JwtSignInHandler tokenFactory)
{
    var principal = new System.Security.Claims.ClaimsPrincipal(new[]
    {
        new System.Security.Claims.ClaimsIdentity(new[]
        {
            new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Name, "Demo User")
        })
    });
    return tokenFactory.BuildJwt(principal);
}
ログイン後にコピー
  1. Jwt Testing: トークンを取得し、次を使用してその署名を検証します。設定ファイルのシークレット。

以上がAngularJS アプリケーションの ASP.NET Core Web API でトークンベースの認証を構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート