Wso2使用Identity登录.NET应用程序

时间:2017-12-25 23:01:30

标签: wso2 wso2is

我们尝试使用Wso2身份连接.net应用程序,但是当我请求

https://localhost:9443/oauth2/token如下:

String clientId = txtClientId.Text;
            String clientSecret = txtSecret.Text;
            String grantType = txtgrantType.Text;
            String redirectUri = txtReqUri.Text;

            NameValueCollection param = new NameValueCollection();
            param.Add("client_id", clientId);
            param.Add("client_secret", clientSecret);
            param.Add("grant_type", grantType);
            param.Add("redirect_uri", redirectUri);
            param.Add("code", code);

            String serverUrl = "https://localhost:9443/";
            WebClient client = new WebClient();

            //Call the token endpoint and acess the token details
            var result = client.UploadValues(serverUrl + "oauth2/token", param);

我们遇到问题基础连接已关闭:无法为SSL / TLS安全通道建立信任关系 我们在.net应用程序中包含了认证,如下图所示,您能否告诉我默认认证的配置 wso2carbon.jks

enter image description here

1 个答案:

答案 0 :(得分:1)

  

底层连接已关闭:无法为SSL / TLS安全通道建立信任关系

似乎(正如您所知)您的.net应用程序正在调用身份服务器,并且客户端不信任身份服务器提供的SSL证书。

简单的解决方法 - 当服务器位于同一个专用网络上时,您也可以使用HTTP协议(假设通信在不同的边界上安全):http://is_hostname:8280/token

正确的解决方案 - 将SSL与合格证书一起使用。首先,让它使用当前提供的证书

  

我们在.net应用程序中包含了认证,如下图所示,您能否给我一份默认认证的配置wso2carbon.jks

你刚刚在你的项目中删除了carbon.jks文件,你是否希望它能够自行运行? (JKS是Java KeyStore)

证书是自签名自定义证书(未经任何受信任的CA签名),域名为CN=localhost

要获取受信任的默认证书,您需要强制执行:

  1. 客户需要信任服务器的证书
  2. 客户端不得验证域名(如果它不是localhost)
  3. 我必须管理员我不是.net程序员,我宁愿让你搜索网络而不是为你提供如何设置这些点的错误答案。

    要导出证书 - easies方式是打开身份服务器的控制台并从浏览器导出证书。 (或者您可以使用openssl s_client -connect server:port,keytool或其他工具)