如何获得已经发布的 SAML 断言?

How to get an already issued SAML assertion?

我有一个场景,我有一个 ASP.Net 应用程序使用 Thinktecture IdentityServer 进行身份验证。这一切都很好,它与我们的 ADFS 有关系,一切都很好。我需要的是调用 ShareFile-NET SDK 并使用下面的示例代码进行身份验证..

    //SAML Authentication: This authentication support assumes you have a mechanism for obtaining a SAML assertion, samlAssertion from the user's IdP.

var sfClient = new ShareFileClient("https://secure.sf-api.com/sf/v3/");
var oauthService = new OAuthService(sfClient, "[clientid]", "[clientSecret]");

var oauthToken = await oauthService.ExchangeSamlAssertionAsync(samlAssertion,
  subdomain, applicationControlPlane);

sfClient.AddOAuthCredentials(oauthToken);
sfClient.BaseUri = oauthToken.GetUri();

所以我有 IdP,但我没有运气研究如何使用它提供给我的令牌来创建 "samlAssertion" 参数..

我找到了答案。

可以在 ClaimsIdentity 中找到 SAML 断言

var icp = System.Security.Claims.ClaimsPrincipal.Current;

        var claimsIdentity = icp.Identity as System.Security.Claims.ClaimsIdentity;

        var token = claimsIdentity.BootstrapContext as System.IdentityModel.Tokens.BootstrapContext;

要填充此内容,您需要将以下内容添加到 web.config:

<identityConfiguration saveBootstrapContext="true">