public async Task IntegratedWindows_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.AcquireTokenByIntegratedWindowsAuthAsync(_scopes)) .ReturnsAsync(newAuthResult); IntegratedWindowsAuthenticationProvider authProvider = new IntegratedWindowsAuthenticationProvider(_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 IntegratedWindows_ShouldCreatePublicClientApplicationWithMandatoryParams() { IClientApplicationBase clientApp = IntegratedWindowsAuthenticationProvider.CreateClientApplication(_clientId); Assert.IsInstanceOfType(clientApp, typeof(PublicClientApplication), "Unexpected client application set."); Assert.AreEqual(_clientId, clientApp.ClientId, "Wrong client id set."); Assert.AreEqual(string.Format(AuthConstants.CloudList[NationalCloud.Global], AuthConstants.Tenants.Organizations), clientApp.Authority, "Wrong authority set."); }
public void IntegratedWindows_ShouldCreatePublicClientApplicationForConfiguredCloud() { string testTenant = "infotest"; IClientApplicationBase clientApp = IntegratedWindowsAuthenticationProvider.CreateClientApplication(_clientId, null, testTenant, NationalCloud.China); Assert.IsInstanceOfType(clientApp, typeof(PublicClientApplication), "Unexpected client application set."); Assert.AreEqual(_clientId, clientApp.ClientId, "Wrong client id set."); Assert.AreEqual(string.Format(AuthConstants.CloudList[NationalCloud.China], testTenant), clientApp.Authority, "Wrong authority set."); }
public void IntegratedWindows_ShouldConstructAuthProviderWithPublicClientApp() { PublicClientApplication pca = new PublicClientApplication(_clientId, _organizationsAuthority, new TokenCache()); IntegratedWindowsAuthenticationProvider auth = new IntegratedWindowsAuthenticationProvider(pca, _scopes); Assert.IsInstanceOfType(auth, typeof(IAuthenticationProvider), "Unexpected auth provider set."); Assert.IsNotNull(auth.ClientApplication, "Client application not initialized."); Assert.AreSame(pca, auth.ClientApplication, "Wrong client application set."); }
public void ShouldUseDefaultScopeUrlWhenScopeIsNull() { var mock = Mock.Of <IPublicClientApplication>(); IntegratedWindowsAuthenticationProvider authProvider = new IntegratedWindowsAuthenticationProvider(mock, null); Assert.NotNull(authProvider.Scopes); Assert.True(authProvider.Scopes.Count().Equals(1)); Assert.Equal(AuthConstants.DefaultScopeUrl, authProvider.Scopes.FirstOrDefault()); }
public void ShouldConstructAuthProviderWithPublicClientApp() { string clientId = "00000000-0000-0000-0000-000000000000"; string authority = "https://login.microsoftonline.com/organizations/"; IEnumerable <string> scopes = new List <string> { "User.ReadBasic.All" }; IPublicClientApplication publicClientApplication = PublicClientApplicationBuilder .Create(clientId) .WithAuthority(authority) .Build(); IntegratedWindowsAuthenticationProvider auth = new IntegratedWindowsAuthenticationProvider(publicClientApplication, scopes); Assert.IsAssignableFrom <IAuthenticationProvider>(auth); Assert.NotNull(auth.ClientApplication); Assert.Same(publicClientApplication, auth.ClientApplication); }