1

与 Okta 集成后,我正在尝试将 SSO 与 ADFS 集成。

一切顺利,直到注销。

我有一个例外:

Caught Exception:  System.ArgumentNullException: Value cannot be null. (Parameter 'uriString')
   at System.Uri..ctor(String uriString)
   at ITfoxtec.Identity.Saml2.Saml2LogoutRequest..ctor(Saml2Configuration config, ClaimsPrincipal currentPrincipal)
   at SiqApi.Controllers.Login.LoginController.Logout() in C:.....

挖掘代码后,我发现 ADFS 缺少以下声明(存在于 Orka 声明中):

http://schemas.itfoxtec.com/ws/2014/02/identity/claims/saml2nameidformat - urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified 

异常的来源在 Saml2LogoutRequest 构造函数中

new Uri(Saml2LogoutRequest.ReadClaimValue(identity, "http://schemas.itfoxtec.com/ws/2014/02/identity/claims/saml2nameidformat", false))

我在 ADFS 配置中遗漏了什么吗?

请指教。

4

1 回答 1

1

您需要更改 AD FS 上的配置以发出具有格式的 NameID。注销需要具有格式的 NameID。

不幸的是,AD FS 能够发出没有格式的 NameID,这会导致此错误。

于 2021-01-03T14:17:00.770 回答