首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OAuth令牌从单点登录源授权不同的ASP.NET MVC应用程序

问使用OAuth令牌从单点登录源授权不同的ASP.NET MVC应用程序
EN

Stack Overflow用户
提问于 2016-05-20 07:02:02
回答 1查看 779关注 0票数 0

我有许多不同的web应用程序,都运行在ASP.NET MVC中。这些IIS应用程序是.NET/ ASP.NET混合应用程序,通常调用WebAPI API,这些API在IIS上运行在自己的单独应用程序中。

所有应用程序都在同一个域上,但在单独的子域中。它们都运行在IIS的同一个实例上。

该结构如下所示:

  • 支付应用程序(MVC,payments.myapp.com)
  • 新闻应用(MVC,news.myapp.com)
  • 支付API (WebAPI,paymentsapi.myapp.com)
  • 新闻API (WebAPI,newsapi.myapp.com)
  • 登录应用程序(MVC,login.myapp.com)
  • 登录API (WebAPI,loginapi.myapp.com)

我需要做的是登录一个单一来源的支付和新闻应用程序,即登录应用程序。然后,登录应用程序调用登录API (显然不受限制)以发出令牌。

如果用户试图在没有令牌的情况下访问支付或新闻应用程序,则应该将它们重定向到登录应用程序。如果没有有效的令牌,支付API和NewsAPI也应该是不可访问的,应该同时设置登录。

目前,登录API使用OWIN/OAuth成功地发出了一个承载令牌--我不确定的部分是跨子域使用它。

我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2016-05-20 07:16:41

您可以使用内置于Owin身份验证中间件中的Asp.Net来实现此功能。请参考这个伟大的文章,我相信您会想出适合您需要的解决方案。

在单独的类库中在IAppBuilder上编写一个扩展方法,并在所有应用程序之间共享该方法以进行令牌验证。请参阅下面的示例(从本文复制的代码):

代码语言:javascript
复制
public static void ConfigureOAuth(this IAppBuilder app)        
{
            var issuer = "http://jwtauthzsrv.azurewebsites.net";
            var audience = "099153c2625149bc8ecb3e85e03f0022";
            var secret = TextEncodings.Base64Url.Decode("IxrAjDoa2FqElO7IhrSrUJELhUckePEPVpaePlS_Xaw");

            // Api controllers with an [Authorize] attribute will be validated with JWT
            app.UseJwtBearerAuthentication(
                new JwtBearerAuthenticationOptions
                {
                    AuthenticationMode = AuthenticationMode.Active,
                    AllowedAudiences = new[] { audience },
                    IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
                    {
                        new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret)
                    }
                });

        }

发行人将使用相同的信息(秘密和受众)发行令牌。由于验证逻辑在子域中是相同的,所以令牌在所有子域上都是有效的。

如果你有任何问题请告诉我。

谢谢你,索玛

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37340010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档