微信網(wǎng)站制作價(jià)格競價(jià)防惡意點(diǎn)擊
OAuth2.0
IdentityServer4
官網(wǎng)
中文官網(wǎng)
ASP.NET Core Identity提供了一個用來管理和存儲用戶賬戶的框架.
IdentityServer4是基于ASP.NET Core實(shí)現(xiàn)的認(rèn)證和授權(quán)框架,是對OpenID Connect和OAuth 2.0協(xié)議的實(shí)現(xiàn)。
IdentityServer是一個中間件,它可以添加符合OpenID Connect和OAuth2.0的終端(endpoints)到一個任意的ASP.NET Core應(yīng)用.
通俗來講,就是服務(wù)端對需要認(rèn)證授權(quán)的資源(客戶端請求資源)在外層使用IdentityServer4框架進(jìn)行封裝加殼,用戶只能通過獲取IdentityServer4頒發(fā)的Token令牌才能進(jìn)行資源訪問。
ASP.NET Core Identity是一個成員身份系統(tǒng),可將用戶注冊和登錄功能添加到 ASP.NET Core Web UI。 成員身份系統(tǒng)處理身份驗(yàn)證和授權(quán)問題。 身份驗(yàn)證涉及你的身份。 授權(quán)涉及允許你進(jìn)行的操作。 因此,身份驗(yàn)證是授權(quán)的先決條件。 ASP .Net Core Identity內(nèi)置了一組認(rèn)證功能,用于簡單的Web應(yīng)用的認(rèn)證和授權(quán)。
Core 自帶JWT認(rèn)證
》》》// Core 自帶官方 JWT認(rèn)證
// Core 自帶官方 JWT認(rèn)證
// 開啟Bearer 認(rèn)證builder.Services.AddAuthentication(options =>{// 設(shè)置默認(rèn)的身份驗(yàn)證和挑戰(zhàn)方案為 JwtBeareroptions.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;}) // 配置 JWT Bearer 選項(xiàng).AddJwtBearer(options =>{// 配置 Token 驗(yàn)證參數(shù)options.TokenValidationParameters = new TokenValidationParameters{// 驗(yàn)證發(fā)行者ValidateIssuer = true,// 驗(yàn)證受眾ValidateAudience = true,// 驗(yàn)證令牌有效期ValidateLifetime = true,// 驗(yàn)證簽名密鑰ValidateIssuerSigningKey = true,// 發(fā)行者ValidIssuer = builder.Configuration["TokenParameter:Issuer"],// 受眾ValidAudience = builder.Configuration["JokenParameter:Audience"],// 簽名密鑰IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["TokenParameter:Secret"])),AudienceValidator = (m, n, z) => {//自定義驗(yàn)證邏輯return true;}};options.Events = new JwtBearerEvents{OnAuthenticationFailed = context =>{// 如果過期,則把 是否過期 添加到 , 返回頭信息中if (context.Exception.GetType() == typeof(SecurityTokenExpiredException)){context.Response.Headers.Add("Token-Expired", "true");}return Task.CompletedTask;}//OnForbidden//OnChallenge//OnMessageReceived//OnTokenValidated};});var app = builder.Build();
》》》 開啟 IdentityServer4 認(rèn)證