특정 그룹에 그룹 수명주기 정책을 적용하는 Azure 함수를 만들려고했지만 응용 프로그램 권한으로 실패합니다.Microsoft Graph Lifecycle Policies가 응용 프로그램 권한과 작동하지 않습니다.
사용자 이름과 암호 인증을 사용하면 문제없이 작동합니다.
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를 사용하는 경우 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;
}
은 그 때 나는
GET https://graph.microsoft.com/beta/groupLifecyclePolicies
문서 https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/api/grouplifecyclepolicy_list에서이 응용 프로그램의 사용 권한이 작동해야한다고 이전 함수에서 액세스 토큰을 사용하여 GET 요청을한다. 액세스 토큰에 필요한 범위가 포함되어 있는지 확인했습니다.
아무도 확인할 수 있습니까?
코드, 설정 파일 또는 커뮤니티가 질문을 해결하는 데 도움이 될만한 정보를 추가 할 수 있습니까? – 3Dos
코드 샘플을 추가했습니다. –