Azure active directory 将Active Directory应用程序角色与社交帐户一起使用
Azure Active Directory应用程序角色是否仅支持同一租约中的帐户 我正在尝试使用Azure Active Directory对我的租约、其他人和社交帐户上的用户进行身份验证,并能够手动分配不同的应用程序级别角色 我想要的是:Azure active directory 将Active Directory应用程序角色与社交帐户一起使用,azure-active-directory,msal,Azure Active Directory,Msal,Azure Active Directory应用程序角色是否仅支持同一租约中的帐户 我正在尝试使用Azure Active Directory对我的租约、其他人和社交帐户上的用户进行身份验证,并能够手动分配不同的应用程序级别角色 我想要的是: 用户可以使用这些方法中的任何一种进行注册,我可以在Azure portal的企业应用程序的“用户和组”页面中看到它们(或者我可以邀请他们)。我会通过“添加用户/组”按钮分配应用程序角色(特定于我的应用程序的角色,例如工程师/技术员/住宅用户) 登录到我的
- 用户可以使用这些方法中的任何一种进行注册,我可以在Azure portal的企业应用程序的“用户和组”页面中看到它们(或者我可以邀请他们)。我会通过“添加用户/组”按钮分配应用程序角色(特定于我的应用程序的角色,例如工程师/技术员/住宅用户)
- 登录到我的应用程序时,我通过
idTokenClaims.roles[]
- 这适用于已经在my Azure租约中的用户帐户。但对于其他Microsoft帐户(例如
或使用任何电子邮件地址创建的MS帐户),用户登录后不会出现在Azure portal中,除非我手动邀请他们。在邀请他们(并接受邀请)之后,我看到一个像theirname@outlook.com
这样的用户。我可以将应用程序角色分配给此用户,但不会返回他们的theirname\u outlook.com\EXT\35;@mytenancy.onmicrosoft.com
idTokenClaims.roles[]
- 其他社交账户(如Twitter、facebook)似乎根本不受支持
https://login.microsoftonline.com/Enter_the_Tenant_Id_here
应为以下内容之一:
- 如果应用程序支持此组织目录中的帐户,请将此值替换为租户ID或租户名称。例如,contoso.microsoft.com
- 如果应用程序支持任何组织目录中的帐户,请将此值替换为组织
- 如果应用程序支持任何组织目录中的帐户和个人Microsoft帐户,请将此值替换为
common
- 若要将支持仅限于个人Microsoft帐户,请将此值替换为
消费者
https://login.microsoftonline.com/common
。这显示了一个UI,允许您使用任何组织或个人MS帐户,或使用任何电子邮件地址注册个人MS帐户。但是我注意到为个人帐户返回的objectId
与我在azure portal中手动邀请帐户时的id不同。我改为使用我的TenantID
,效果不错。以前通过门户邀请的个人帐户可以登录。其他个人帐户出现错误,无法登录。现在将为这些个人帐户返回应用程序角色。这部分解决了我原来的问题,但我仍然有一些未解决的问题:
- 此方法显示的UI稍有不同,不允许用户在此流中注册新的MS帐户
- 我仍然无法使用其他oauth帐户,例如Twitter/Facebook。这些完全不支持应用程序角色吗
- 上面引用的说明似乎不正确,很明显,一旦他们被邀请加入应用程序,就可以通过
(而不是TenentID
)使用“任何组织目录中的帐户和个人Microsoft帐户”登录common
- 应用程序角色绝对支持来宾帐户。但是正如您所看到的,来宾帐户的id令牌似乎不包含
角色
声明,并且不清楚这是否是设计的。但是角色
声明将出现在访问令牌中
我认为您可以使用访问令牌,并且访问令牌还包含用户信息
appRole
当然支持社交帐户,您只需解析访问令牌,然后查看角色
声明。是否有更新?您在此处使用了什么权限来获取令牌<代码>https://login.microsoftonline.com/common或/TenantId
?看我的update@rockgecko我使用/TenantId
,因为我需要将个人帐户添加到Azure ad以向帐户授予应用程序角色。