Пример #1
0
        protected override async Task <string> GetOpenIdConfigurationEndpoint(string host, string tenant, string userPrincipalName, CallState callState)
        {
            if (ValidateAuthority && !IsInTrustedHostList(host))
            {
                OAuth2Client client = new OAuth2Client();
                client.AddQueryParameter("api-version", "1.0");
                client.AddQueryParameter("authorization_endpoint",
                                         string.Format(CultureInfo.InvariantCulture, "https://{0}/{1}/oauth2/v2.0/authorize", host, tenant));

                try
                {
                    InstanceDiscoveryResponse discoveryResponse =
                        await
                        client.DiscoverAadInstance(new Uri(AadInstanceDiscoveryEndpoint), callState)
                        .ConfigureAwait(false);

                    if (discoveryResponse.TenantDiscoveryEndpoint == null)
                    {
                        throw new MsalServiceException(discoveryResponse.Error, discoveryResponse.ErrorDescription);
                    }

                    return(discoveryResponse.TenantDiscoveryEndpoint);
                }
                catch (RetryableRequestException exc)
                {
                    throw exc.InnerException;
                }
            }

            return(GetDefaultOpenIdConfigurationEndpoint());
        }
Пример #2
0
        protected override async Task <string> GetOpenIdConfigurationEndpoint(string userPrincipalName,
                                                                              RequestContext requestContext)
        {
            if (ValidateAuthority && !IsInTrustedHostList(new Uri(CanonicalAuthority).Host))
            {
                OAuth2Client client = new OAuth2Client();
                client.AddQueryParameter("api-version", "1.0");
                client.AddQueryParameter("authorization_endpoint", CanonicalAuthority + "oauth2/v2.0/authorize");

                InstanceDiscoveryResponse discoveryResponse =
                    await
                    client.DiscoverAadInstance(new Uri(AadInstanceDiscoveryEndpoint), requestContext)
                    .ConfigureAwait(false);

                if (discoveryResponse.TenantDiscoveryEndpoint == null)
                {
                    throw new MsalServiceException(discoveryResponse.Error, discoveryResponse.ErrorDescription);
                }

                return(discoveryResponse.TenantDiscoveryEndpoint);
            }

            return(GetDefaultOpenIdConfigurationEndpoint());
        }