Azure 如何在Microsoft应用程序代理中配置作用域

Azure 如何在Microsoft应用程序代理中配置作用域,azure,rest,oauth-2.0,salesforce,msal,Azure,Rest,Oauth 2.0,Salesforce,Msal,我尝试将内部Rest web API连接到Microsoft应用程序代理。 Appproxy使用MSAL和OAuth2以及ActiveDirectory。所有配置都在Azure管理控制台内进行。 可以选择将MSAL与java、javascript和C结合使用,但由于我试图在Salesforce内部的Apex类中进行连接,因此SF中没有MSAL库,因此我使用直接rest调用。我已经可以创建一个令牌(见下面的代码),但当我传递令牌时,它会说我没有权限 headersauth = {'Content-

我尝试将内部Rest web API连接到Microsoft应用程序代理。 Appproxy使用MSAL和OAuth2以及ActiveDirectory。所有配置都在Azure管理控制台内进行。 可以选择将MSAL与java、javascript和C结合使用,但由于我试图在Salesforce内部的Apex类中进行连接,因此SF中没有MSAL库,因此我使用直接rest调用。我已经可以创建一个令牌(见下面的代码),但当我传递令牌时,它会说我没有权限

headersauth = {'Content-Type': 'application/x-www-form-urlencoded'}
uriauth = "https://login.microsoftonline.com/" + TenantID + "/oauth2/v2.0/token"
bodyauth = {'grant_type': "client_credentials",
            "client_id": ClientId,
            "client_secret": ClientSecret,
            "scope": "openid api://" + ClientId + "/.default",
            "response_type": "code"
            }
我认为问题在于范围,但我不确定。 也许MSAL不能与Clientsecret一起使用?
有人能解释一下吗?

不,我们可以将MSAL与客户端机密一起使用

您需要将作用域公开为API,包括以下步骤

  • 在active directory中创建应用程序
  • 公开API
  • 在API中定义作用域

  • 请按照有帮助的说明进行操作。

    您好@Martin,请告诉我们此答案是否对您有帮助。如果是这样,请记住使用复选标记将其标记为答案,以便社区中有类似问题的其他人可以更轻松地找到解决方案。另外,请抽出几分钟让我们知道我们是如何使用此调查链接的-你好,Hari,我们尝试了上述方法,但没有成功。最后,我们在Salesforce中创建了一个带有命名凭据的AutProvider,据我所知,它创建了一个日志用户环境。它是有效的,我们必须继续进行项目,即使我相信您评论的解决方案仍然是最好的,但我们,就像我所说的,我们无法找出我们错过了什么。我们使用了以下链接: