2017-09-01 46 views
2

我想使用官方的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

回答

0

您可以使用MSAL执行图形SDK所需的身份验证。有一些使用.NET Graph SDK和MSAL的code snippets,但最好的选择是Connect Sample,它在一个可用的应用程序中显示了这一点。

有关如何使用MSAL一个完整的引导样本,什么该库,签出MSAL .NET Desktop Sample

+0

在Connect Sample中启动应用程序时,它会将我重定向到login.microsoftonline.com以进行身份​​验证,这对我来说并不合适。 我的用例根本不涉及用户。这是一台机器来加工场景。这是因为我是CSP合作伙伴(微软经销商),而不是通过Web应用程序管理我自己的用户的租户。 想象一下,夜间运行的同步作业在作为CSP合作伙伴管理的多个租户上执行一些工作。 –

+0

我认为这将有助于我:https://github.com/Azure-Samples/active-directory-dotnet-daemon-v2 –

+0

是的,守护样品不会有任何最终用户的交互,并可能是对你的情况下更好的榜样!我链接的样本是用户流量,但可以帮助您进一步定位MSAL。 –