当前位置: 首页 > 知识库问答 >
问题:

Azure AD SSO:.Net Core 2.1基于组织Office 365用户名的单点登录

红智鑫
2023-03-14

我已经创建了一个ASP。NET Core 2.1 MVC web应用程序和我使用了一个简单的登录表单来验证用户。现在,我们决定删除登录表单,并对我的组织的Office 365用户凭据或我的Office outlook用户名使用单一登录选项

这个web应用程序是一个MVP(最小可行产品)项目,所以我们不想使用我们自己的身份验证

我在互联网上搜索了许多网站,一些网站解释说“不需要代码来配置SSO,只需要配置Azure AD”,其他一些网站也解释了一些代码。所以现在我完全困惑了,我应该如何为我的简单网络应用程序实现SSO。

  • 托管环境:Azure应用服务
  • 应用程序用户:仅限组织用户(内部Web应用程序)

我的tartup.cs代码:

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<CookiePolicyOptions>(options =>
        {
            // This lambda determines whether user consent for non-essential cookies is needed for a given request.
            options.CheckConsentNeeded = context => true;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });

        services.AddSession(options =>
        {
            options.Cookie.IsEssential = true;
        });

        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

        //Fetching Connection string from APPSETTINGS.JSON  
        var ConnectionString = Configuration.GetConnectionString("MbkDbConstr");

        //Entity Framework  
        services.AddDbContext<ShardingDbContext>(options => options.UseSqlServer(ConnectionString));

        //Automapper Configuration
        AutoMapperConfiguration.Configure();
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            app.UseHsts();
        }

        app.UseHttpsRedirection();
        app.UseStaticFiles();
        app.UseCookiePolicy();
        app.UseSession();

        app.UseAuthentication();

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller:required}/{action}/{id?}",
                defaults: new { controller = "UserAccount", action = "UserLogin" });

        });
    }
}

注意:我已经配置了应用程序。使用身份验证()

共有1个答案

汤洋
2023-03-14

如果要使用App Services对用户进行身份验证,请参阅文档以了解如何在App Services中启用AAD身份验证。

通常,对于任何Web应用程序,都可以在Azure AD中配置应用注册。还可以配置声明属性,以便使用SSO功能。有关如何在Azure AD中配置应用注册,请参阅文档。

 类似资料:
  • 使用基于表单的JAAS、MySQL、Apache TomEE、JSP、Servlet 我知道如何配置基于表单的JAAS,当用户试图访问安全页面时,自动将用户重定向到登录页面。基本上,我已经为TomEE和MySQL配置了JDBC领域(在文件中),在中,我已经声明了、和。 然后,有以下登录表单: 而且,这对于在web.xml中的标记中声明的页面很好。 但是,我想有明确的访问一个页面,用户可以登录。那么

  • 我是一名在netbeans工作的新java程序员,我正在尝试基于sqlite数据库进行登录。在数据库中,我有一个username列、一个password列和一个position列。登录的目的是,当用户输入用户名和密码并按下登录按钮时,程序将连接到sqlite数据库,访问数据库上的特定表,检查用户名和密码字段是否匹配,然后根据他们的位置(管理员、经理或教师),他们将转到不同的jframe。目前,我创

  • 我正在尝试为自己构建一个仪表板,为我使用的一些应用程序提供基于SAML的身份验证。 从我作为测试平台构建的: 我正在使用一个登录名作为我要使用的应用程序的身份提供者。 举个例子:对于Netflix,我被重新路由到Netflix页面,我的用户ID和密码被预先填入其中,就像密码管理器的工作方式一样。(它使用OneLogin的扩展名) Netflix是否允许基于SAML的单点登录身份验证?我无法从谷歌搜

  • 我有两门课。我的基层: 还有我的另一门课。这个类扩展了BaseRequest类。 当我尝试创建映射器将我的Add Class转换为其他类时: 当我运行我的构建时,我收到了这个错误: 错误:(22,13)java:源参数中不存在名为“dateTransaction”的属性。你是说“空”吗?

  • 问题内容: 我已经使用了基本的和基于表单的身份验证来配置spring-security 。 我希望下面的端点不使用基于表单的安全性。外部的其他端点应使用基于表单的登录名。我希望收到对未提供凭据的这些端点的任何呼叫的响应。 更新 :感谢下面的卢克·泰勒的评论,我想出了以下解决方案。 注意 :只能从spring-security 3.1开始应用此技术。 首先,我单挑。我们永远不会创建会话,尽管会使用一

  • 我正在通过boto3组织从主AWS帐户获取所有子帐户。代码运行良好。我可以得到子帐户列表。但是如果您再次运行我的AWS Lambda函数,那么它将无法获取子帐户。 获取以下错误: 20到30分钟后,我可以看到我的代码工作了一次又一次地引发上述异常。 我是由AWS网关AWS Lambda运行此代码的。 有什么想法吗? 代码: