Microsoft-Graph - 作为 Azure AD 管理员,您如何为另一个用户获取有效的 access_token
Microsoft-Graph - As an Azure AD Admin how you can get a valid access_token for another user
如果我理解用户 @MarcLaFleur
在这里的回复:Resetting a user's password using Microsoft Graph,如果您是 Azure AD admin
并且想使用 Microsoft Graph API
重置另一个用户的密码,那么您需要为具有 Directory.AccessAsUser.All
权限的用户提供有效的 access_token
,然后您可以更新用户的密码配置文件。
问题:使用 Microsoft Graph,作为 Azure AD 管理员,我们如何为另一个用户获取 access_token
?
我的应用注册的认证页面:
如果您是 Azure AD admin
并且想要使用 Microsoft Graph API 重置另一个用户的密码,您只需要获取管理员帐户本身的令牌,而不是您想要的用户改变。
在这种情况下,您可以使用 auth code flow。
1.In 您的 AD 应用程序,添加如下权限 -> 单击 Grant admin consent for xxx
按钮。
2.Login 您的管理员帐户,在浏览器下方显示url。
https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize?
client_id=<client-id>
&response_type=code
&redirect_uri=<redirect_uri>
&response_mode=query
&scope=https://graph.microsoft.com/.default
&state=12345
3.Use获取令牌的代码。
4.Use普通用户修改密码的token
您也可以使用 Microsoft Graph SDK, use Authorization code provider。
如下所示:
IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
.Create(clientId)
.WithRedirectUri(redirectUri)
.WithClientSecret(clientSecret) // or .WithCertificate(certificate)
.Build();
AuthorizationCodeProvider authProvider = new AuthorizationCodeProvider(confidentialClientApplication, scopes);
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var user = new User
{
PasswordProfile = new PasswordProfile
{
ForceChangePasswordNextSignIn = true,
Password = password,
}
};
await graphClient.Users[userId]
.Request()
.UpdateAsync(user);
如果我理解用户 @MarcLaFleur
在这里的回复:Resetting a user's password using Microsoft Graph,如果您是 Azure AD admin
并且想使用 Microsoft Graph API
重置另一个用户的密码,那么您需要为具有 Directory.AccessAsUser.All
权限的用户提供有效的 access_token
,然后您可以更新用户的密码配置文件。
问题:使用 Microsoft Graph,作为 Azure AD 管理员,我们如何为另一个用户获取 access_token
?
我的应用注册的认证页面:
如果您是 Azure AD admin
并且想要使用 Microsoft Graph API 重置另一个用户的密码,您只需要获取管理员帐户本身的令牌,而不是您想要的用户改变。
在这种情况下,您可以使用 auth code flow。
1.In 您的 AD 应用程序,添加如下权限 -> 单击 Grant admin consent for xxx
按钮。
2.Login 您的管理员帐户,在浏览器下方显示url。
https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize?
client_id=<client-id>
&response_type=code
&redirect_uri=<redirect_uri>
&response_mode=query
&scope=https://graph.microsoft.com/.default
&state=12345
3.Use获取令牌的代码。
4.Use普通用户修改密码的token
您也可以使用 Microsoft Graph SDK, use Authorization code provider。
如下所示:
IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
.Create(clientId)
.WithRedirectUri(redirectUri)
.WithClientSecret(clientSecret) // or .WithCertificate(certificate)
.Build();
AuthorizationCodeProvider authProvider = new AuthorizationCodeProvider(confidentialClientApplication, scopes);
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var user = new User
{
PasswordProfile = new PasswordProfile
{
ForceChangePasswordNextSignIn = true,
Password = password,
}
};
await graphClient.Users[userId]
.Request()
.UpdateAsync(user);