其他问题,我使用 PowerShell 创建的应用程序服务在 Azure 门户中不可见,这是否正常?
我们可以通过搜索 appPrincipalId 来找到 PowerShell 创建的服务主体,如下所示:
Update
要执行 Azure AD Graph 的更改密码 REST API,我们需要提供委托访问令牌。在这种情况下,我们可以使用资源所有者密码凭证流程需要用户的用户名和密码进行身份验证。要使用此流程,我们可以注册服务主体,如下所示:
$app = New-AzureRmADApplication -DisplayName "appPS2" -HomePage "https://adb2cfei.onmicrosoft.com/appPS2" -IdentifierUris "https://adb2cfei.onmicrosoft.com/appPS2" -Password "123"
New-AzureRmADServicePrincipal -ApplicationId $app.ApplicationId
然后我们需要登录Azure经典门户来授予委托权限Directory.AccessAsUser.All
如下图:
这是使用以下方法获取令牌的代码资源所有者密码凭证流程:
Post: https://login.microsoftonline.com/adb2cfei.onmicrosoft.com/oauth2/token
resource=https%3a%2f%2fgraph.windows.net&client_id={ $app.ApplicationId}&grant_type=password&username=fx%40adb2cfei.onmicrosoft.com&password={currentPassword}&client_secret=123
然后我们可以使用这个令牌来更改登录用户的密码,如下所示:
POST: https://graph.windows.net/adb2cfei.onmicrosoft.com/me/changePassword?api-version=1.6
authorization: bearer {access_token}
content-type: application/json
{
"currentPassword":"{currentPassword}",
"newPassword":"{newPassword}"
}