2016-09-20 71 views
0

我建立由Nginx的門前多租戶系統的外部認證服務器。Nginx的認證,並在多租戶系統

我想他們是否有一個有效的JWT首先被「過濾」打Nginx的所有請求。如果沒有,應該向外部認證服務器發出「呼叫」,該服務器將執行SAML/SSO並返回JWT或「假」。如果爲false,則返回401。

如果沒有一個有效的智威湯遜,它需要被解釋和租戶名中提取。然後,根據請求路徑,url/POST正文將需要修改以包含正確的租戶(我們正在使用Elasticsearch並需要確保租戶只允許查詢自己的索引)

身份驗證服務器將在PHP中構建,因此我們需要的僅僅是「過濾器」部分,並且是調用Auth服務器的有效方式。有沒有現成的nginx模塊可以解決這個需求?或者Lua是我最好的選擇嗎?我是一個相對新手Nginx-呃。

回答

1

有更好和更簡單的基於JWT認證模塊nginx的。 高度可配置。 https://github.com/tarachandverma/nginx-openidc

可以配置多個依賴方。 https://github.com/tarachandverma/nginx-openidc/blob/master/test-conf/oidc-config.xml#L12

<!-- relying parties configuration --> 
<relyingParties default="282412598309-545pvmsh9r23f4k1o7267744s59sod6v.apps.googleusercontent.com"> 
    <relyingParty clientID="282412598309-545pvmsh9r23f4k1o7267744s59sod6v.apps.googleusercontent.com" clientSecret="xxxxx" domain=".com" validateNonce="true"> 
     <description>nginx oidc demo</description> 
     <redirectUri>http://ngx-oidc-demo.com/oauth2/callback</redirectUri> 
    </relyingParty> 
</relyingParties> 
+0

請不要張貼鏈接只有答案,因爲鏈接可能會斷裂。從鏈接中獲取相關內容並在此處發佈。 – Milk