使用Microsoft Graph更改Azure AD的密码

时间:2017-04-26 05:05:16

标签: c# microsoft-graph azure-ad-graph-api

我计划使用Azure AD Graph API,但随后在Microsoft文档中注意到有关使用Microsoft Graph API的建议。

是否提供了更改用户密码的文档?

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 个答案:

答案 0 :(得分:2)

您可以更新passwordProfile属性以更改当前用户的密码。请参考以下代码:

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

根据documentation,执行此API需要以下范围之一:User.ReadWrite User.ReadWrite.All Directory.ReadWrite.All

修改 documentation已使用以下注释更新:

  

更新passwordProfile属性时,需要以下范围:Directory.AccessAsUser.All

答案 1 :(得分:0)

查看此处:

https://blogs.msdn.microsoft.com/aaddevsup/2018/10/17/unable-to-modify-user-email-phone-number-password-or-other-personal-information-for-azure-active-directory-users/

如果您是从app / api调用的,则需要为该应用的服务主体分配一个AD角色。