使用Msal对Angular中的Azure广告进行身份验证

时间:2018-10-02 14:35:42

标签: angular azure msal

我将对Azure AD进行身份验证。

我已经在module.app中配置了我的应用

MsalModule.forRoot({
  clientID: "ClientId",
  authority: "https://login.microsoftonline.com/tenant.onmicrosoft.com/",
  redirectUri: "http://localhost:4200/",
  validateAuthority : true,
  cacheLocation : "localStorage",
  postLogoutRedirectUri: "http://localhost:4200/",
  navigateToLoginRequestUrl : true,
  popUp: true,
  consentScopes: ["user.read", "api://??what_Id_Sould_I_Put???/access_as_user"],
  unprotectedResources: ["https://angularjs.org/"],
  correlationId: '1234',
  piiLoggingEnabled: true,
}),

我的组件我使用loginPopup方法进行连接:

this.authService.loginPopup(["user.read" ,"api://ClientId/access_as_user"]);

我收到此错误

  

AADSTS50001:在名为de5e3c28-141c-4d3e-90ea-aa3326abe67d(奇怪的ID)的租户中找不到名为api:// ClientId的应用程序。如果租户的管理员未安装该应用程序,或者该租户中的任何用户未同意该应用程序,则可能会发生这种情况。您可能已将身份验证请求发送给错误的租户。

ConsentScope 变量中使用的sample demo ID Client ID 不同,我不知道什么是那个ID以及如何获取它?

1 个答案:

答案 0 :(得分:1)

只需删除行

consentScopes: ["user.read", "api://??what_Id_Sould_I_Put???/access_as_user"],

从配置。 并更改行

this.authService.loginPopup(["user.read" ,"api://ClientId/access_as_user"]);

this.authService.loginPopup();