如何在Angular中配置MSAL?
我将使用Angular对Azure进行身份验证 这是我的msalModule如何在Angular中配置MSAL?,angular,azure,azure-active-directory,msal,Angular,Azure,Azure Active Directory,Msal,我将使用Angular对Azure进行身份验证 这是我的msalModule MsalModule.forRoot({ clientID: "ClientTenantID", authority: "https://login.microsoftonline.com/common", redirectUri: "http://localhost:4200/", consentScopes: [ "user.read", "ClientID/access_as_user"],
MsalModule.forRoot({
clientID: "ClientTenantID",
authority: "https://login.microsoftonline.com/common",
redirectUri: "http://localhost:4200/",
consentScopes: [ "user.read", "ClientID/access_as_user"],
popUp: true,
unprotectedResources: ["https://www.microsoft.com/en-us/"],
protectedResourceMap: protectedResourceMap,
logger: loggerCallback,
correlationId: '1234',
level: LogLevel.Info,
piiLoggingEnabled: true
})
当我得到登录弹出窗口,然后输入我的用户ID+PW,我得到这个错误
AADSTS50000: There was an error issuing a token.
我想知道客户ID和同意范围上使用的ID之间有什么区别
在我的示例中,我在Azure portal-->Azure Active Directory-->propreties中找到了ClientTenantID
然后,同意范围中使用的客户端ID位于Azure门户-->Azure Active Directory-->应用程序注册中,然后是应用程序ID
它们是MSAL中使用的正确ID吗
它们是MSAL中使用的正确ID吗
简而言之,否,clientID
应该是您在同意范围内使用的广告应用程序的应用程序ID
在同意范围
中,应该是需要用户同意的所需范围。MSAL使Angular(4.3到5)应用程序能够验证企业用户是否能够访问Microsoft Cloud或Microsoft Graph。例如,在您提到的链接中,approvescopes:[“user.read”api://a88bb933-319c-41b5-9f04-eff36d985612/access_as_user“]
,表示用户授权广告应用程序访问api,也可以是https://graph.microsoft.com
等
在你的文章里已经解释清楚了,
同意范围:允许客户端表示应同意的所需范围。作用域可以来自多个资源/端点。在这里传递作用域只会同意它,并且在客户端实际调用API之前不会获取访问令牌。如果您仅将MSAL用于登录(身份验证),则此选项是可选的
MSAL“同意范围”应设置为前端客户端目标后端API的所需范围;它需要访问令牌的API 因此,在下面的图片中,我的angular web客户端称为“MyCompany web dev”,我的API称为“MyCompany API dev” 要查找应输入的确切字符串,请执行以下操作:
类似地,如果您使用的是MSALService.loginPopup方法,则它将如下所示: MyMsalService.loginPopup([“openid”,“脱机访问”,”https://mycompany.onmicrosoft.com/api-dev/user_impersonation“])
希望能有所帮助。我已将我的同意范围更改为
同意范围:[“User.Read”https://graph.microsoft.com/“]
如您所述,但我不确定这是否正确。这是我现在收到的错误消息<代码>为输入参数“scope”提供的值无效。作用域用户。读取https://graph.microsoft.com/ openid配置文件无效。作用域格式无效。作用域必须是有效的URI格式或有效的Guid。现在我收到以下消息:>名为https://graph.microsoft.com/v1.0 在名为租户ID(非客户端ID)的租户中找不到。如果应用程序尚未由租户的管理员安装或租户中的任何用户同意,则可能发生这种情况。您可能向错误的租户发送了身份验证请求。
当我删除同意范围行时,我获得了身份验证,但我没有获得访问Id,而是获得了一个不适用于Graph API的令牌Id,以下是更多信息: