亚洲欧洲视频,三男玩一女摸吃奶,久久久久久久片,精品中文一区二区三区,美女在线国产,国产有码视频,亚洲激情五月

威勢(shì)網(wǎng)絡(luò),為您的企業(yè)和團(tuán)隊(duì)注入互聯(lián)網(wǎng)活力!
服務(wù)熱線:138-9741-0341

[原創(chuàng)] IdentityServer4權(quán)限控制---客戶端授權(quán)模式之IDS4認(rèn)證服務(wù)器搭建(二)

發(fā)布日期:2022/9/3 作者: 瀏覽:1216

    今天我們的實(shí)驗(yàn)任務(wù)主要是搭建一臺(tái)IDS4用戶認(rèn)證服務(wù)器,來對(duì)我們的資源服務(wù)器(API接口服務(wù)器)的資源進(jìn)行保護(hù),開始的前提是你得有一臺(tái)資源服務(wù)器,以方便后面的測(cè)試,如果還沒有,請(qǐng)參看這篇文章搭建:

使用客戶端憑證保護(hù)API資源:[原創(chuàng)] IdentityServer4權(quán)限控制---客戶端授權(quán)模式之API服務(wù)器搭建(一)

    廢話不多說,開始我們的正文吧。我們?cè)陔娔X建立以下目錄D:\WEB\ID4\IDS4Server,然后創(chuàng)建我們的IDS4服務(wù)器,和上次的步驟差不多,我們用VS新建一個(gè)項(xiàng)目,選擇“ASP.NET Core WEB應(yīng)用”,然后下一步,項(xiàng)目名稱指定為:IDS4Server,位置指定為:D:\WEB\ID4\IDS4Server\,其它默認(rèn)。選擇.NET 6.0 ,配置HTTPS打勾。一路下來,我們的項(xiàng)目就創(chuàng)建好了?,F(xiàn)在我們引入最關(guān)鍵的IdentityServer4包。

當(dāng)我們啟動(dòng)它的時(shí)候是VS模板的默認(rèn)樣式,我們給它稍微改一下View樣式


@{
    ViewData["Title"] = "IdentityServer4";
}

<div class="text-center">
    <h1 class="display-4">IdentityServer4</h1>
    <br />
    <br />
    <p>身份認(rèn)證服務(wù)器正在運(yùn)行....</p>
</div>


再刪除布局頁的頭和尾,這一步省略,大家自己修改,不是難事。接下來我們?cè)賹⒁氲陌虞d起來。打開program.cs,修改代碼如下:


using IdentityServer4.Models;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using System;
using IDS4Server;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddRazorPages();

builder.Services.AddIdentityServer()
    .AddDeveloperSigningCredential()        //This is for dev only scenarios when you don’t have a certificate to use.
    .AddInMemoryApiScopes(Config.ApiScopes)
    .AddInMemoryClients(Config.Clients);

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.UseDeveloperExceptionPage();
app.UseIdentityServer();

app.MapRazorPages();

app.Run();

編譯器有紅色提示,然后項(xiàng)目中加入Config.cs ,代碼如下:


// Copyright (c) Brock Allen & Dominick Baier. All rights reserved.
// Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.


using IdentityServer4.Models;
using System.Collections.Generic;

namespace IDS4Server
{
    public static class Config
    {
        public static IEnumerable<ApiScope> ApiScopes =>
        new List<ApiScope>
        {
            new ApiScope("api1", "My API")
        };

        public static IEnumerable<Client> Clients =>
        new List<Client>
        {            
            new Client
            {
                ClientId = "client",

                // no interactive user, use the clientid/secret for authentication
                AllowedGrantTypes = GrantTypes.ClientCredentials,

                // secret for authentication
                ClientSecrets =
                {
                    new Secret("secret".Sha256())
                },

                // scopes that client has access to
                AllowedScopes = { "api1" }
            }
        };
    }
}



按照官網(wǎng)的理解,我們是在認(rèn)證服務(wù)器上添加了一個(gè)與真實(shí)客戶端想對(duì)應(yīng)的認(rèn)證記錄,因?yàn)槭茄菔境绦?,所以這里是全部加載到服務(wù)器內(nèi)存中了,真實(shí)環(huán)境下肯定是用數(shù)據(jù)庫永久化儲(chǔ)存來代替的,這些都不是今天的學(xué)習(xí)任務(wù),我們的目標(biāo)主要是將認(rèn)證服務(wù)器搭建起來。別忘記,我們?cè)侔颜J(rèn)證服務(wù)器的啟動(dòng)端口改一下,最終項(xiàng)目結(jié)構(gòu)如下圖所示:


然后我們運(yùn)行一下看看

    注意,大家如果運(yùn)行的是官方的demo,這一步啟動(dòng)以后是沒有界面的,但是這并不代表你的部署失敗了,我們可以用這個(gè)方法檢查一下,就是在后面跟一堆網(wǎng)址,如下:https://localhost:5001/.well-known/openid-configuration 這樣,如果能看到返回的頁面,說明服務(wù)已經(jīng)正常運(yùn)行沒問題了。OK,我們這節(jié)課的內(nèi)容相對(duì)比較簡(jiǎn)單,源代碼這里下載: IdentityServer4

    總結(jié)一下:我們第一節(jié)課搭建了一個(gè)含有三個(gè)API接口的服務(wù)器,當(dāng)有客戶端要訪問接口資源的時(shí)候,我們需要TOKEN去驗(yàn)證客戶身份,驗(yàn)證是JWT方式進(jìn)行的,并且在資源服務(wù)器上指定了遠(yuǎn)程驗(yàn)證的地址,也就是這節(jié)課我們搭建的IDS4驗(yàn)證服務(wù)器。這兩步都準(zhǔn)備好了,我們下一節(jié)課就準(zhǔn)備一個(gè)客戶端程序Client.exe 去訪問一下我們的API資源,模擬未登錄和登錄狀態(tài)下對(duì)資源的訪問,以及驗(yàn)證過程,達(dá)到資源保護(hù)的目的。感謝你耐著性子看到這里,如果你還沒有準(zhǔn)備關(guān)電腦,就請(qǐng)接著看我們的第三課:

[原創(chuàng)] IdentityServer4權(quán)限控制---客戶端創(chuàng)建、獲取TOKEN及訪問API資源(三)

原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處http://www.bemnnoss.com/article-28


下拉加載更多評(píng)論
最新評(píng)論
暫無!