2015-09-09 60 views
2

我們正在構建一個也包含webAPI的web應用程序。這些WebAPI也需要公開給其他應用程序(不同子域或第三方應用程序上的其他內部應用程序)。我們正在考慮使用OpenId Connect,這樣我們不僅可以提供access_token,還可以提供id_token進行身份驗證。何時不使用OpenId連接

現在的問題是「如果我的主要應用程序也使用ID連接」認證/授權。我不贊成這一點。根據我的理解,只有外部應用程序應該使用openid連接來使用主應用程序的資源。內部應用程序(主要以及不同子域上的應用程序)可以使用基於cookie的常規身份驗證。

例如,主要的應用是MyWebApp.com(這包括的WebAPI以及)。其他內部應用程序是maps.MyWebApp.com,admin.MyWebApp.com,payroll.MyWebApp.com。

其他第三方應用程序可能是OtherWebApp.com。

請建議。

回答

1

「我的主應用程序還應該使用openid connect嗎?」 優勢 - 爲單點登錄鋪平道路 - 模塊化您的身份驗證,因此您不會實現不同的身份驗證解決方案。 - 您可以選擇從主應用程序使用相同的Web API。 (雖然你可以只使用OAuth2用戶端憑證流和簡單地跳過ID連接認證的一部分) 缺點 - 如果你只有一個客戶端應用程序,然後這可能是矯枉過正 - 你是通過使依賴增加複雜性的應用在認證服務器應用程序(但模塊化中具有優勢太)

我不完全瞭解你的情況,但我傾向於說是的。雖然,我肯定會關閉oauth2的同意屏幕,以供您信賴的主應用程序使用。如果你不使用OpenID的連接進行驗證,應該不會太難您的主應用程序轉換爲使用它以後

+0

嗨sdoxsee,我的應用程序是一個SPA(帶有多個模塊)。每個模塊的着陸頁由asp.net MVC提供。簡而言之,它是webapi和服務器端頁面的混合體。哪種方法可以保護webapi和cshtml視圖? – Pragmatic