在机器对机器场景中使用 MSAL 作为 CSP

2024-01-24

我正在尝试使用官方 nuget 库来使用 GraphAPI (https://github.com/microsoftgraph/msgraph-sdk-dotnet https://github.com/microsoftgraph/msgraph-sdk-dotnet)。然而,身份验证过程并不简单,而且没有很好的记录。

我是机器对机器场景中的 CSP 合作伙伴,因此不存在带有重定向 url 的 UI 应用程序,用户需要手动输入其凭据以同意访问。但这似乎是我发现的示例中有详细记录或可用的独特场景...甚至官方 CSP 文档也不清楚(https://developer.microsoft.com/en-us/graph/docs/concepts/auth_cloudsolutionprovider https://developer.microsoft.com/en-us/graph/docs/concepts/auth_cloudsolutionprovider).

我之前在生产(和 TIP 环境)中使用了许多其他 API 作为 CSP,例如 MSOL、CrestAPI 和 AzureGraph,因此应用程序的所有配置和注册都不是问题。

是否可以在机器对机器场景中使用 MSAL 作为 CSP?有适用于我的用例的任何文档或示例吗?

UPDATE

我想我正走在好的道路上。

首先,我必须在 apps.dev.microsoft.com 上注册我的应用程序。我的应用程序之前已在 Portal.azure.com 上注册。看起来 AzureAD 和 Graph 对于应用程序必须注册的位置有不同的要求。

其次,我在这里使用示例:https://github.com/Azure-Samples/active-directory-dotnet-daemon-v2 https://github.com/Azure-Samples/active-directory-dotnet-daemon-v2 .

第三,当我提供我的 CSP TenantId 时,我可以调用 Graph API。但是,当我尝试使用我管理的租户之一的 TenantId 调用 Graph API 时,我得到了:

{  "error": {
"code": "Authorization_IdentityNotFound",
"message": "The identity of the calling application could not be established.",
"innerError": {
  "request-id": "7cab3137-b3e7-4622-9123-e47f2c018c56",
  "date": "2017-09-04T14:48:34"
} } }

(我的用例中无法拥有同意页面,因此我尝试使用以下方式为所有消费者预先同意我的应用程序:https://developer.microsoft.com/en-us/graph/docs/concepts/auth_cloudsolutionprovider https://developer.microsoft.com/en-us/graph/docs/concepts/auth_cloudsolutionprovider)


您可以使用MSAL https://github.com/AzureAD/microsoft-authentication-library-for-dotnet执行 Graph SDK 所需的身份验证。有一些代码片段 https://github.com/microsoftgraph/aspnet-snippets-sample将 .NET Graph SDK 与 MSAL 结合使用,但最好的选择是连接样品 https://github.com/microsoftgraph/aspnet-connect-rest-sample这在一个正在运行的应用程序中显示了这一点。

有关如何使用 MSAL 以及该库的功能的完整指导示例,请查看MSAL .NET 桌面示例 https://learn.microsoft.com/en-us/azure/active-directory/develop/guidedsetups/active-directory-windesktop.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在机器对机器场景中使用 MSAL 作为 CSP 的相关文章

随机推荐

  • Gradle Eclipse WTP:War 文件包含在另一个 war 文件中

    我有两个网络 战争 项目 A 和 B B 取决于 A 当我构建 B 时 A 按预期作为 A jar 包含在 B 的 WEB INF 中 我还使用 Gradle 的 eclipse 和 eclipseWtp 插件来生成 Eclipse 项目
  • 将分类器投入生产

    我已经使用 joblib 保存了分类器管道 vec TfidfVectorizer sublinear tf True max df 0 5 ngram range 1 3 pac clf PassiveAggressiveClassifi
  • 如何在 C++ 中使用 gnuplot?

    我想用 C 程序生成的 x y 点绘制一些图形 我可以从终端通过 gnuplot 命令成功绘制这些数据 但我想从 C 程序中绘制同样的东西 这在 ubuntu 16 04 lts 中可能吗 当然 只需使用标准包命令安装 gnuplot su
  • 这会导致C++内存泄漏吗?

    我对 C 内存管理有疑问 这 显然 与引用和指针有关 假设我有一堂课Class用一种方法my method OtherClass Class my method OtherClass other object new OtherClass
  • 按标签过滤和选择

    如何通过选择和忽略标签来获取最新的指标 例如 以下查询 last over time application version site NYC instance Test id 1h 返回以下项目 application version i
  • 使用 Jersey 客户端的连接池

    我对泽西岛很陌生 我进行了搜索 但无法弄清楚是否有办法进入泽西客户 to use 连接池而不是每次发送新请求时都创建连接 整个想法是重用池中的连接集 这将节省大量资源 仅供参考 我不是在寻找连接 保持活动状态 这就是我现在正在做的事情 pu
  • 使用约束 B 样条线近似形状轮廓

    我正在寻找一种生成约束样条线的可能性 以近似形状 在我的例子中 是足迹轮廓 作为原始数据 我有一个包含数百个 xy 坐标对的表 这些坐标是从足迹边界收集的 样条曲线应该只近似数据点 样条曲线不需要通过数据点 我希望能够在一定程度上平滑样条线
  • {m}{n}(“正好n次”两次)是如何工作的?

    所以 以某种方式 玩弄 我发现自己有一个正则表达式 比如 d 1 2 从逻辑上讲 对我来说 这应该意味着 一个数字恰好一次 恰好两次 即一个数字正好两次 但事实上 它似乎只意味着 一个数字恰好一次 因此忽略了 2 String regex
  • 如何在 PHP 中创建受密码保护的存档文件?

    我需要能够使用 PHP 创建带有密码保护的存档 zip 文件 我正在使用 Laravel 5 4 和 PHP 7 1 版本 我看了这个链接here http php net manual en class ziparchive phpPHP
  • 未调用导航栏约 8 像素内的触摸事件

    我有一个带有三个按钮的应用程序 实际上UIView s 水平放置下导航栏 这三个按钮的尺寸足够大 例如 比后退按钮大 但是当点击大致位于顶部三分之一部分时 它们不会响应触摸 我知道导航栏正下方的这个区域是为后退按钮和其他 UINavigat
  • iPhone 上的滚动 div 无需使用 2 个手指?

    我的 iPhone 应用程序中嵌入了 UIWebView 我希望始终在页面上保留锁定的页眉和页脚 DIV 并具有可滚动的中心 DIV 我知道我可以使用 UIView 控件的页眉 页脚来做到这一点 但我希望页眉和页脚是 HTML div 因为
  • rollup 是否将node_modules 捆绑到bundle.js 中?

    我正在试驾rollupjs https rollupjs org using rollup with npm将节点应用程序打包成bundle js我很困惑 rollup 是否支持捆绑全节点应用程序 包括node modules 或者只是项目
  • Kubernetes 中 Docker 容器内的互联网连接

    我有一个基于 jenkins slave 容器的 Kubernetes pod 我在特权模式下安装了 docker 套接字和 docker 二进制文件以及必要的内核模块 在该 pod 内 我构建了 Docker 镜像 并在该镜像上运行 do
  • 使用 xlrd 在 Python 3 中将 xls 转换为 csv

    我使用带有 xlrd 和 csv 模块的 Python 3 3 将 xls 文件转换为 csv 这是我的代码 import xlrd import csv def csv from excel wb xlrd open workbook M
  • 如何以树(多维数组)的形式存储和检索 Apache Solr 字段?

    我需要将结果存储和检索为多维树 而不是平面 键 gt 值 对 让我用一个例子来解释 我有很多类别的产品 每个类别都有一个优先级值 样本结构 name Sample Product categories category Category 1
  • NOT IN 查询不起作用,SQL Server 2008

    之前查询的第一部分not in运行并给我一个包含 100 条记录的列表 第二个查询运行并给出 75 条记录的列表 我正在尝试编写的查询not in是获取一个结果集中的记录 而不是另一个结果集中的记录 我得到的错误是incorrect syn
  • 如何查找我的系统中安装了哪个版本的 TensorFlow?

    我需要找到我安装的 TensorFlow 版本 我正在使用 Ubuntu 16 04 长期支持 这取决于您安装 TensorFlow 的方式 我将使用与TensorFlow的安装说明 https www tensorflow org ver
  • SharePoint Designer 工作流程 - 提示和资源?

    我正在努力修改一些现有的 SPD WF 并努力解决一些概念 包括为什么 2 个看起来相似的 WF 不会产生相同的输出 你们中是否有人使用过 SharePoint Designer 工作流并知道任何好的资源 比 MSDN 介绍更详细 或有关此
  • 如何隐藏 UIImagepickercontroller 中的状态栏?

    我是 iOS 开发新手 我试图隐藏状态栏UIImagePickerController 每当我单击 拍照 时 就会出现状态栏 它并不隐藏 我希望状态栏仅隐藏在UIImagePickerController 这是我的代码 IBAction t
  • 在机器对机器场景中使用 MSAL 作为 CSP

    我正在尝试使用官方 nuget 库来使用 GraphAPI https github com microsoftgraph msgraph sdk dotnet https github com microsoftgraph msgraph