グループライフサイクルポリシーを特定のグループに適用するAzure関数を作成しようとしましたが、アプリケーションのアクセス許可で失敗します。Microsoftグラフのライフサイクルポリシーがアプリケーションのアクセス許可で動作しない
ユーザー名とパスワードの認証を使用すると、問題なく動作します。
public static string GetAccessTokenForUser(string resourceUri, string aadDomain, string userName, string password)
{
var powershellClientId = "12128f48-ec9e-42f0-b203-ea49fb6af367";
var azureADAuthority = $"https://login.microsoftonline.com/{aadDomain}/oauth/v2/authorize";
var userCreds = new UserPasswordCredential(userName, password);
var authContext = new AuthenticationContext(azureADAuthority, true);
var authResult = AuthenticationContextIntegratedAuthExtensions.AcquireTokenAsync(authContext, resourceUri, powershellClientId, userCreds).GetAwaiter().GetResult();
return authResult.AccessToken;
}
ClientId en ClientSecretを使用すると、常に401 Unauthorized errorが返されます。
public static string GetAccessTokenForClientId(string resourceUri, string aadDomain, string clientId, string clientSecret)
{
var azureADAuthority = $"https://login.microsoftonline.com/{aadDomain}/oauth/v2/authorize";
var clientCreds = new ClientCredential(clientId, clientSecret);
var authContext = new AuthenticationContext(azureADAuthority, true);
var authResult = authContext.AcquireTokenAsync(resourceUri, clientCreds).GetAwaiter().GetResult();
return authResult.AccessToken;
}
その後https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/grouplifecyclepolicy_listで、私は前の関数から
GET https://graph.microsoft.com/beta/groupLifecyclePolicies
をアクセストークンを使用してGET要求を行うドキュメントは、アプリケーションの権限が働くべきであると述べています。アクセストークンには必要なスコープが含まれています。
誰でも確認できますか?
コード、設定ファイル、またはコミュニティがあなたの質問を解決するのに役立つような詳細を追加できますか? – 3Dos
コードサンプルを追加しました。 –