我想使用官方的NuGet库(https://github.com/microsoftgraph/msgraph-sdk-dotnet)使用GraphAPI。然而,认证过程并不是微不足道的,也没有很好的记录。在机器对机器的场景使用MSAL作为CSP
我在一台机器对机器的场景CSP的合作伙伴,所以与重定向URL,其中用户手动输入的凭据同意访问没有UI的应用程序。但它似乎是我找到的样本中记录的或可用的独特方案......即使是官方的CSP文件也不清楚(https://developer.microsoft.com/en-us/graph/docs/concepts/auth_cloudsolutionprovider)。
我先前使用的许多其他的API在生产(和TIP环境)像MSOL,CrestAPI和AzureGraph一个CSP,因此应用程序的所有的配置和注册是没有问题的。
是否有可能在机器对机器场景中使用MSAL作为CSP?是否有任何文档或样本可用于我的用例?
UPDATE
我觉得我是好路径。
首先,我必须在apps.dev.microsoft.com上注册我的应用程序。我的应用程序以前在portal.azure.com上注册过。看起来像AzureAD和Graph有不同的要求,涉及到应用程序必须注册的地方。
其次,我在这里使用示例:https://github.com/Azure-Samples/active-directory-dotnet-daemon-v2。
第三,我可以在提供我的CSP TenantId时调用Graph API。然而,当我尝试调用使用我管理的租户之一的TenantId图形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)
在Connect Sample中启动应用程序时,它会将我重定向到login.microsoftonline.com以进行身份验证,这对我来说并不合适。 我的用例根本不涉及用户。这是一台机器来加工场景。这是因为我是CSP合作伙伴(微软经销商),而不是通过Web应用程序管理我自己的用户的租户。 想象一下,夜间运行的同步作业在作为CSP合作伙伴管理的多个租户上执行一些工作。 –
我认为这将有助于我:https://github.com/Azure-Samples/active-directory-dotnet-daemon-v2 –
是的,守护样品不会有任何最终用户的交互,并可能是对你的情况下更好的榜样!我链接的样本是用户流量,但可以帮助您进一步定位MSAL。 –