Angular 6 的 Msal 多租户 Azure Active Directory 应用程序
Multi-Tenant Azure Active Directory application with Msal for Angular 6
我们正在开发一个 SPA(单页应用程序),任何拥有有效 Azure 帐户的用户都可以使用。该应用程序使用 Azure 资源管理 (user_impersonation) 等权限来显示统计信息和监视某些 Azure 资源。
该应用程序是使用 Angualr 6+ 构建的,我们使用最新版本的 Msal-Angular 进行身份验证。 (安装 rxjs-compact 包是为了支持 angualr 6+)
我已经使用配置的权限在 Azure(多租户)中注册了应用程序注册,但我在配置 Msal-Angular 以支持多租户时遇到问题。
我们的配置适用于组织用户,但不适用于不在我的 Active Directory 中的个人帐户。
MsalModule.forRoot({
clientID: environment.aadClientId,
redirectUri: environment.redirectUri,
authority: 'https://login.microsoftonline.com/organizations/',
protectedResourceMap: [['https://management.azure.com/', ['https://management.azure.com/.default']]]
})
如果我尝试将权限更改为 'common',如下所示:
登录有效,但未正确获取范围,任何访问安全 API(例如“https://management.azure.com/”的尝试都会产生以下错误:
ERROR The provided value for the input parameter 'scope' is not valid. The scope 'https://management.azure.com/.default openid profile' does not exist.|invalid_scope
我是不是做错了什么?这可以用 Msal-Angular 实现还是我应该使用 Msal Core?
要允许个人帐户登录,您需要使用通用端点https://login.microsoftonline.com/common/
。
并且支持的帐户类型必须是“任何组织目录中的帐户(任何 Azure AD 目录 - 多租户)和个人 Microsoft 帐户(例如 Skype、Xbox)”
但是:当您使用 common
端点和个人帐户时,不支持 https://management.azure.com
api。此处只能使用多租户用户。
我们正在开发一个 SPA(单页应用程序),任何拥有有效 Azure 帐户的用户都可以使用。该应用程序使用 Azure 资源管理 (user_impersonation) 等权限来显示统计信息和监视某些 Azure 资源。
该应用程序是使用 Angualr 6+ 构建的,我们使用最新版本的 Msal-Angular 进行身份验证。 (安装 rxjs-compact 包是为了支持 angualr 6+)
我已经使用配置的权限在 Azure(多租户)中注册了应用程序注册,但我在配置 Msal-Angular 以支持多租户时遇到问题。
我们的配置适用于组织用户,但不适用于不在我的 Active Directory 中的个人帐户。
MsalModule.forRoot({
clientID: environment.aadClientId,
redirectUri: environment.redirectUri,
authority: 'https://login.microsoftonline.com/organizations/',
protectedResourceMap: [['https://management.azure.com/', ['https://management.azure.com/.default']]]
})
如果我尝试将权限更改为 'common',如下所示:
登录有效,但未正确获取范围,任何访问安全 API(例如“https://management.azure.com/”的尝试都会产生以下错误:
ERROR The provided value for the input parameter 'scope' is not valid. The scope 'https://management.azure.com/.default openid profile' does not exist.|invalid_scope
我是不是做错了什么?这可以用 Msal-Angular 实现还是我应该使用 Msal Core?
要允许个人帐户登录,您需要使用通用端点https://login.microsoftonline.com/common/
。
并且支持的帐户类型必须是“任何组织目录中的帐户(任何 Azure AD 目录 - 多租户)和个人 Microsoft 帐户(例如 Skype、Xbox)”
但是:当您使用 common
端点和个人帐户时,不支持 https://management.azure.com
api。此处只能使用多租户用户。