首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于实现Azure Active的Asp.NET核心库是什么?

用于实现Azure Active的Asp.NET核心库是什么?
EN

Stack Overflow用户
提问于 2016-06-01 17:33:12
回答 1查看 2.6K关注 0票数 1

我注意到很多Owin.Security内容都在Microsoft.AspNetCore.Authentication名称空间中。

喜欢

代码语言:javascript
复制
Microsoft.AspNetCore.Authentication.Cookies
Microsoft.AspNetCore.Authentication.Facebook
Microsoft.AspNetCore.Authentication.JwtBearer

但是对于传统的OneBitSoftware.中的Micosoft.Owin.Security.ActiveDirectory来说,一个名为Microsoft.AspNetCore.Authentication.ActiveDirectory的包实际上不是来自微软,而是来自某些ASP.NET。托管这里

我很好奇ActiveDirectory名称空间是否已被重命名为JwtBearerOpenIdConnectOAuth。但似乎没有一个能像这样与AzureAD一起工作:

代码语言:javascript
复制
var options = new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
    Tenant = ...
}

我试图使用AzureAD进行身份验证,没有ActiveDirectory,我应该使用哪个NuGet包?

更新

ASP.NET文档站点中的例子相当古老。包,如

代码语言:javascript
复制
"Microsoft.AspNet.Security.OAuthBearer": "1.0.0-beta3",

不再用于最新的Asp.net核心。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-02 13:25:22

Tratcher在问题评论部分指出了正确的方向。

所以我写了一个扩展方法来使用Azure AD。

代码语言:javascript
复制
namespace Microsoft.AspNetCore.Builder
{
    public static class ApplicationBuilderExtensions
    {
        public static IApplicationBuilder UseAzureADBearerAuthentication(
            this IApplicationBuilder app,
            IConfigurationRoot configuration)
        {
            var tenant = configuration.GetSection("AzureAD:Tenant").Value;
            var azureADInstance = configuration.GetSection("AzureAD:AzureADInstance").Value;
            var audience = configuration.GetSection("AzureAD:Audience").Value;
            var authority = $"{azureADInstance}{tenant}";


            var jwtBearerAuthOptions = new JwtBearerOptions
            {
                Audience = audience,
                AutomaticAuthenticate = true,
                AutomaticChallenge = true,
                Authority = authority
            };
            app.UseJwtBearerAuthentication(jwtBearerAuthOptions);
            return app;
        }
    }
}

IApplicationBuilder上的扩展方法被放入Microsoft.AspNetCore.Builder的命名空间中。

Startup.cs

代码语言:javascript
复制
app.UseCors(builder => builder
.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod());
app.UseAzureADBearerAuthentication(Configuration);
app.UseMvc();

设置存储在appsettings.json中,如下所示:

代码语言:javascript
复制
"AzureAD": {
  "AzureADInstance": "https://login.microsoftonline.com/",
  "Tenant": "{my AD}",
  "Audience": "{my application registered in AD}"
}

用于NuGet的JwtBearer包是

代码语言:javascript
复制
"Microsoft.AspNetCore.Authentication.JwtBearer": "1.0.0-rc2-final"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37575281

复制
相关文章

相似问题

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