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

i042416 發表於 2019-08-22

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

clipboard1

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

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

這裡Marketing Cloud和SAP ID Service被配置為互相信任。

clipboard2

請求1響應頭裡的302重定向欄位: https://let-me-in.hybris.com/saml/idp-redirection?httpd_location=https://hybris.com/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html

被重定向到SAP雲平臺的account ID service(accounts.sap.com):
https://accounts.sap.com/saml2/idp/sso?sp=com:ydcHybris:spring:sp2&RelayState=https://hybris.com/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html

步驟3:IDP給使用者傳送一個html page,要求使用者提供使用者名稱和密碼。

clipboard3

如果檢視這個html的原始碼,能發現除了使用者名稱和密碼兩個輸入欄位外,還包含了一些隱含欄位,如下圖高亮所示,這些欄位是IDP返回給使用者時在伺服器端生成的,用於步驟5的IDP伺服器端認證處理:

clipboard4

  • xsrfProtection
  • spId
  • spName
  • authenticity_token
  • idpSSOEndpoint

步驟4:使用者輸入使用者名稱和密碼後,點選login按鈕,這些資訊通過HTML form傳送到了SAP ID service的伺服器端:

clipboard5

sso請求的url: https://accounts.sap.com/saml2/idp/sso

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

步驟5:SAP ID service的伺服器端完成驗證,傳送SAML assertions作為響應給使用者。

clipboard6

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

clipboard7

步驟6也就是最後一步,拿到這個SAML assertion後,使用者就能夠訪問service provider了。

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
基於SAML2.0的SAP雲產品Identity Authentication過程介紹


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2654613/,如需轉載,請註明出處,否則將追究法律責任。