【发布时间】:2017-07-01 04:42:34
【问题描述】:
从此 URI 引用:
http://developer.okta.com/docs/api/resources/oidc.html#parameter-details
我尝试使用/authorize 端点,但我没有从 Okta 的结果中获得令牌,我总是得到如下结果:
404 - 找不到页面
找不到您要查找的页面。请转到您的申请页面,然后重试。
谁能帮我解决这个问题?向 Okta 开发人员发送了电子邮件,但我没有收到回复。
var url = "https://xxx-admin.okta.com/oauth2/v1/authorize";
//string urlParams =
// string.Format("response_type={0}&client_id={1}&redirect_uri={2}&scope={3},state={4},nonce={5}", "code",
// "xxxxxx", redirecturl, "email", "email", );
var urlParameters =
$"?idp={"okta"}&response_type={"id_token"}&client_id={"xxxxx"}&redirect_uri={redirecturl}" +
$"&scope={"openid profile email address"}&response_mode={"form_post"}&state={"email"}&nonce={"nonce"}";
string redirecturl = "http://localhost/";
//grant_type,code,refresh_token,scope,redirect_uri,client_id,client_secret
var urlParameters = $"?grant_type={"password"}&code={""}&refresh_token={""}&redirect_uri={redirecturl}&" +
$"client_id=xxxxx&client_secret=yyyyyy";
var url = "https://xxxx-admin.okta.com/oauth2/v1/token";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url+ urlParameters);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
var strRequest= string.Empty;
StreamWriter streamOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream());
string strResponse = streamIn.ReadToEnd();
streamIn.Close();
return strResponse.ToString();
【问题讨论】:
-
您是否已将 redirect_uri 添加到允许的重定向列表中? xxx-admin.okta.com/admin/app/oidc_client/instance{app}/#tab-general 同样根据我的经验,它不允许本地主机——我使用了我的计算机名。
-
我不知道这是否有帮助,但有一个公共工具有使用 Okta 进行 OIDC 身份验证的工作示例。这是一个直接链接:oktaproxy.com/oidcgenerator.php
-
localhost 可以工作,http 请求也可以工作。您确实需要确保在应用程序的常规选项卡上添加了 redirect_uri。您可以为一个 OIDC 应用程序使用多个
标签: c# oauth-2.0 openid okta okta-api