2017-04-26 26 views
1

Azure AD Graph APIを使用する予定でしたが、Microsoft Graph APIの使用に関するMicrosoftのドキュメントに気付きました。Microsoft Graphを使用してAzure ADのパスワードを変更します。

ユーザーのパスワードを変更するためのドキュメントはありますか?私はこれで十分であるとは思わないしかし

string result = Task.Run(async() => { return await GetAccessToken(); }).GetAwaiter().GetResult(); 

var graphserviceClient = new GraphServiceClient(
    new DelegateAuthenticationProvider(
     (requestMessage) => 
     { 
      requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", result); 

      return Task.FromResult(0); 
     })); 

var changePasswordRequest = graphserviceClient.Me.ChangePassword("oldpassword", "newpassword"); 

。利用可能なドキュメントはありますか?

答えて

2

passwordProfileプロパティを更新して、現在のユーザーのパスワードを変更できます。

await graphClient.Me.Request().UpdateAsync(new User 
{ 
    PasswordProfile = new PasswordProfile 
    { 
     Password = "YourPassword", 
      ForceChangePasswordNextSignIn = false 
    }, 
}); 

そしてdocumentationに応じて、以下のスコープのいずれかが、このAPIを実行するために必要とされています:User.ReadWriteUser.ReadWrite.AllDirectory.ReadWrite.Allをコード以下を参照してください。

編集: documentationは、以下のノートで更新されました:

passwordProfileプロパティを更新する場合、以下の範囲が必要です:Directory.AccessAsUser.Allを。

+1

個人的に私はすべてのパスワードをリセットしても、パスワードをリセットできませんでした。サービスプリンシパルを会社の管理者にするだけで、パスワードをリセットする権限が得られます。当時、ドキュメントは間違っていました。 – juunas

+0

AFAIK、Azure Active Directory PremiumまたはBasicのみがユーザー(管理者ではない)にパスワードをリセットさせる可能性があります。そうしないと、管理者のみが無料のバージョンでユーザーのパスワードをリセットできます。 –

+0

'passwordProfile'プロパティを更新するとき、委任された' Directory.AccessAsUser.All'スコープが必要です。管理者は別のユーザーのパスワードを変更することができます。 –

関連する問題