我正在尝试设置要在Azure AD中使用Oauth 2.0保护的API。我按照此处的步骤操作:https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow。
API具有一个范围-定义了一个应用程序权限。我能够将API权限成功添加到客户端应用程序,并选择了正确的范围,如屏幕截图所示。
但是,当我测试Web应用程序时,在身份验证之后会引发以下错误:
应用程序OAuthClientApp要求提供的作用域方法不符合 t存在于资源2700000003-0000-0000-c000-000000000000上。 与应用程序供应商联系。
答案 0 :(得分:1)
应用程序权限仅在客户端应用程序仅将客户端凭据用于身份验证时适用。
因此,当没有用户参与时,将应用权限。
客户端可以使用范围为your-api-client-id/.default
或your-api-id-uri/.default
的客户端id + secret / certificate获取访问令牌。
客户凭证授予的文档:https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow。
.default
的基本含义是“我的应用程序在注册中静态需要的权限”。
由于必须静态需要应用权限,因此使用它很有意义。
授权代码授予,隐式授予以及其他一些涉及用户的身份验证,并且仅适用委托权限。
请记住,还应授予管理员同意该应用程序的权限。 在屏幕截图中,它表示未获得同意。