基於SAML2.0的SAP雲產品Identity Authentication過程介紹

SAP官網的架構圖
https://cloudplatform.sap.com...html

上圖介紹了用戶訪問SAP雲平臺時經歷的Authentication過程。
本文使用的例子是用戶訪問SAP Marketing Cloud而非SAP雲平臺,可是原理一致。ios

步驟1:用戶向Service provider發起服務請求。
步驟2:Service provider把這個請求重定向到提供認證的租戶上,在我這個例子是SAP ID service,即account.sap.com.spring

這裏Marketing Cloud和SAP ID Service被配置爲互相信任。shell

請求1響應頭裏的302重定向字段:https://let-me-in.hybris.com/...://hybris.com/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html服務器

被重定向到SAP雲平臺的account ID service(accounts.sap.com):
https://accounts.sap.com/saml...:ydcHybris:spring:sp2&RelayState=https://hybris.com/sap/bc/ui5...架構

步驟3:IDP給用戶發送一個html page,要求用戶提供用戶名和密碼。ide

若是查看這個html的源代碼,能發現除了用戶名和密碼兩個輸入字段外,還包含了一些隱含字段,以下圖高亮所示,這些字段是IDP返回給用戶時在服務器端生成的,用於步驟5的IDP服務器端認證處理:ui

  • xsrfProtection
  • spId
  • spName
  • authenticity_token
  • idpSSOEndpoint

步驟4:用戶輸入用戶名和密碼後,點擊login按鈕,這些信息經過HTML form發送到了SAP ID service的服務器端:url

sso請求的url:https://accounts.sap.com/saml...spa

第二個大寫的SSO請求的url:https://let-me-in.demo.hybris...

步驟5:SAP ID service的服務器端完成驗證,發送SAML assertions做爲響應給用戶。

這個SAML響應是XML格式的,結構以下:

步驟6也就是最後一步,拿到這個SAML assertion後,用戶就可以訪問service provider了。

要獲取更多Jerry的原創文章,請關注公衆號"汪子熙":

相關文章
相關標籤/搜索