如何使用 Azure App Restration 的应用角色来控制 Azure Enterprise 应用中的访问



我有一个WPF桌面应用程序,它连接到Azure注册的应用程序。在注册的应用程序中,我创建了应用程序角色。然后,在Azure Enterprise应用程序中,我添加了一个用户,该用户具有在应用程序注册中创建的应用程序角色之一。但是,我不知道如何使用这个应用程序角色。我似乎无法从身份验证期间返回的JWT令牌访问该角色,也无法使用该角色在Azure中修改访问权限。

如何使用应用程序角色修改访问权限?

首先,您的WPF应用程序不会根据您的描述调用任何API(官方API或您自己的Web API(。

您在应用程序注册中定义了代表您的WPF应用程序的应用程序角色。我们可以称之为客户端应用程序,尽管这里没有服务端应用程序。

因此,在这种情况下,应用程序角色应该存在于id令牌(而不是访问令牌(中。

您需要解析代码中的id令牌,找到应用程序角色,然后进行验证。


还有另一种情况,您实际上正在调用某种API,但您在帖子中没有提到它。

在这种情况下,我认为您希望从访问令牌获取并验证应用程序角色。我们需要在代表服务端应用程序的应用程序注册中定义应用程序角色。

再次出现两种情况。

一个是您正在调用官方的API,例如Microsoft Graph API。这种情况将不允许您在服务端设置应用程序角色,因为我们无权更改Microsoft Graph应用程序的官方注册。如上所述,您需要利用id令牌中的应用程序角色。但通常我们不会像这样控制权限,因为Microsoft Graph有自己的权限控制方法。

第二个是您正在调用Azure上托管的您自己的Web API。我们称之为受AAD保护的Web API。在这种情况下,您需要通过以下受保护的Web API:应用程序注册创建代表您的Web API的应用程序注册,并在此应用程序注册中定义应用程序角色,并在与此应用程序注册关联的企业应用程序中分配应用程序角色。

之后,您可以在访问令牌中获取应用程序角色,并通过以下受保护的web API验证它们:验证作用域和应用程序角色。


尽管我已经解释了所有这些情况,但这可能无法解决您的问题。

看起来你的情况是第一个。您可以首先在中解码您的id令牌https://jwt.ms以确定是否存在应用程序角色。

最新更新