public async Task UsernamePasswordProvider_ShouldGetAccessTokenForRequestIAccount() { UserAssertion assertion = new UserAssertion("access_token"); HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, "http://example.org/foo"); httpRequestMessage.Properties.Add(typeof(GraphRequestContext).ToString(), new GraphRequestContext { MiddlewareOptions = new Dictionary <string, IMiddlewareOption> { { typeof(AuthenticationHandlerOption).ToString(), new AuthenticationHandlerOption { AuthenticationProviderOption = new MsalAuthenticationProviderOption { UserAssertion = assertion, UserAccount = _graphUserAccount } } } } }); AuthenticationResult newAuthResult = MockAuthResult.GetAuthenticationResult(); _mockClientApplicationBase.Setup((pca) => pca.AcquireTokenByUsernamePasswordAsync(_scopes, string.Empty, It.IsAny <SecureString>())) .ReturnsAsync(newAuthResult); UsernamePasswordProvider authProvider = new UsernamePasswordProvider(_mockClientApplicationBase.Object, _scopes); await authProvider.AuthenticateRequestAsync(httpRequestMessage); Assert.IsInstanceOfType(authProvider.ClientApplication, typeof(IPublicClientApplication), "Unexpected client application set."); Assert.IsNotNull(httpRequestMessage.Headers.Authorization, "Unexpected auhtorization header set."); Assert.AreEqual(_silentAuthResult.AccessToken, httpRequestMessage.Headers.Authorization.Parameter, "Unexpected access token set."); }
public async Task OnBehalfOfProvider_ShouldGetNewAccessTokenWithNoUserAssertion() { HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, "http://example.org/foo"); httpRequestMessage.Properties.Add(typeof(GraphRequestContext).ToString(), new GraphRequestContext { MiddlewareOptions = new Dictionary <string, IMiddlewareOption> { { typeof(AuthenticationHandlerOption).ToString(), new AuthenticationHandlerOption { AuthenticationProviderOption = new MsalAuthenticationProviderOption { UserAssertion = null } } } } }); AuthenticationResult expectedAuthResult = MockAuthResult.GetAuthenticationResult(new GraphAccount(_graphUserAccount)); _mockClientApplicationBase.Setup((cca) => cca.AcquireTokenOnBehalfOfAsync(_scopes, It.IsAny <UserAssertion>(), "common")) .ReturnsAsync(expectedAuthResult); OnBehalfOfProvider authProvider = new OnBehalfOfProvider(_mockClientApplicationBase.Object, _scopes); await authProvider.AuthenticateRequestAsync(httpRequestMessage); Assert.IsInstanceOfType(authProvider.ClientApplication, typeof(IConfidentialClientApplication), "Unexpected client application set."); Assert.IsNotNull(httpRequestMessage.Headers.Authorization, "Unexpected auhtorization header set."); Assert.AreEqual(expectedAuthResult.AccessToken, httpRequestMessage.Headers.Authorization.Parameter, "Unexpected access token set."); }
public async Task InteractiveAuthProvider_ShouldGetNewAccessTokenWithNoIAccount() { UserAssertion assertion = new UserAssertion("access_token"); HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, "http://example.org/foo"); httpRequestMessage.Properties.Add(typeof(GraphRequestContext).ToString(), new GraphRequestContext { MiddlewareOptions = new Dictionary <string, IMiddlewareOption> { { typeof(AuthenticationHandlerOption).ToString(), new AuthenticationHandlerOption { AuthenticationProviderOption = new MsalAuthenticationProviderOption { UserAssertion = assertion } } } } }); AuthenticationResult newAuthResult = MockAuthResult.GetAuthenticationResult(); _mockClientApplicationBase.Setup((pca) => pca.AcquireTokenAsync(_scopes, It.IsAny <IAccount>(), UIBehavior.SelectAccount, null, null, _commonAuthority, null)) .ReturnsAsync(newAuthResult); InteractiveAuthenticationProvider authProvider = new InteractiveAuthenticationProvider(_mockClientApplicationBase.Object, _scopes); await authProvider.AuthenticateRequestAsync(httpRequestMessage); Assert.IsInstanceOfType(authProvider.ClientApplication, typeof(IPublicClientApplication), "Unexpected client application set."); Assert.IsNotNull(httpRequestMessage.Headers.Authorization, "Unexpected auhtorization header set."); Assert.AreEqual(newAuthResult.AccessToken, httpRequestMessage.Headers.Authorization.Parameter, "Unexpected access token set."); }
public void Setup() { _graphUserAccount = new GraphUserAccount { Email = "*****@*****.**", Environment = "login.microsoftonline.com", ObjectId = Guid.NewGuid().ToString(), TenantId = Guid.NewGuid().ToString() }; _silentAuthResult = MockAuthResult.GetAuthenticationResult(new GraphAccount(_graphUserAccount), _scopes); _mockClientApplicationBase = new MockPublicClientApplication(_scopes, _organizationsAuthority, false, _clientId, _silentAuthResult); }
public void Setup() { _clientCredential = new ClientCredential("app_secret"); _graphUserAccount = new GraphUserAccount { Email = "*****@*****.**", Environment = "login.microsoftonline.com", ObjectId = Guid.NewGuid().ToString(), TenantId = Guid.NewGuid().ToString() }; _mockAuthResult = MockAuthResult.GetAuthenticationResult(new GraphAccount(_graphUserAccount), _scopes); _mockClientApplicationBase = new MockConfidentialClientApplication(_scopes, "common", false, _clientId, _mockAuthResult); }
public async Task AuthorizationCodeProvider_ShouldGetTokenFromAuthorizationCode() { var newAuthResult = MockAuthResult.GetAuthenticationResult(null, _scopes); string authCode = "Auth_Code"; _mockClientApplicationBase.Setup(cca => cca.AcquireTokenByAuthorizationCodeAsync(authCode, _scopes)) .ReturnsAsync(newAuthResult); AuthorizationCodeProvider authCodeFlowProvider = new AuthorizationCodeProvider(_mockClientApplicationBase.Object, _scopes); var authResult = await authCodeFlowProvider.GetTokenByAuthorizationCodeAsync(authCode); Assert.IsInstanceOfType(authCodeFlowProvider.ClientApplication, typeof(IConfidentialClientApplication), "Unexpected client application set."); Assert.AreSame(newAuthResult.Scopes, authResult.Scopes, "Unexpected scopes set."); }
public void Setup() { _clientCredential = new ClientCredential("appSecret"); _mockAuthResult = MockAuthResult.GetAuthenticationResult(null); _mockClientApplicationBase = new MockConfidentialClientApplication(null, _commonAuthority, false, _clientId, _mockAuthResult); }