После двойной проверки моих политик и документации ошибка стала очевидной. По какой-то причине у нас был код в нашей политике для технического профиля SAML:
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop"/>
Таким образом, в основном у пользователя был сеанс с B2 C и сеанс с ADFS, но B2 C не было сеанса с ADFS.
Все начало работать, как только мы использовали SamlSSOSessionProvider
, как указано в документации .
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp" />
....
<ClaimsProvider>
<DisplayName>Session Management</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="SM-Saml-idp">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="IncludeSessionIndex">false</Item>
<Item Key="RegisterServiceProviders">false</Item>
</Metadata>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
При небольшом исследовании более того, мы обнаружили, что документация изначально содержала ту же ошибку, и именно так мы и получили код. Документация была исправлена один месяц go!