우리는 B2C를 사용하고 사용자에게 내선 번호 필드로 고객 번호를 저장합니다. 단일 사용자는 하나 이상의 고객을 가질 수 있으며 쉼표로 구분 된 문자열로 저장됩니다.사용자의 사용자 지정 속성으로 Active Directory B2C 검색
은 내가 지금 뭐하는 거지하는 것은 매우 비효율적이다 : 1. 그들이 원하는 확장 속성이있는 경우 각 사용자 3. 모든 사용자에게 2. 가져 오기 확장 등록 정보를 확인하고 그것이 내가 원하는 고객을 포함하는 경우. 4. 원하는 사용자 목록을 작성하십시오.
adClient입니다 내가 adClient입니다을 사용하여 액티브 디렉토리에 하나 개의 쿼리에서이 작업을 수행 할 수 있도록하려는 IActiveDirectoryClient
var users = (await GetAllElementsInPagedCollection(await AdClient.Users.ExecuteAsync())).ToList();
var customersUsers = users.Where(user => user.AccountEnabled.HasValue && user.AccountEnabled.Value).Where(user =>
{
var extendedProperty = ((User) user).GetExtendedProperties().FirstOrDefault(extProp => extProp.Key == customersExtendedProperty.Name).Value?.ToString();
return extendedProperty != null && extendedProperty.Contains(customerId);
}).ToList();
입니다. 이 방법을 사용하면 메서드가 지원되지 않는다는 오류가 발생합니다. 쿼리가 Active Directory에 쿼리하기 위해 쿼리를 작성하고 있다고 가정 할 때 의미가 있습니다.
편집 - 추가 정보 :
나는 다음과 같은 그래프 API를 조회 할 수 있었다 :
이var authContext = await ActiveDirectoryClientFactory.GetAuthenticationContext(AuthConfiguration.Tenant,
AuthConfiguration.GraphUrl, AuthConfiguration.ClientId, AuthConfiguration.ClientSecret);
var url = $"https://graph.windows.net:443/hansaborgb2c.onmicrosoft.com/users?api-version=1.6&$filter={customersExtendedProperty.Name} eq '{customerId}'";
var users = await _graphApiHttpService.GetAll<User>(url, authContext.AccessToken);
하지만, 내 예를 들어 내가 필터링 substringof를 사용해야하지만,이 지원되지 않습니다 Azure Graph API.
에서 정상 DirectorySearcher 클래스를 사용하는 것, 그것은 "extension_guid_someName"형식의 이름을 가진 extenion의 속성입니다? 그리고 확장 속성은 처음에 사용자 계정에 어떻게 적용됩니까? 그것은 Graph API를 통해서입니까? (예 : 사용자가 광고 B2C로 만든 다음 그래프 API를 사용하여 업데이트합니다.) –
예, 확장 필드 란 해당 형식의 확장 속성을 의미합니다. 그래프 API를 사용하여 생성되었거나 더 정확하게, ActiveDirectoryClient 클래스를 사용하고 있으며이 API가 백그라운드에서 그래프 API를 사용한다고 가정합니다. – ruffen
예, ActiveDirectoryClient가 그래프 API를 래핑합니다. ActiveDirectoryClient.Context.ExecuteAsync 이후의 원시 인터페이스에 액세스하여 @ nboettcher의 대답에서 쿼리를 수행 할 수 있습니다. 그러나 $ filter는 'contains'연산을 지원하지 않으며, 'startswith'와 'any'만 다중 값 속성으로 사용할 수 있습니다. (다중 값 확장 속성을 생성 할 수 없습니다.) (아마도 미래에 희망이있을 수 있습니다. (하지만 Azure AD Graph API는 아니며 Microsoft는 Microsoft Graph API 로의 이동을 발표했습니다.) –
Aloraman