MSAL:支持非工作帐户登录以执行Azure操作

MSAL:支持非工作帐户登录以执行Azure操作,azure,azure-active-directory,msal,azure-management-api,Azure,Azure Active Directory,Msal,Azure Management Api,我希望允许人们使用一些部署工具在Azure环境中执行操作 我们目前有一个工作MSAL.js解决方案,支持工作帐户登录并获取范围https://management.azure.com/user_impersonation使用AAD应用程序 要转到支持非工作账户,我们: 已验证我们的应用程序设置为允许所有类型的帐户 将用于登录的端点从/organizations更改为/common 不幸的是,尽管有/common,但它说,当我们提供@gmail之类的账户时,我们需要使用工作或学校账户 如果无法获得

我希望允许人们使用一些部署工具在Azure环境中执行操作

我们目前有一个工作MSAL.js解决方案,支持工作帐户登录并获取范围
https://management.azure.com/user_impersonation
使用AAD应用程序

要转到支持非工作账户,我们:

  • 已验证我们的应用程序设置为允许所有类型的帐户
  • 将用于登录的端点从
    /organizations
    更改为
    /common
  • 不幸的是,尽管有
    /common
    ,但它说,当我们提供@gmail之类的账户时,我们需要使用工作或学校账户

    如果无法获得此API的权限范围,则无法让其他人访问,以便继续。在需要手动提供租户ID和更改登录端点的情况下,用户体验似乎非常落后和糟糕。在此之前,我们只是假设无论租户的AAD帐户是什么,但默认登录获取只返回应用程序的租户id

    可复制示例 您可以在Microsoft演示应用程序中看到这种行为

    OpenID可以处理个人电子邮件

    Azure范围不起作用

    要支持用户模拟Azure中的非工作帐户,登录端点和作用域(或多个步骤!)的正确组合是什么?


    PS以类似的方式表示这可能不可能,这非常令人沮丧。

    确保您的AAD应用程序(6731de76-14a6-49ae-97bc-6eba6914391e)注册为“任何组织目录(任何Azure AD目录-Multitenant)中的帐户和个人Microsoft帐户(例如Skype、Xbox)”

    您还可以通过修改清单文件set
    “signInAudience”:“AzureADandPersonalMicrosoftAccount”
    将现有AAD应用程序切换到此类型

    这将允许个人帐户登录

    更新:

    对不起,我的错。Azure资源应仅可用于工作帐户。个人帐户无法访问Azure资源,因为它没有Azure订阅。当个人帐户作为客人添加到租户中时,它将被视为工作帐户

    如果您点击试试它->登录,您将被重定向到此url:
    https://login.microsoftonline.com/common/oauth2/authorize?client_id=7f59a773-2eaf-429c-a059-50fc5bb28b44&redirect_uri=https%3a%2f%2ftoken.docs.microsoft.com%2fsignin oidc&resource=https%3a%2f%2f%2fmanagement.core.windows.net%2f&response_type=code+id_-token&********************

    这是不支持个人帐户的v1.0终结点

    因此,对于v2.0 endpoint,如果您将AAD应用程序类型设置为任何组织目录中的帐户(任何Azure AD目录-多租户)或任何组织目录中的帐户(任何Azure AD目录-多租户)和个人Microsoft帐户(例如Skype、Xbox)并使用
    组织
    通用
    端点,默认情况下会将您的帐户视为个人帐户,从而阻止您登录

    目前实现它的唯一方法是使用v1.0端点,如下所示:

    https://login.microsoftonline.com/common/oauth2/authorize?client_id=19xxxxxx-68ed-433c-a2c5-5f5cxxxxxx05和响应类型=代码和重定向uri=https://localhost/&response_mode=query&resource=https://management.azure.com/&state=12345


    请记住将AAD应用程序指定为任何组织目录(任何Azure AD目录-Multitenant)中的帐户。以避免该帐户被识别为个人帐户。

    我的应用程序已设置为该帐户。>已验证我们的应用程序是否设置为允许所有类型的帐户MSFT的演示应用程序也设置为类似的-将范围更改为openid,您可以使用个人电子邮件帐户。@Stephlock是否有任何更新?这个问题已经解决了吗?最后我们放弃了@StephLocke。很遗憾,现有的微软技术仍然有很多局限性。如果我的回答有帮助,你可以将其标记为已接受。非常感谢。