繁体   English   中英

Azure AD B2C单页应用程序角色

[英]Azure AD B2C Single Page App Roles

我们正在尝试将Azure AD B2C集成到SPA中。 我们希望在票证中包含“角色”,以便我们可以在api中使用AuthorizeRoles和IsInRole。 我们看了几个例子。

例子1

例子2

第一个示例不是SPA,也不包含角色。 根据下面的链接,不支持使用Azure AD B2C在票证中包括成员资格和组。

Azure AD B2C组成员资格功能反馈

上面建议的解决方法似乎是按照下面的方式使用“ OnAuthorizationCodeReceived”事件来向故障单注入/添加您自己的角色声明。

解决方法

我们遇到的问题是我们正在使用SPA,因此我们需要遵循示例2,我们还需要能够将自己的管理角色添加到票证中,这是不受支持的功能,但是Microsoft表示存在一种解决方法,因为如图所示。 但是,该解决方法不适用于示例2中的MSAL.js。

我们如何使用MSAL.js库将自己的托管角色包含在故障单中,以便将Azure AD B2C集成到SPA中,从而使我们能够在api中使用AuthorizeRoles和IsInRole?

首先,您提到要使用MSAL.js库,这意味着v2端点。 当前(截至2018年5月16日),v2端点对角色和组具有限制,请参阅v2限制 ,其中指出:

v2.0端点不支持ID令牌中的发布角色或组声明。

ID 令牌与V2端点隐式流程中使用,在这里看到的Azure的广告V2温泉设置向导和阅读有关中途下更多信息下跌

底线是绝对要确保v2端点(和MSAL库)可以满足您的要求。

就我自己而言,我们最终选择了v1端点和ADAL库,部分原因是因为这样的限制。 但是,这里有一些在代码中使用角色的示例。 请注意,这些存储库是相当新的,我仍在构建文档。 有两个资源库,一个是独立的angularjs ui项目,另一个是一组API(它们是我在codecamp演示中使用的演示)。 在下面阅读有关AAD中角色的信息。 仅UI示例使用ADAL库(请注意:ADAL和MSAL库是关于在客户端中管理令牌的,而不是用于锁定后端的库)。

API: https//github.com/BgRva/aad_adal_api_dn_std/tree/Step_C

用户界面: https//github.com/BgRva/aad_adal_ui_ng_js/tree/Step_C

有关AAD中角色的一些说明:

  • 角色是特定应用程序的 ,因此在上面的示例中,必须为将要使用它们的所有应用程序注册相同的角色(这也包括角色ID)
  • 您可以在AAD中为用户分配多个角色,只需将它们添加到具有不同选择角色的该应用程序中多次即可。
    • 手动将用户添加到角色将无法扩展,并且需要在门户中进行大量单击。 通过组可以更轻松地进行管理,但是只有在AAD Premium Level 2上您才能获得此好处
    • 大概有一种方法可以以编程方式添加角色,但我还没有找到任何相关信息

干杯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM