2

Azure B2C ユーザーを管理するための Azure Functions アプリを作成できました。client_credentials フローを使用して、新しいユーザーを作成し、プロファイルを問題なく更新できます。ただし、ボディ付きの PATCH リクエストを使用してパスワードを変更すると、次のようになります。

{
  passwordProfile: {
     password: 'password-value',
     forceChangePasswordNextSignIn: false
     },
  passwordPolicies: "DisablePasswordExpiration"
}

次のエラーが表示されます。

 {code: 'Authorization_RequestDenied', message: 'Insufficient privileges to complete the operation.'}

これについて調査したところ、パスワードの更新には委任されたアクセス許可「Directory.AccessAsUser.All」が必要であることがわかりました。フロント エンド アプリケーションから、B2CLogin フローを使用してサインインしているため、アクセス トークンは Graph API と互換性がありません。また、「Directory.AccessAsUser.All」は、B2C アプリケーションのアプリケーション レベルには存在しません。したがって、client_credentials フローでパッチ リクエストを使用することもできません。いくつかの提案によると、「会社の管理者」ロールを割り当てることにより、Azure AD PowerShell でプロセスを実行できます。しかし、Azure 関数を使用してパスワードをリセットする解決策が見つかりませんでした。私は Azure サービスに比較的慣れていないため、段階的な解決策 (存在する場合) は非常に役立ちます。

4

1 に答える 1