public static OperatorUrls setOperatorUrlsR2()
        {
            var operatorUrls = new OperatorUrls()
            {
                ProviderMetadataUrl = "https://operator-g.integration.sandbox.mobileconnect.io/.well-known/openid-configuration"
            };

            return(operatorUrls);
        }
 /// <summary>
 /// Allows an application to create discovery object manually without call to discovery service
 /// </summary>
 /// <param name="clientId">Client id</param>
 /// <param name="clientSecret">Client secret</param>
 /// <param name="subscriberId">Subscriber id</param>
 /// <param name="appName">Application name</param>
 /// <param name="operatorsUrls">Operators url</param>
 /// <returns>Manually generated discovery response</returns>
 public async Task <DiscoveryResponse> GenerateDiscoveryManually(
     string clientId,
     string clientSecret,
     string appName,
     OperatorUrls operatorsUrls)
 {
     return(await _authentication.MakeDiscoveryForAuthorization(
                clientId, clientSecret, appName, operatorsUrls));
 }
        public static OperatorUrls setOperatorUrlsR1()
        {
            var operatorUrls = new OperatorUrls()
            {
                AuthorizationUrl = "https://operator-a.integration.sandbox.mobileconnect.io/oidc/authorize",
                UserInfoUrl      = "https://operator-a.integration.sandbox.mobileconnect.io/oidc/userinfo",
                RequestTokenUrl  = "https://operator-a.integration.sandbox.mobileconnect.io/oidc/accesstoken",
                RevokeTokenUrl   = "https://operator-a.integration.sandbox.mobileconnect.io/oidc/revoke"
            };

            return(operatorUrls);
        }
Ejemplo n.º 4
0
        public async Task <IHttpActionResult> StartManualDiscoveryWithoutMetadata(string subId = "", string clientId = "", string clientSecret = "")
        {
            var operatorUrlsWd = new OperatorUrls
            {
                AuthorizationUrl = _operatorUrLs.AuthorizationUrl,
                RequestTokenUrl  = _operatorUrLs.RequestTokenUrl,
                UserInfoUrl      = _operatorUrLs.UserInfoUrl
            };

            var discoveryResponse = await _mobileConnect.GenerateDiscoveryManually(clientId, clientSecret, subId, "demoapp", operatorUrlsWd);

            var discoverystatus = await _mobileConnect.GenerateStatusFromDiscoveryResponse(discoveryResponse);

            return(CreateResponse(discoverystatus));
        }
Ejemplo n.º 5
0
        public void Endpoints(string authURL = "", string tokenURL = "", string userInfoURl = "", string metadata = "", string discoveryURL = "", string redirectURL = "")
        {
            _operatorUrLs = new OperatorUrls()
            {
                AuthorizationUrl    = authURL,
                UserInfoUrl         = userInfoURl,
                RequestTokenUrl     = tokenURL,
                ProviderMetadataUrl = metadata,
            };
            _cache      = new ConcurrentCache();
            _restClient = new RestClient();

            MobileConnectConfig mobileConnectConfig = new MobileConnectConfig()
            {
                DiscoveryUrl = discoveryURL,
                RedirectUrl  = redirectURL
            };

            _mobileConnect = new MobileConnectWebInterface(mobileConnectConfig, _cache, _restClient);
        }
Ejemplo n.º 6
0
        public async Task <IHttpActionResult> StartManualDiscoveryWithoutMetadata(string subId = "", string clientId = "", /*string clientName = "", */ string clientSecret = "")
        {
            var mobileConnectRequestOptions = new MobileConnectRequestOptions()
            {
                Scope          = "",
                Context        = "demo",
                BindingMessage = "demo auth",
            };

            var operatorUrlsWd = new OperatorUrls
            {
                AuthorizationUrl = operatorURLs.AuthorizationUrl,
                RequestTokenUrl  = operatorURLs.RequestTokenUrl,
                UserInfoUrl      = operatorURLs.UserInfoUrl
            };

            MobileConnectWebInterface mobileConnectWebInterface = new MobileConnectWebInterface(mobileConnectConfig, new ConcurrentCache());
            var discoveryResponse = await mobileConnectWebInterface.GenerateDiscoveryManually(clientId, clientSecret, subId, "appName" /*clientName*/, operatorUrlsWd);

            var status = mobileConnectWebInterface.StartAuthentication(Request, discoveryResponse, subId, null, null, mobileConnectRequestOptions);

            return(CreateResponse(status));
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Make fake discovery for authorization
        /// </summary>
        /// <param name="clientId">Client id</param>
        /// <param name="clientSecret">Client secret</param>
        /// <param name="subscriberId">Subscriber ID</param>
        /// <param name="appName">Client application name</param>
        /// <param name="operatorsUrl">Operators urls</param>
        /// <returns>Generated fake discovery response</returns>
        public async Task <DiscoveryResponse> MakeDiscoveryForAuthorization(string clientId, string clientSecret, string subscriberId,
                                                                            string appName, OperatorUrls operatorsUrl)
        {
            Validate.RejectNullOrEmpty(clientId, "clientId");
            Validate.RejectNullOrEmpty(clientSecret, "clientSecret");
            Validate.RejectNull(operatorsUrl, "operatorsUrl");

            var discoveryService = new DiscoveryService(new ConcurrentCache(), _client);

            var providerMetadata = new ProviderMetadata();

            var discoveryGenerateResponseOptions = new DiscoveryResponseGenerateOptions(clientSecret, clientId, subscriberId, appName, operatorsUrl.GetListOfUrls(), operatorsUrl.GetListOfRels());

            var restResponse = new RestResponse()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = discoveryGenerateResponseOptions.GetJsonResponse()
            };

            try
            {
                var index  = 0;
                var length = discoveryGenerateResponseOptions.Response.response.apis.operatorid.link.Count;
                for (var i = 0; i < length; i++)
                {
                    if (discoveryGenerateResponseOptions.Response.response.apis.operatorid.link[i].rel != LinkRels.OPENID_CONFIGURATION)
                    {
                        continue;
                    }
                    index = i;
                    break;
                }

                var providerMetadataLink = discoveryGenerateResponseOptions.Response.response.apis.operatorid.link[index].href;

                if (providerMetadataLink != null)
                {
                    providerMetadata = await discoveryService.RetrieveProviderMetada(providerMetadataLink);
                }
            }
            catch (Exception exception)
            {
                throw exception;
            }

            var discoveryResponse = new DiscoveryResponse(restResponse);

            discoveryResponse.ProviderMetadata = providerMetadata;

            return(discoveryResponse);
        }