我正在 RHEL 8 Linux 服务器上托管的 posit workbench 的 rstudio ide 上运行 R 脚本。我正在尝试使用授权代码方法使用 Azureauth R 包连接到 azure 应用程序。当我运行脚本时,本地主机拒绝连接,但 Azureauth R 包的设备代码方法也适用。
下面是我尝试连接azure应用程序的R代码。
R 脚本 -
library(AzureAuth)
redirect <- "http://localhost:1410" token <- AzureAuth::get_azure_token( "My_Resource",
"My_Tenant_ID",
"My_App_ID",
use_cache = FALSE,
auth_type = "authorization_code", authorize_args=list(redirect_uri=redirect) )
错误 - 本地主机拒绝连接**
但是相同的代码可以通过 azureauth r 包的设备代码方法工作
auth_type = "device_code"
我尝试打开新弹出的浏览器 URL,该 URL 通过 Linux 终端命令给出 localhost 拒绝连接错误
curl pop_browser_url
,这是身份验证,没有任何错误。
我使用 R 中的 Authorization_code 流成功从 Azure AD 检索了访问令牌。
我在 Web 下的 Azure AD 应用程序的重定向 URI 中添加了以下 URL,如下所示。
http://localhost:1410
代码:
library(AzureAuth)
library(httr)
library(jsonlite)
redirect <- "http://localhost:1410"
resource <- "https://graph.microsoft.com"
tenant_id <- "<tenantID>"
app_id <- "<appID>"
token <- AzureAuth::get_azure_token(
resource = resource,
tenant = tenant_id,
app = app_id,
use_cache = FALSE,
auth_type = "authorization_code",
authorize_args = list(redirect_uri = redirect)
)
print(token)
cat("Access Token: ", token$credentials$access_token, "\n")
输出:
以下代码成功运行并在浏览器中重定向到以下页面以登录到我的Azure帐户。
我登录后验证成功如下图。
我使用授权码流程检索了访问令牌,如下所示。