簡體   English   中英

Angularjs和SAML,一開始

[英]Angularjs and SAML, the beginning

我正在開發一個需要SAML來管理OpenAM服務器身份驗證的應用程序。

實際上,我使用帶有OAuth2隱式授權流的Satellizer,我有以下內容:

  • 在瀏覽器中打開angularjs應用程序
  • 單擊第三方登錄按鈕
  • 一個新窗口懸停在現有的窗口(使用ng app)打開,詢問我的憑據
  • 我填寫它們並驗證
  • 頁面制作了它的東西(生成令牌)
  • angularjs應用程序通過窗口獲取令牌(如何可能?)
  • 我可以將我的應用程序與OAuth2 bearer / jwt令牌一起使用。

我需要使用SAML有相同的功能。 事實是,我完全迷失了,似乎我應該使用我的后端登錄到SAML服務器......

我真的不喜歡這種情況,我需要知道使用客戶端應用程序是否有更好的事情要做。

使用SAML的客戶端應用程序的“常規”身份驗證流程是什么?

謝謝你的幫助

SAML2的設計是在尚未發明使用JavaScript的客戶端應用程序概念的時候設計的。

常用方法是使用中間OpenID Connect / SAML2代理/網橋(例如IdentityServer3 + Kentor.AuthServices.Owin)對用戶進行身份驗證:

  1. 用戶在JS app中開始登錄。
  2. 用戶被重定向(OpenID Connect流程的一部分)到IdentityServer3。
  3. 用戶被重定向(SAML2P的一部分)到SAML2 Idp。
  4. 用戶在SAML2 Idp進行身份驗證。
  5. 用戶被重定向回IdentityServer3(SAML2P的一部分)。
  6. 用戶被重定向回JS應用程序(OpenID Connect流程的一部分)。

這非常適合用戶使用外部Idp進行身份驗證。 如果您有資源(例如后端服務),則通常通過在步驟6發出的OAuth2承載令牌授權這些呼叫。

如果你的后端API期望SAML斷言而不是持票人令牌,你將不得不看看我們的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM