溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ABP VNext實(shí)踐中如何搭建可用于生產(chǎn)的IdentityServer4

發(fā)布時(shí)間:2021-12-10 16:54:10 來源:億速云 閱讀:487 作者:柒染 欄目:大數(shù)據(jù)

本篇文章給大家分享的是有關(guān)ABP VNext實(shí)踐中如何搭建可用于生產(chǎn)的IdentityServer4,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

一、前言

今天給大家講講如何在利用abp vnext框架搭建IDS4且可以在生產(chǎn)環(huán)境下使用的,其中也需要針對(duì)于IDS4在liunx系統(tǒng)使用nginx代理中端點(diǎn)不是https的特別注意事項(xiàng)配置,這個(gè)也是一個(gè)坑,如果不注意,授權(quán)就不成功,除非配置了跳過https的強(qiáng)制驗(yàn)證;

二、ABP VNext CLI生成一個(gè)項(xiàng)目解決方案

CLI 命令大家可以參考wiki,命令如下:abp new Louie.Ids4Demo --ui none --separate-identity-server,其中 --separate-identity-server代表將IdentityServer應(yīng)用程序與API host應(yīng)用程序分開,--ui none 無UI;打開命令窗口,拷貝進(jìn)去后就可以生成一個(gè)解決方案;

然后我們授權(quán)需要修改一下項(xiàng)目中的代碼遷移配置,因?yàn)槲疫@邊用的是mysql,而命令生成的是使用sqlserver,在 Louie.Ids4Demo.EntityFrameworkCore中把SQLServer改成Mysql nuget包,并且在DbMigrations類庫(kù)中刪除Migrations文件夾,然后修改DbContextFactory.cs里面的配置;截圖如下:

1、Louie.Ids4Demo.EntityFrameworkCore 類庫(kù),去掉sqlserver包,添加mysql包

ABP VNext實(shí)踐中如何搭建可用于生產(chǎn)的IdentityServer4

 打開 Ids4DemoEntityFrameworkCoreModule 修改模塊注入和命名空間

ABP VNext實(shí)踐中如何搭建可用于生產(chǎn)的IdentityServer4

 2、Louie.Ids4Demo.EntityFrameworkCore.DbMigrations 類庫(kù),刪除Migrations文件

并且修改Ids4DemoMigrationsDbContextFactory.cs文件中的鏈接配置

ABP VNext實(shí)踐中如何搭建可用于生產(chǎn)的IdentityServer4

 3、在Louie.Ids4Demo.IdentityServer 主程序中 appsetting.json 添加數(shù)據(jù)庫(kù)連接字符串

4、然后使用遷移命令,生成對(duì)應(yīng)的數(shù)據(jù)庫(kù)表

ABP VNext實(shí)踐中如何搭建可用于生產(chǎn)的IdentityServer4

 5、打開Louie.Ids4Demo.IdentityServer 主程序,打開Ids4DemoIdentityServerModule.cs 類

在里面配置自定義的RSA非對(duì)稱加密證書,并且禁止在開發(fā)環(huán)境下由系統(tǒng)生成的臨時(shí)證書,我們需要使用重寫PreConfigureServices來替換框架默認(rèn)的配置ABP VNext實(shí)踐中如何搭建可用于生產(chǎn)的IdentityServer4

當(dāng)然證書是我自己生成的,大家可以自行生成,把生成好的證書放在主程序的目錄下,然后再appsetting.json 中配置一下

ABP VNext實(shí)踐中如何搭建可用于生產(chǎn)的IdentityServer4

上面配置中有涉及到AddResourceOwnerValidator主要是用到密碼模式下的自定義驗(yàn)證邏輯以及添加聲明,如果大家不需要?jiǎng)t可以不用配置,直接注釋;AddProfileService 主要是是聲明claims需要和庫(kù)表中定義的申明一致,否則無法顯示,這個(gè)也是一個(gè)安全校驗(yàn)的方式。

配置完后啟動(dòng)打開瀏覽器,并且啟動(dòng)的url后綴添加 .well-known/openid-configuration,如果可以查看到端點(diǎn)則代表配置成功。

ABP VNext實(shí)踐中如何搭建可用于生產(chǎn)的IdentityServer4

6、問題來了,在我們的IDS4部署到docker上后,發(fā)現(xiàn)查看的端點(diǎn)不是https的,我們需要在OnApplicationInitialization 方法中配置一個(gè)特殊代碼

當(dāng)然大家也可以看一下一個(gè)解決方案的issue:https://github.com/dotnet/AspNetCore.Docs/issues/2384

主要原因是使用的反向代理導(dǎo)致域名是https的,但是端點(diǎn)無法映射https;插入以下代碼即可

ABP VNext實(shí)踐中如何搭建可用于生產(chǎn)的IdentityServer4

大家在部署到生產(chǎn)線后就可以看到端點(diǎn)已經(jīng)是https了

以上就是ABP VNext實(shí)踐中如何搭建可用于生產(chǎn)的IdentityServer4,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI