Googleディレクトリサービスを使用してユーザーを更新しようとしていますが、「400パスワードが無効です」というエラーが表示されます。私が使用しているコードは次のとおりです。Googleディレクトリサービスの更新パスワード400無効なパスワード
var certificate = new X509Certificate2(certificatePath, "notasecret",
X509KeyStorageFlags.Exportable);
var sai = new ServiceAccountCredential.Initializer(clientId)
{
Scopes = new[]
{
DirectoryService.Scope.AdminDirectoryUser,
DirectoryService.Scope.AdminDirectoryDomain
}
}.FromCertificate(certificate);
sai.User = "[email protected]";
ServiceAccountCredential credential = new ServiceAccountCredential(sai);
var directoryService = new DirectoryService(new BaseClientService.Initializer
{
ApplicationName = "Admin",
HttpClientInitializer = credential
});
User user = directoryService.Users.Get("[email protected]").Execute();
user.Password = "[email protected]";
directoryService.Users.Update(user, "[email protected]").Execute(); // Error 400 Invalid password
最後の行でエラーが発生します。既存のユーザーを取得 を経由して動作します:
var listRequest = _directoryService.Users.List();
listRequest.Domain = "domain.com";
listRequest.MaxResults = 500;
var results = listRequest.Execute(); // Works fine!
は私が間違って何をしているのですか?
あなたの 'User'オブジェクトに空でない' HashFunction'がありますか?ドキュメントからの注意: "hashFunctionが指定されている場合、パスワードは有効なハッシュキーでなければなりません。" –
私はドキュメンテーションでそれを見落としました。私は次の月曜日に見ていきます。 –
ハッシュ関数を指定しませんでしたが、何らかの理由でそれが機能しませんでした。今SHA1を使用して、それは正常に動作します。 –