AAD를 사용하여 클라이언트를 인증하고 Windows 서비스를 사용하여 자동화하려고합니다. AAD의 .NET의 SDK에서는이 두 가지 방법, AcquireTokenAsync
및 AcquireToken
하지만 나는 await를 호출, 응답이 영원히 남아있을 것입니다 이러한 방법 중 하나를 사용할 수 없습니다와 나는 같은 것을 수행 할 때사용자 이름 및 암호로 Azure Active Directory 토큰 가져 오기
result = authContext.AcquireTokenAsync(resourceHostUri, clientId, new UserCredential(hardcodedUsername, hardcodedPassword)).Result;
을 개체는 Waiting for Activation
상태를 반환합니다. & Code 31
..
이제 하드 코드 된 사용자 이름과 암호를 사용하여 토큰을 획득 할 수 있습니까?
내 전체 코드 :
string hardcodedUsername = "username";
string hardcodedPassword = "password";
string tenant = "[email protected]";
string clientId = "clientId";
string resourceHostUri = "https://management.azure.com/";
string aadInstance = "https://login.microsoftonline.com/{0}";
string authority = String.Format(CultureInfo.InvariantCulture, aadInstance, tenant);
authContext = new AuthenticationContext(authority);
AuthenticationResult result = null;
try
{
result = authContext.AcquireTokenAsync(resourceHostUri, clientId, new UserCredential(hardcodedUsername, hardcodedPassword)).Result;
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
return result;
나는 푸른 API에 대한 액세스 권한을 얻기 위해 노력하고있어.
UPDATE 1 :
Microsoft.IdentityModel.Clients.ActiveDirectory TokenCache을 :
내가
await
에 전화를 시도 할 때 I 출력이있어, 나는이 도움이 될 생각 찾고 ... Microsoft.IdentityModel.Clients.ActiveDirectory TokenCache : 캐시에서 일치하는 토큰을 찾을 수 없습니다. Microsoft.IdentityModel.Clients.ActiveDirectory d__0 : 사용자 영역 검색 요청을 ''(으)로 보내는 중입니다.이름 API 버전 = 1.0 ' Microsoft.IdentityModel.Clients.ActiveDirectory의 d__4 : 해시와 사용자? *** 링크 코드 아래 연합'
'async' 메소드를 만들고'authContext.AcquireTokenAsync()'메소드 호출 앞에'await'을 넣으려고 했습니까? –
예, 응답이 없으면 영원히 걸립니다. 제 질문에 언급했습니다. –
메서드 서명과이 메서드 호출 방법을 포함하여 전체 코드를 공유 할 수 있습니까? –