나는 푸른 색 액티브 디렉토리로 인증하는 azure에서 애플리케이션을 만들기 위해 this resource을 따라 왔습니다. 이 인증 상호 작용의 토큰을 Exchange 및 EWS 관리 API와 함께 사용하여 로그인하지 않고도 조직의 모든 사람을 가장하려고합니다.Azure AD 앱 전용 액세스 토큰 교환
나는 하늘에 우리 조직의 앱을 등록하고 교환 권한을주었습니다. 이것은 EWS 관리와 상호 작용하는 코드를 토큰과 인증서를 만들고 그것으로 우리의 푸른 응용 프로그램을 설정 한 후, 다음 코드를 통해 ADAL를 사용하여 응용 프로그램 전용 액세스 토큰 ...
string authority = "https://login.windows.net/{tenant}/oauth2/authorize";
AuthenticationContext authenticationContext = new AuthenticationContext(authority, false);
var certPath = @"C:\path\to\cert\Cert.pfx";
var certfile = System.IO.File.OpenRead(certPath);
var certificateBytes = new byte[certfile.Length];
certfile.Read(certificateBytes, 0, (int)certfile.Length);
var cert = new X509Certificate2(
certificateBytes,
PRIVATE_KEY_PASSWORD,
X509KeyStorageFlags.Exportable |
X509KeyStorageFlags.MachineKeySet |
X509KeyStorageFlags.PersistKeySet);
ClientAssertionCertificate cac = new ClientAssertionCertificate(CLIENT_ID, cert);
var token = await authenticationContext.AcquireTokenAsync("https://outlook.office365.com/", cac);
를 얻을 수 있습니다 API는 다음과 같습니다 ..
는ServicePointManager.ServerCertificateValidationCallback = CertificateValidationCallBack;
_ExchangeService = new ExchangeService(ExchangeVersion.Exchange2013_SP1) {
Credentials = new OAuthCredentials(token),
Url = new Uri("https://outlook.office365.com/ews/exchange.asmx"),
ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.PrincipalName, "[email protected]"),
};
_ExchangeService.HttpHeaders.Add("X-AnchorMailbox", "[email protected]");
이 모든 요청은 401 권한이없는 오류를 반환하지만, 관리 API를 통해 가장을 설정하는 올바른 방법이 될 것으로 보인다.
제 질문은 여기까지 나옵니다. 제가 여기서 뭔가 잘못하고있는 것입니까? 아니면 응용 프로그램에 Exchange 서버에 대한 액세스 권한을 부여하기 위해 필요한 다른 것이 있습니까?
내가 수행 한 내용은 고객 동의 흐름을 언급했지만 그 부분의 세부 사항은 분명하지 않습니다. 처음에 동의하라는 메시지를 표시하지 않고 모든 사람에게 내 앱을 허락 할 수 있습니까?
이것은 정확히 내가 필요한 것입니다. 방금 응용 프로그램 권한을 적용하는 것을 잊었습니다. 도와 줘서 고마워. – dannylindquist
안녕하세요. 저는 401 번 오류와 마주하고 있습니다. https://stackoverflow.com/questions/45614307/401-unauthorized-while-subscribing-to-push-notifications-with-exchange-service-a 필요한 권한을 부여했습니다. 푸른 포털에 내 애플 리케이션하지만 여전히 행운. – tavier