我在我們的項(xiàng)目中使用go-saml庫來啟用 SSO,其中服務(wù)提供商將是 Salesforce,身份提供商將是 Golang 代碼。Golang 代碼將首先驗(yàn)證用戶,然后創(chuàng)建 SAML 響應(yīng)以允許用戶登錄 Salesforce。我是 Golang 新手,正在關(guān)注該庫的創(chuàng)建 SAML 響應(yīng)(如果充當(dāng) IdP) 。到目前為止,我能夠使用它創(chuàng)建 SAML 響應(yīng),但在根據(jù)要求自定義它時面臨一些挑戰(zhàn)。我面臨的第一個挑戰(zhàn)是在條件塊中添加AudienceRestriction,如下所示:-<saml:Conditions NotBefore="2020-03-15T16:33:16.23103491Z" NotOnOrAfter="2020-03-15T16:43:16.23104017Z">
? ? ? ? <saml:AudienceRestriction>
? ? ? ? ? ? ? ?<saml:Audience>https://saml.salesforce.com</saml:Audience>
? ? ? ? </saml:AudienceRestriction>
</saml:Conditions>我嘗試在代碼中添加如下所示的內(nèi)容,但似乎AudienceRestrictions未在Conditions對象中定義。authnResponse := saml.NewSignedResponse()
authnResponse.Conditions.AudienceRestrictions = "https://saml.salesforce.com"我沒有找到任何方法可以在 Salesforce 強(qiáng)制執(zhí)行的條件塊中添加上述塊。請建議我一些方法來做到這一點(diǎn)。我還必須在條件塊下方添加AuthnStatement ,如下所示:-<saml:AuthnStatement AuthnInstant="2020-03-01T11:28:31.396Z">
? <saml:AuthnContext> ? ?<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml:AuthnContextClassRef>
? </saml:AuthnContext>
</saml:AuthnStatement>即使在 SAML 響應(yīng)中手動添加上述塊后,我在使用 Salesforce SAML 驗(yàn)證器驗(yàn)證 SAML 響應(yīng)時仍收到以下錯誤驗(yàn)證簽名...響應(yīng)是否已簽名?true斷言是否已簽名?false響應(yīng)簽名中的引用有效 密鑰信息中提供的證書是否正確?真的簽名或證書問題響應(yīng)中的簽名無效我已經(jīng)生成了一個公鑰(自簽名 .pem 證書)和一個私鑰。之后,我將公鑰上傳到 Salesforce,并使用私鑰和公鑰在代碼中生成 SAML 響應(yīng)。我不知道為什么會收到“簽名無效”錯誤。如果您對我有任何建議,請告訴我。如果您想檢查我的 Golang 代碼 -?https://play.golang.org/p/U9dXZblTHG1
1 回答

呼喚遠(yuǎn)方
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個贊
可以通過提供的功能添加受眾:
authnResponse?:=?saml.NewSignedResponse() authnResponse.AddAudienceRestriction("https://saml.salesforce.com")
可以通過另一個函數(shù)添加身份驗(yàn)證上下文:
authnContext?:=?"urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified" sessionIndex?:=?"session_1" authnResponse.AddAuthnStatement(authnContext,sessionIndex)
建議嘗試使用更成熟、成熟的庫(例如 OpenSAML 或 simpleSAMLphp)來生成 SAML 響應(yīng)。如果這有效,但 go-saml 不起作用,那么您就可以繼續(xù)下一步了。另一方面,如果您通過另一種方法生成的斷言也失敗,那么很可能是您使用鍵或斷言內(nèi)容而不是庫執(zhí)行的操作出現(xiàn)問題。
- 1 回答
- 0 關(guān)注
- 123 瀏覽
添加回答
舉報
0/150
提交
取消