将自定义声明从Angular应用传递到dotnet核心Web API

问题描述 投票:0回答:1

我有一个正常工作的Angular 9应用,该应用调用了Dotnet核心3.1 Web API后端以返回数据。我使用@ angular / msal MSAL库对其进行保护,该库在angular应用程序上对AzureAD用户进行身份验证,然后将AzureADBearer令牌发送到API以访问终结点。在角度应用程序上,我们有一个使用Microsoft Graph获取的employeeID。我们希望将其传递给Web api,以便在某些控制器中使用它。我可以通过访问HttpContextAccessor从api获得身份验证用户的声明,我看到用户名,电子邮件,sid ...等。我的问题是,无论如何都要传递该employeeID,以便我可以获取它索赔?我不确定这是否可能。 AzureAD允许在其配置中添加可选的其他声明,但是employeeID不在列表中。我有2种不理想的解决方法,如果可能的话,我不希望这样做。

  1. 将控制器中的employeeID传递给端点,然后对其进行访问。这为我们的路线增加了很多提取部分。
  2. 使用我们数据库中的映射表将用户名映射到电子邮件ID,以便我们可以使用声明获取用户名,然后查找employeeID。问题是有时用户更改了其用户名,而我们将不得不以某种方式维护此映射表。 sid也可以更改,因为用户可以休假,因此他们对Azure的访问权限也会被删除。该用户回来后,​​将使用新的sid创建一个新帐户。 employeeID是唯一不会更改的标识符。
angular azure .net-core azure-active-directory microsoft-graph
1个回答
0
投票

您可以按照此处使用版权声明映射功能https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-claims-mapping

这可以让您发出不在默认声明或可选声明中的声明。

© www.soinside.com 2019 - 2024. All rights reserved.