gpt4 book ai didi

Azure 示例 - WebApp-WSFederation-DotNet

转载 作者:行者123 更新时间:2023-12-03 01:52:08 25 4
gpt4 key购买 nike

可以在此处找到示例应用程序 --> https://github.com/Azure-Samples/active-directory-dotnet-webapp-wsfederation .

应用程序正在使用 Microsoft.Owin,这正是我所期望的:

  1. 用户导航到您的应用程序。

  2. 您的应用程序将匿名用户重定向到 Azure AD 进行身份验证,发送指示领域参数的应用程序 URI 的 WS-Federation 协议(protocol)请求。该 URI 应与单点登录设置中显示的应用程序 ID URI 匹配。

  3. 请求将发送到您的租户 WS-Federation 端点,例如:https://login.windows.net/solexpaad.onmicrosoft.com/wsfed

  4. 用户将看到一个登录页面,除非他或她已经拥有 Azure AD 租户的有效 cookie。

  5. 经过身份验证后,SAML token 将在 HTTP POST 中通过 WS-Federation 响应返回到应用程序 URL。要使用的 URL 在单点登录设置中指定为回复 URL。

  6. 应用程序处理此响应,验证 token 是否由受信任的颁发者 (Azure AD) 签名,并确认 token 仍然有效。

我的问题:

身份验证后,将通过 HTTP POST 返回 SAML token 。如何查看 SAML 响应?目前,当我在 POST 后查看 HttpContext 时,里面什么也没有。

感谢您的帮助。

最佳答案

在 App_Start/Startup.Auth.cs 中,您应该能够访问 token 。我添加了 SecurityTokenReceived 函数:

app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
Wtrealm = realm,
MetadataAddress = metadata,
Notifications = new WsFederationAuthenticationNotifications
{
AuthenticationFailed = context =>
{
context.HandleResponse();
context.Response.Redirect("Home/Error?message=" + context.Exception.Message);
return Task.FromResult(0);
},
SecurityTokenReceived = context =>
{
// Get the token
var token = context.ProtocolMessage.GetToken();
return Task.FromResult(0);
}
}
});

关于Azure 示例 - WebApp-WSFederation-DotNet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34908938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com