【发布时间】:2020-02-19 19:10:19
【问题描述】:
我正在尝试创建一个 PoC 应用程序集,即带有 Angular(其他或变体前端)的 WebApi,使用 Azure AD 对我的联合用户进行身份验证。
我的后端工作正常,身份验证/MFA 按预期工作,并显示登录提示。
我可以弹出登录屏幕(并且使用正确的租户),但是当我尝试登录时,我需要管理员访问权限 - 我请求的范围是否过多?
这是我在示例中的app.module.ts 代码,其中
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { LoginComponent } from './partials/login/login.component';
import { MsalModule, MsalInterceptor } from '@azure/msal-angular';
import { HTTP_INTERCEPTORS } from '@angular/common/http';
import { AppRoutingModule } from './app-routing.module';
@NgModule({
declarations: [
AppComponent,
LoginComponent
],
imports: [
MsalModule.forRoot({
clientID: "my-client-id",
authority: "https://login.microsoftonline.com/my-tenant-id",
redirectUri: "http://localhost:4200/",
validateAuthority : false,
cacheLocation : "sessionStorage",
storeAuthStateInCookie: false, // dynamically set to true when IE11
postLogoutRedirectUri: "http://localhost:4200/",
navigateToLoginRequestUrl : true,
popUp: false,
}),
BrowserModule,
AppRoutingModule,
],
providers: [{
provide: HTTP_INTERCEPTORS,
useClass: MsalInterceptor,
multi: true
}
],
bootstrap: [AppComponent]
})
export class AppModule { }
【问题讨论】:
-
您能否澄清一下您是如何托管您所称的前端和后端的:1- 单页应用程序(HTML、JS、CSS 等)是否由同一个 Web 应用程序提供服务作为 API(控制器)? 2- 您是同时使用一个应用注册,还是使用不同的应用注册?
-
为此,全部在一台服务器下,一个应用注册
-
可能您需要使用服务帐户服务主体进行登录。使用用户服务主体,您可以登录,但某些功能可能需要管理员访问权限。所以尝试使用服务帐户服务主体
-
这是我在 azure AD 中设置的吗?
标签: azure azure-active-directory .net-core-authorization