Office 365 Active Directory的LDAP DirectorySearcher

时间:2016-08-02 17:05:39

标签: active-directory office365 azure-active-directory directoryservices

如果我的服务器中有一个Active Directory设置,其域名是" mydomain.com",我将为此创建LDAP DirectorySearcher。

string domainPath = "LDAP://mydomain.com";
DirectoryEntry entry = new DirectoryEntry(domainPath, "userName", "password");
DirectorySearcher searcher = new DirectorySearcher(entry);

如果我想为Office 365 Active Directory创建DirectorySearcher,那么domainPath是什么?

P.S:我使用' AzureADSync'

与Office 365同步了服务器的Active Directory

1 个答案:

答案 0 :(得分:0)

LDAP仅适用于本地Active Directory。

对于Azure Active Directory,您需要使用图形API(Microsoft GraphAzure Active Directory Graph。有关如何在一个和另一个之间进行选择的信息,请参阅this link < / p>

您需要注册您的应用程序,根据您的目的设置正确的权限,并使用类似于此代码段的代码:

注意:此特定代码段会返回目录中的所有用户:

var authority = "https://login.microsoftonline.com/";
var resource = "https://graph.windows.net/";

var tenant = "mydomain.com";
var clientId = <YourClientID>;
var redirectUri = <YourRedirectUri>;

var ctx = new AuthenticationContext(authority + tenant);

var graphUri = resource + tenant;
var client = new ActiveDirectoryClient(new Uri(graphUri), 
    async () => { 
        var token = await ctx.AcquireTokenAsync(resource, clientId, new Uri(redirectUri), new PlatformParameters(PromptBehavior.Always)); 
        return token.AccessToken;
    });


var users = await client.Users.ExecuteAsync();
users.CurrentPage.Select(u => u.DisplayName).Dump();

这是a link to Azure AD Graph samples。这有关于应用注册,设置权限以及如何从不同平台/场景查询图表的说明。