我有两个应用程序服务,它们都是通过从azure门户配置的azure广告身份验证来保护的。
前端应用程序服务是写角的。我遵循的身份验证方法如下。
然而,我观察到,也许第二个应用服务广告允许令牌第一次加载。这是不一致的,并始终提供401未经授权的错误。即使在使用2-3分钟之内。
我不确定这是否是使用id_token的正确方式,还是需要使用其他令牌。
发布于 2020-10-09 01:25:56
这里应该使用的是访问令牌。
在这个场景中,后端应用程序是受保护的web。
正如adp所建议的,您需要遵循具体信息
应用程序注册必须公开至少一个作用域或一个应用程序角色。作用域由代表用户调用的web公开。 应用程序角色是由守护进程应用程序调用的web (代表自己调用web )公开的。 如果您创建了一个新的web API应用程序注册,请选择您的web API接受的访问令牌版本为2。对于遗留的web API,接受的令牌版本可以为空,但此值仅限制组织的登录用户,并且不支持个人Microsoft帐户(MSA)。 web API的代码配置必须验证调用web时使用的令牌。 控制器操作中的代码必须验证令牌中的角色或作用域。
在Github有一个示例。
为了用Azure AD保护您的API,您需要注册两个Azure AD应用程序,一个用于客户端应用程序(前端),另一个用于API应用程序(后端)。
在API应用程序中,您需要公开API。通过执行步骤7和步骤8,您可以公开范围。
然后你需要配置客户端应用程序。通过这里的步骤8,您可以将API应用程序公开的权限(范围)添加到客户端应用程序中。
使用MSAL请求访问令牌,其中包括此权限(范围)。您可以在代码中验证它。如果权限是您所期望的,则允许客户端访问您的API。
https://stackoverflow.com/questions/64268984
复制相似问题