2

我有一个场景,我有一个使用 Thinktecture IdentityServer 进行身份验证的 ASP.Net 应用程序。这一切都很好,它与我们的 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”参数。

4

1 回答 1

1

我已经找到了答案。

SAML 断言可以在 ClaimsIdentity 中找到

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">
于 2015-03-26T22:44:00.520 回答