将 SAMLResponse 设为空白 - 我正在尝试通过在 ASP.NET Core 6.0 控制台应用程序中使用 AssumeRoleWithSAML 来获取临时 AWS 凭证

问题描述 投票:0回答:0

在我的 C# 代码中,我想使用

assumerolewithsaml
方法根据角色和主体角色生成 AWS 凭证,但我无法获取
SAMLRESPONSE
- 它返回为 null 或空白。

var inputTag = doc.DocumentNode
                  .Descendants("input")
                  .FirstOrDefault(i => i.GetAttributeValue("name", "") == "SAMLResponse");

这是完整的代码。请帮助我缺少什么,我是 AWS 方面的新手。

try
{
   String samlAssertion = "";

   var handler = new HttpClientHandler
                {
                    UseDefaultCredentials = true
                };
               
   var client = new HttpClient(handler);
   client.DefaultRequestHeaders.Add("User-Agent", "Edge");
   var entryUrl = someurl;

   var response = client.GetAsync(entryUrl).Result;

   if (response.IsSuccessStatusCode)
   {
       Console.WriteLine("Login successful");
       var content = response.Content.ReadAsStringAsync().Result;

       var doc = new HtmlDocument();
       doc.LoadHtml(content);

       // Look for the SAMLResponse attribute of the input tag (determined by
       // analyzing the debug print lines above)
       var inputTag = doc.DocumentNode.Descendants("input").FirstOrDefault(i => i.GetAttributeValue("name", "") == "SAMLResponse");

       if (inputTag != null)
       {
           samlAssertion = inputTag.GetAttributeValue("value", "");
       }
   }

   var stsClient = new AmazonSecurityTokenServiceClient(region: RegionEndpoint.XYZ);

   try
   {
       var token = await stsClient.AssumeRoleWithSAMLAsync(new AssumeRoleWithSAMLRequest
                    {
                        RoleArn = "arn:aws:role.developer",
                        PrincipalArn = "111111111:saml-provider/sso.www.xyz.com",
                        SAMLAssertion = samlAssertion
                    });
       Console.WriteLine(token);
   }
   catch (AmazonServiceException e)
   {
       Console.WriteLine("Unexpected error: {0}", e.Message);
       Environment.Exit(2);
   }
}
c# amazon-web-services amazon-s3 saml-2.0 asp.net-core-6.0
© www.soinside.com 2019 - 2024. All rights reserved.