微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

团队中具有MS Identity Auth的服务器端Blazor?

如何解决团队中具有MS Identity Auth的服务器端Blazor?

因此,我有一个工作正常的服务器端Blazor应用程序,该应用程序与我们公司的Azure AD关联在一起可用于一些内部报表。没什么花哨的,几乎和所有教程一样,它本身也很好用。然后,我被要求将其包含在我们公司的“团队”标签中。

想通了我将其添加为“网站”选项卡,但是随后遇到了一个问题,即Microsoft的登录页面不喜欢位于iframe中(这很合理)。 问题是-我可以设置一个选项来强制身份验证的弹出版本而不是重定向吗?下面的Startup.cs

public void ConfigureServices(IServiceCollection services)
{
 //Add our azure security stuff
 string[] graphScopes = Configuration.GetValue<string>("GraphApi:Scopes")?.Split(',');

 services.AddMicrosoftIdentityWebAppAuthentication(Configuration,"AzureAd")
    .EnabletokenAcquisitionToCallDownstreamApi(graphScopes)
    .AddInMemoryTokenCaches();

 //Standard stuff
 services.AddRazorPages();
 services.AddServerSideBlazor().AddMicrosoftIdentityConsentHandler();
 services.AddHttpContextAccessor();

 services.AddControllersWithViews(options =>
 {
    var policy = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();
    options.Filters.Add(new Authorizefilter(policy));
 }).AddMicrosoftIdentityUI();

 //Add our role handling
 services.AddAuthorization(options =>
 {
    options.AddPolicy("IsAdmin",policy =>
    {
       policy.Requirements.Add(new ADGroupRequirement(new string[] { "{some-hard-coded-test-guid}" }));
    });
 });
 services.AddSingleton<IAuthorizationHandler,ADGroupHandler>();
}

public void Configure(IApplicationBuilder app,IWebHostEnvironment env)
{
 if (env.IsDevelopment())
 {
    app.UseDeveloperExceptionPage();
 }
 else
 {
    app.UseExceptionHandler("/Error");
    app.UseHsts();
 }
 app.UseHttpsRedirection();
 app.UseStaticFiles();
 app.UseRouting();
 app.UseAuthentication();
 app.UseAuthorization();
 app.UseEndpoints(endpoints =>
 {
    endpoints.MapControllers();
    endpoints.MapBlazorHub();
    endpoints.MapFallbackToPage("/_Host");
 });
}

我的下一步是重写auth,以不使用nuget包,而是使用adal js库,而不是遵循此页面的文档(MS Teams Silent Auth),尽管这只花了我几天的时间,但我d不想废弃我认为是更干净的auth方法,以使其在我们的新用例中工作。希望有人可以指出我所缺少的东西。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。