Oauth 2.0 是否可以使用OAuth-客户端凭据授予类型获取Azure Blob存储的访问令牌?

Oauth 2.0 是否可以使用OAuth-客户端凭据授予类型获取Azure Blob存储的访问令牌?,oauth-2.0,azure-active-directory,azure-storage-blobs,msal,Oauth 2.0,Azure Active Directory,Azure Storage Blobs,Msal,我正在准备访问Azure Blob中的外部存储的授权请求。我希望服务应用程序使用OAuth访问该存储,并且由于访问是由服务完成的(没有真正的用户执行该服务),因此我希望使用。我正在使用Azure Active Directory管理用户和应用程序的注册和权限,因此授权端点将是Azure,它将授予我访问令牌 我使用过其他服务,比如OAuth凭据访问(在这种情况下,我不能使用它,因为它需要用户手动登录),甚至(不建议使用,但我同时管理服务和存储,因此可以实现它。缺点是,应用程序以用户身份登录,出于安

我正在准备访问Azure Blob中的外部存储的授权请求。我希望服务应用程序使用OAuth访问该存储,并且由于访问是由服务完成的(没有真正的用户执行该服务),因此我希望使用。我正在使用Azure Active Directory管理用户和应用程序的注册和权限,因此授权端点将是Azure,它将授予我访问令牌

我使用过其他服务,比如OAuth凭据访问(在这种情况下,我不能使用它,因为它需要用户手动登录),甚至(不建议使用,但我同时管理服务和存储,因此可以实现它。缺点是,应用程序以用户身份登录,出于安全考虑,我不希望这样做。)

我一直在努力做到这一点,但仍然没有运气。当遵循指南并在Azure中注册API时,我只能选择委派权限,而不能选择适合这些需要的应用程序权限,附带了几个screnshot

因此,总而言之,我正在尝试实现客户端凭据类型,但无法获得有效的令牌。是否可以使用此类型获取授权?如果是的话,你能给我一个快速的指导吗


谢谢

您没有指定错误。如果它只是说访问被拒绝,那么只需将服务主体添加到您尝试访问的blob或存储帐户的rbac角色中。然后,您的应用程序应该具有调用Azure存储的存储的权限,这可能与其他授权方法不同。您不能在API权限中直接向服务应用程序授予应用程序权限。这是因为您的应用程序没有RBAC角色

如果您已准备好访问Azure Blob中外部存储的授权请求,请按照以下过程操作:

Azure门户>存储帐户>搜索并选择您的存储帐户>访问控制(IAM)>添加角色分配以将服务主体添加到您的存储帐户(这相当于您在
API权限中向您的服务应用程序授予
应用程序权限

然后我们在《邮差》中测试:


顺便说一下,您应该参考此文档:

对不起,我无法获取令牌。在遵循了整个指南之后,当我试图通过邮递员或使用代码(而不是接收令牌)获取令牌时,我会收到指向登录窗口的重定向。真正的问题是知道客户端是否可以授予身份验证?如果可能的话,怎么做?如果我的答案对你有帮助,你可以接受它作为答案(点击答案旁边的复选标记,将其从灰色变为填充)。See可以对其他社区成员有益。谢谢您解决了,我必须添加2017-11-09或更高版本才能获得。它已在您添加的文档中指定