【实战 Ids4】║ 在Swagger中调试认证授权中心
回家的路上照顧好自己喲~
大家好,老張已經(jīng)順利到家啦,閑的無事寫兩篇文章冒個泡吧,其實寫的內(nèi)容都是群友提出來的問題,簡單的我會在群里直接提供思路,麻煩的我就寫個文章說明一下吧,也是自己的一個記錄作用,今天簡單說一下,如何在資源服務(wù)器中,通過Swagger來調(diào)試授權(quán)認證中心。因為之前我們都是使用的JWT Bearer認證嘛,這次統(tǒng)一都換成了Ids4了,所以這里也要做一下相應(yīng)的處理。
1
哪幾個項目已經(jīng)完成了遷移? ????
去年6月的時候,Idp項目正式開源,那個時候我簡單的學習了如何使用ids4,感覺很簡單,然后豪言壯志的說,會把所有的項目都遷移過去,沒想到實戰(zhàn)起來,并沒有那么簡單的,導(dǎo)致一直擱置到了現(xiàn)在,還好在春節(jié)之前全部搞定了,上篇文章說的是ChristDDD項目,剩下的最后一個Nuxt項目也遷移了,所以總結(jié)來說,以下所有項目都已經(jīng)完成了遷移到Ids4的工作:
相信只要你看過我的文章,應(yīng)該都能知道這幾個項目對應(yīng)的含義,自己可以動手試一試,這一套也是我的心血了,無論是從vue,還是到netcore,無論是從api,還是到MVC,無論是從SPA靜態(tài)渲染,還是到SSR渲染,終于告一段落,如果你所在的公司或者企業(yè)要使用,或者基于我的這一套六個項目整改的話,可以找我售后一下,就比如這位老鐵:
(考慮隱私,暫不提供知情人信息)
既然說到了 api 項目,那就是剩下最后一個問題了,如何在Swagger中聯(lián)調(diào),因為之前我都是直接打開了vue項目,又打開了BlogCore和Idp項目,麻煩!接下來咱們就簡單的說說,如何配置Swagger,接入IdentityServer4。
2
Swagger中接入Ids4配置? ?
注意,這是NetCore3.1的寫法:
// Jwt Bearer 認證,必須是 oauth2,這里注釋掉//c.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme//{// Description = "JWT授權(quán)(數(shù)據(jù)將在請求頭中進行傳輸) 直接在下框中輸入Bearer {token}(注意兩者之間是一個空格)\"",// Name = "Authorization",//jwt默認的參數(shù)名稱// In = ParameterLocation.Header,//jwt默認存放Authorization信息的位置(請求頭中)// Type = SecuritySchemeType.ApiKey//});//?接入identityserver4c.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme{Type = SecuritySchemeType.OAuth2,Flows = new OpenApiOAuthFlows{//?因為是?api?項目,那肯定是前后端分離的,所以用的是Implicit模式Implicit = new OpenApiOAuthFlow{//?這里配置?identityServer?項目的域名AuthorizationUrl?=?new?Uri($"https:ids.neters.club/connect/authorize"),//?這里配置是?scope?作用域,//?只需要填寫 api資源 的id即可,//?不需要把 身份資源 的內(nèi)容寫上,比如openid?Scopes?=?new?Dictionary<string,?string>?{{"blog.core.api","ApiResource id"}}}}});這里我們配置好以后,運行項目,就可以看到效果了:
可以看到,采用的是OAuth2.0協(xié)議,implicit授權(quán)模式,
client_id,是我們的客戶端id,要和ids4配置的匹配,下文會說到。
地址是ids.neters.club,Scopes?是我們定義的 blog.core.api,
這兩個都要和認證服務(wù)匹配,具體是哪里呢,就是我們開啟認證服務(wù)的地方:
我這里把授權(quán)地址URL,給寫到了配置文件里,因為有時候我們的ids4項目可能會變化,
其實這里我們的apiName也可以配置到appsettings.json文件夾中。
注意,scope不需要填寫其他的,不然會報錯,只需要把 client_id 寫上即可:
接下來,我們就需要配置Ids4項目了。
?3
?Ids4項目配置回調(diào)地址?
這里其實就很簡單的,如果我們不對回調(diào)地址做相應(yīng)的增加的話,會提示無效的錯誤:
這里就很簡單了:
這里我要強調(diào)一點,不是說每次我們都要修改這個Config.cs這個類,這是初始化的,我一般都是直接修改的數(shù)據(jù)表數(shù)據(jù)就行,常見的三個配置表就是:
到了這里,我們一般就是修改完成了,可以測試一下,來個動圖:
是不是很簡單!不用再打開前端vue來測試了,是不是很方便。
IdentityServer4 項目還是挺好的,無論是企業(yè)里,還是個人使用,都是比較好的方案,除非你所在公司有一套自己的項目。
打完收工,下一篇,我們就簡單來說說,如何做單點登錄了。
總結(jié)
以上是生活随笔為你收集整理的【实战 Ids4】║ 在Swagger中调试认证授权中心的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Asp.Net Core 已支持 gRP
- 下一篇: 在 Blazor WebAssembly