具有管理员角色的 Azure AD 保护客户端应用程序调用 Api
Client app calls protected Api by Azure AD with Admin Role
我有点糊涂,我有以下实现:
ASP.net API 使用 Azure AD 保护,具有 Admin role
的用户只能调用此 API,这些角色在 Azure AD 中配置并分配给用户. API 有一个定义的范围 AccessApi
.
Scopes Who can consent Admin consent display name User consent display name State
api://xx User AccessApi AccessApi Enable
在 WebAssembly blazor
中开发的客户端应用程序在没有角色的 Azure AD 中注册和保护,它被配置为使用我的 Api 中的 AccessApi
范围。
API / Permissions name Type Description Admin consent required Status
myApi (1)
AccessApi Delegated AccessApi No
我的困惑是我是否需要为客户端应用程序分配管理员角色以获得将用于访问 API 或 API 范围的令牌 accessApi
就足够了没有任何角色?
知道客户端应用程序的用户是 API 的相同用户,只是角色不同。
由于同一用户同时使用API和客户端应用程序,是否可以通过客户端应用程序使用MS Graph
获取JWT令牌并使用该令牌调用API?
如果你想根据角色控制用户对api的访问,那么你可以使用appRole。设置应用程序的appRole,然后将appRole分配给用户,那么只有分配了appRole的用户才能访问api.
接下来,转到企业应用程序并将 appRole 分配给用户。
此外,切勿尝试使用 ms graph api 的令牌来调用您的自定义 api。这是两个完全不同的api资源,不同的api资源需要申请不同的token!
我有点糊涂,我有以下实现:
ASP.net API 使用 Azure AD 保护,具有 Admin role
的用户只能调用此 API,这些角色在 Azure AD 中配置并分配给用户. API 有一个定义的范围 AccessApi
.
Scopes Who can consent Admin consent display name User consent display name State
api://xx User AccessApi AccessApi Enable
在 WebAssembly blazor
中开发的客户端应用程序在没有角色的 Azure AD 中注册和保护,它被配置为使用我的 Api 中的 AccessApi
范围。
API / Permissions name Type Description Admin consent required Status
myApi (1)
AccessApi Delegated AccessApi No
我的困惑是我是否需要为客户端应用程序分配管理员角色以获得将用于访问 API 或 API 范围的令牌 accessApi
就足够了没有任何角色?
知道客户端应用程序的用户是 API 的相同用户,只是角色不同。
由于同一用户同时使用API和客户端应用程序,是否可以通过客户端应用程序使用MS Graph
获取JWT令牌并使用该令牌调用API?
如果你想根据角色控制用户对api的访问,那么你可以使用appRole。设置应用程序的appRole,然后将appRole分配给用户,那么只有分配了appRole的用户才能访问api.
接下来,转到企业应用程序并将 appRole 分配给用户。
此外,切勿尝试使用 ms graph api 的令牌来调用您的自定义 api。这是两个完全不同的api资源,不同的api资源需要申请不同的token!