如何使用 SAML 2.0 控制器执行测试?
How does one perform testing with a SAML 2.0 controller?
我有一个 .Net 5 Entity Framework 项目,我已将 ITfoxtec SAML 2.0 库添加到其中。
我需要能够连接到使用 SAML 2.0 的公司网络。 IT 人员说我需要“创建一个 SAML 2.0 断言以指向公司 SAML 路由。”
我遵循 Git 存储库中的代码示例,并将所有需要的配置元素添加到我的 startup.cs
class.
也在我的 AuthController.cs
中添加了以下内容:
[Route("Login")]
public IActionResult Login(string returnUrl = null)
{
var binding = new Saml2RedirectBinding();
binding.SetRelayStateQuery(new Dictionary<string, string> { { relayStateReturnUrl, returnUrl ?? Url.Content("~/") } });
return binding.Bind(new Saml2AuthnRequest(config)).ToActionResult();
}
[Route("AssertionConsumerService")]
public async Task<IActionResult> AssertionConsumerService()
{
var binding = new Saml2PostBinding();
var saml2AuthnResponse = new Saml2AuthnResponse(config);
binding.ReadSamlResponse(Request.ToGenericHttpRequest(), saml2AuthnResponse);
if (saml2AuthnResponse.Status != Saml2StatusCodes.Success)
{
throw new AuthenticationException($"SAML Response status: {saml2AuthnResponse.Status}");
}
binding.Unbind(Request.ToGenericHttpRequest(), saml2AuthnResponse);
await saml2AuthnResponse.CreateSession(HttpContext, claimsTransform: (claimsPrincipal) => ClaimsTransform.Transform(claimsPrincipal));
var relayStateQuery = binding.GetRelayStateQuery();
var returnUrl = relayStateQuery.ContainsKey(relayStateReturnUrl) ? relayStateQuery[relayStateReturnUrl] : Url.Content("~/");
return Redirect(returnUrl);
}
项目构建并运行,但我不确定如何测试这个 ITfoxtec SAML 2.0 库。
有人有这方面的经验吗?
谢谢!
您只需打开浏览器并单击登录即可对其进行测试。 ITfoxtec Identity SAML 2.0 组件将使用您的代码重定向到您的公司 IdP,它期望通过浏览器返回 post。
我有一个 .Net 5 Entity Framework 项目,我已将 ITfoxtec SAML 2.0 库添加到其中。
我需要能够连接到使用 SAML 2.0 的公司网络。 IT 人员说我需要“创建一个 SAML 2.0 断言以指向公司 SAML 路由。”
我遵循 Git 存储库中的代码示例,并将所有需要的配置元素添加到我的 startup.cs
class.
也在我的 AuthController.cs
中添加了以下内容:
[Route("Login")]
public IActionResult Login(string returnUrl = null)
{
var binding = new Saml2RedirectBinding();
binding.SetRelayStateQuery(new Dictionary<string, string> { { relayStateReturnUrl, returnUrl ?? Url.Content("~/") } });
return binding.Bind(new Saml2AuthnRequest(config)).ToActionResult();
}
[Route("AssertionConsumerService")]
public async Task<IActionResult> AssertionConsumerService()
{
var binding = new Saml2PostBinding();
var saml2AuthnResponse = new Saml2AuthnResponse(config);
binding.ReadSamlResponse(Request.ToGenericHttpRequest(), saml2AuthnResponse);
if (saml2AuthnResponse.Status != Saml2StatusCodes.Success)
{
throw new AuthenticationException($"SAML Response status: {saml2AuthnResponse.Status}");
}
binding.Unbind(Request.ToGenericHttpRequest(), saml2AuthnResponse);
await saml2AuthnResponse.CreateSession(HttpContext, claimsTransform: (claimsPrincipal) => ClaimsTransform.Transform(claimsPrincipal));
var relayStateQuery = binding.GetRelayStateQuery();
var returnUrl = relayStateQuery.ContainsKey(relayStateReturnUrl) ? relayStateQuery[relayStateReturnUrl] : Url.Content("~/");
return Redirect(returnUrl);
}
项目构建并运行,但我不确定如何测试这个 ITfoxtec SAML 2.0 库。
有人有这方面的经验吗?
谢谢!
您只需打开浏览器并单击登录即可对其进行测试。 ITfoxtec Identity SAML 2.0 组件将使用您的代码重定向到您的公司 IdP,它期望通过浏览器返回 post。