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

时间:2017-09-01 15:43:02

标签: msal

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

我是机器对机器方案中的CSP合作伙伴,因此没有带有重定向网址的UI应用程序,用户手动输入其凭据以同意访问权限。但它似乎是我发现的样本中有详细记录或可用的独特场景......即使是官方的CSP文档也不清楚(https://developer.microsoft.com/en-us/graph/docs/concepts/auth_cloudsolutionprovider)。

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

是否可以在机器对机器方案中将MSAL用作CSP?是否有可用于我的用例的文档或示例?

更新

我认为我走的是好路。

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

其次,我在这里使用示例: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

1 个答案:

答案 0 :(得分:0)

您可以使用MSAL执行Graph SDK所需的身份验证。使用带有MSAL的.NET Graph SDK有一些code snippets,但最好的选择是Connect Sample在工作应用中显示这一点。

有关如何使用MSAL以及库的功能的完整指导示例,请查看MSAL .NET Desktop Sample