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.");
        }
Exemple #5
0
        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());
        }
Exemple #6
0
        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);
        }