使用ADFS WS-Fed协议进行身份验证和授权

时间:2016-06-14 08:18:09

标签: authentication authorization asp.net-web-api2 jwt adfs3.0

我正在努力在我的应用程序中实现身份验证和授权。

用于身份验证: 我通过ADFS服务器配置了WS-Fed登录协议并启用了JWT。创建MVC应用程序并配置为使用WS-Fed来验证用户。

现在问题是如何在成功登录后将JWT令牌存储在我的cookie中?

这是我的代码

public partial class Startup
    {
        private static string realm = ConfigurationManager.AppSettings["ida:Wtrealm"];
        private static string adfsMetadata = ConfigurationManager.AppSettings["ida:ADFSMetadata"];

        public void ConfigureAuth(IAppBuilder app)
        {
            app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
            app.UseCookieAuthentication(new CookieAuthenticationOptions{ CookieName="JwtToken",CookieHttpOnly=false});
            app.UseWsFederationAuthentication(
                new WsFederationAuthenticationOptions
                {
                    Wtrealm = realm,
                    MetadataAddress = adfsMetadata
                });
        }
    }

授权 我有一个单独的Web API项目。我想通过在每个请求的标头中传递JWT令牌来授权我的api,但不确定如何从cookie中提取JWT令牌并将其传递给web api进行验证。

1 个答案:

答案 0 :(得分:0)

我在这里找到了答案http://www.software-architects.com/devblog/2015/02/02/ADFS-and-ADAL-Lab

ADAL(适用于.NET和JavaScript的Active Directory身份验证库),可用于在mvc应用程序中获取令牌,并在标头中传递令牌以授权web api。