如何在 Microsoft App 代理中配置范围

How to configure the scope in an Microsoft App proxy

我尝试将我的内部 Rest Web API 连接到 Microsoft App Proxy。 Appproxy 将 MSAL 与 OAuth2 和 ActiveDirectory 结合使用。全部在 Azure 管理控制台中配置。 可以选择将 MSAL 与 java、javascript 和 C# 一起使用,但由于我尝试在 Salesforce 内的 Apex class 内进行连接,因此我在 SF 内没有 MSAL 库,因此我使用直接休息电话。我已经可以创建一个令牌(见下面的代码)但是当我传递令牌时它说我没有权限。

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,其中涉及以下步骤,

  1. 在活动目录中创建应用程序
  2. 公开一个API
  3. 在 API 中定义范围。

请关注MS Document,这对您有帮助。