2017-10-11 51 views

答えて

0

属性を追加する正しい方法は、 'portal.azure.com'管理ポータルです。

これらの属性がすべてのユーザーに実際に利用可能になる前に、ポリシーを使用してユーザーを作成する必要があります。

もう1つの考慮すべき点は、各環境で拡張名が異なるため、GraphApiから取得したJSONユーザーを解析するためのカスタムロジックが必要であり、属性がで終わることを確認しますその属性を与えた名前。

例:

//Java, sorry 
private YourCustomGraphApiUser populateCustomProperty(JsonNode jsonUser) throws JsonProcessingException{ 

    YourCustomGraphApiUser azureUser = mapper.treeToValue(jsonUser, YourCustomGraphApiUser.class); 
    String[] customAttributeNames = new String()["one","two"]; //Replace this with some values from some injected properties 
    for(String attributeName : customAttributeNames){ 
     JsonNode customAttribute = jsonUser.get(attributeName); 
     if(customAttribute != null){ 
      azureUser.set(attributeName, customAttribute.asText());//Assuming custom attributes are stored in a map-like structure in YourCustomGraphApiUser. 
     } 
     else{       
      throw new NotFoundException("Error getting the name for custom attribute "+attributeName, e); 
      // OR you could ignore and just log an error. Whatever. 
     }   
    } 
    return azureUser; 
} 
+1

カスタム属性をプログラムで追加できないのはなぜですか?私はMyOwnUserを定義するライブラリを持っています。そのユーザーのために私はカスタム属性が必要です。なぜ私は異なるディレクトリのたびにそれらをポータルに追加しますか? – alvipeo

+0

@alvipeoそれは素晴らしい質問です!私は何度も自分自身にそれを尋ねました。これらの属性値を使用できるようになる前に、それらの属性値を使用してアカウントを手動で作成しなければならないということも同じように不満です。私がプログラマティックな創造に没頭したのであれば、私は青空のPowershellのB2Cモジュールをもっと見るかもしれません。私はそれをやったことはありませんが、おそらく、あなたは各環境を設定するスクリプトを作成することができます。私はまだカスタムポリシーで作業していませんが、より多くの初期作業が必要ですが、より構成可能(XMLやもの)であることを理解しています。 – Pytry

+0

私はコードで拡張プロパティを作成するクラスを作成しました。ユーザーからの値を設定/読み取ることで終了する必要があります – alvipeo

1

あなたはグラフAPIを使用して、所望のApplicationオブジェクトにextensionPropertyを作成します。

サンプルJSON要求:

POST https://graph.windows.net/contoso.onmicrosoft.com/applications/269fc2f7-6420-4ea4-be90-9e1f93a87a64/extensionProperties?api-version=1.5 HTTP/1.1 
Authorization: Bearer eyJ0eXAiOiJKV1Qi...r6Xh5KVA 
Content-Type: application/json 
Host: graph.windows.net 
Content-Length: 104 
{ 
"name": "skypeId", 
"dataType": "String", 
"targetObjects": [ 
    "User" 
] 

} 

操作が成功した場合、それがターゲットに書き込む値のために使用することができる完全修飾拡張プロパティ名と共にHTTP 201作成されたステータスコードを返します。タイプ。 参照:azure-ad-graph-api-directory-schema-extensions

関連する問題