我有以下数值:
如何使用这些值创建Microsoft Graph服务客户端?
var graphClient = new GraphServiceClient(
// What goes here?
);
我需要客户端枚举AAD组。
答案 0 :(得分:1)
根据您的描述,我假设您使用的是AAD v1.0,要使用Microsoft Graph客户端SDK,您需要使用应用程序权限向 Microsoft Graph API添加所需权限或Azure Portal上的AAD应用程序的委派权限。应用程序权限与委派权限之间存在差异,您可以按照here。
对于Web应用程序并使用基于用户的身份验证流程,您可以按照以下示例进行操作:
Calling the Azure AD Graph API in a web application
Microsoft Graph Snippets Sample for ASP.NET 4.6
注意:对于您的方案,您需要合并上述两个示例中的代码。或者你可以创建AAD v2.0应用程序,然后使用第二个样本。
对于服务器到服务器方案,您可以使用ADAL检索访问令牌以初始化GraphServiceClient
:
private static async Task<string> GetAccessTokenAsync()
{
string tenantId = "<tenantId>";
string clientId = "<clientId>";
string clientSecrets = "<clientSecrets>";
Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationResult result = null;
var context = new AuthenticationContext(String.Format("https://login.windows.net/{0}", tenantId));
var authParam = new PlatformParameters(PromptBehavior.Never, null);
var result = await context.AcquireTokenAsync(
"https://graph.microsoft.com"
, new Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential(clientId, clientSecrets)
);
return result.AccessToken;
}
//initialize the GraphServiceClient instance
var graphClient = new GraphServiceClient(
"https://graph.microsoft.com/v1.0",
new DelegateAuthenticationProvider(
async (requestMessage) =>
{
var token = await GetAccessTokenAsync();
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", token);
}));