2017-10-11 9 views
1

그래프 API를 사용하여 사용자를 만들려고합니다. 사용자 json 객체는 다음과 같습니다. Role이라는 사용자 지정 특성을 만들었습니다. 그래서 사용자를 만드는 동안 나는이 값을 줄 필요가있다. Role. 하지만이 사용자 지정 특성을 포함하는 경우 오류가 발생합니다.그래프 API가있는 Azure AD B2C에서 사용자 지정 특성을 사용하여 사용자 만들기

하나 이상의 속성

내가이 사용자 정의 속성을 지정하지 않을 경우 사용자가 성공적으로 작성 유효하지 않습니다.

var jsonObject = new JObject 
      { 
       {"accountEnabled", true}, 
       {"country", "India"}, 
       {"creationType", "LocalAccount"}, 
       {"givenName","given"}, 
       {"surName","surname"}, 
       {"extension_Role","Admin"}, 
       {"displayName","[email protected]"}, 
       {"passwordPolicies", "DisablePasswordExpiration,DisableStrongPassword"}, 
       {"passwordProfile", new JObject 
       { 
        {"password", "[email protected]"}, 
        {"forceChangePasswordNextLogin", false} 
       } }, 
       {"signInNames", new JArray 
        { 
         new JObject 
         { 
          {"value", "[email protected]"}, 
          {"type", "emailAddress"} 
         } 
        } 
       } 
      }; 

extension_Role은 던지는 오류입니다. 나는 extension_appId_Role을 주려고했다. 그것은이 이름

나는 우리가 사용자를 만들 때 사용자 정의 속성을 추가 할 수 없습니다 추측 존재

없음 확장 속성을 말을하지 않는 다른 오류를 제공합니다. 편집 프로파일을 사용해서 만 업데이트 할 수 있습니다. 내가 틀렸다면 나를 바로 잡아라. 이 사용자 지정 특성을 sign-upedit-profile 정책에 추가했습니다.

참고 : 그래프 API에 적절한 권한을 부여하고 앱 등록 포털을 사용하여 앱을 등록했습니다.

답변 : 답변을 찾았습니다. 그러나 그것이 올바른 행동인지 확실하지 않습니다. b2c-extensions-app 앱 ID를 추가 할 때 맞춤 속성을 삽입 할 수 있습니다. App Registrations에 별도의 앱을 등록했는데 아직 애플리케이션 ID가 default b2c-extensions-app 인 이유가 확실하지 않습니다. App Registrations에 앱을 등록하기 전에 맞춤 사용자 속성을 만들었 기 때문일 수 있습니다.

+0

방금 ​​사용자 정의 속성'extension_ [guid] _my_attribute'를 가진 사용자를 만들었습니다. – spottedmahn

+0

[이 문서를 읽었습니까] (https://docs.microsoft.com/en-us/azure/active-directory-b2c/활성 디렉토리 -b2c-devquickstarts-graph-dotnet # use-custom-attributes)? – spottedmahn

+0

사용자 지정 정책이나 기본 제공 정책을 사용하고 있습니까? – spottedmahn

답변

0

기본 제공 정책을 사용하는 경우 custom attributes을 저장하는 데 사용하는 앱을 제어 할 수 없습니다.

custom policies, see this guide을 사용하여 앱을 구성한 경우 맞춤 속성을 저장하는 데 사용합니다.

<ClaimsProviders> 
    <ClaimsProvider> 
      <DisplayName>Azure Active Directory</DisplayName> 
     <TechnicalProfile Id="AAD-Common"> 
      <DisplayName>Azure Active Directory</DisplayName> 
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> 
      <!-- Provide objectId and appId before using extension properties. --> 
      <Metadata> 
      <Item Key="ApplicationObjectId">insert objectId here</Item> 
      <Item Key="ClientId">insert appId here</Item> 
      </Metadata> 
     <!-- End of changes --> 
      <CryptographicKeys> 
      <Key Id="issuer_secret" StorageReferenceId="TokenSigningKeyContainer" /> 
      </CryptographicKeys> 
      <IncludeInSso>false</IncludeInSso> 
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" /> 
     </TechnicalProfile> 
    </ClaimsProvider> 
</ClaimsProviders> 
0

당신은 가입 정책 (사용자 정의 여부) 중 하나에 대한 이러한 속성을 (그들에게 보여) 활성화하고 설정 값을 갖고 그 정책을 통해 계정을 생성해야합니다. 당신이 그 일을 할 때까지 그 세입자와 전화 번호부에서 이용 가능하지 않을 것입니다.

0

덧글에서 지적한 것처럼 접두어 extension_b2c-extensions-app 속성 이름을 지정해야합니다. 앱 ID는 GUID이지만 하이픈없이 포함되어야합니다.

extension_93ae98b337124e0aaced3698b59f8acb_Role 

b2c-extension-app

ID는 AD의 푸른 B2C 세입자 안에 푸른 포털 All Resources -> App Registrations을 선택하여 볼 수있다. 기본적으로 My apps의 목록을 표시합니다. 드롭 다운을 All apps으로 변경 한 다음 b2c-extension-app을 클릭하고 Application ID을 복사합니다.