【问题标题】:How do I get a StateToken for basic Authentication through Okta with .net sdk?如何使用 .net sdk 通过 Okta 获取用于基本身份验证的 StateToken?
【发布时间】:2016-03-09 17:56:57
【问题描述】:

我正在构建一个内部 Web API(asp.net),我需要将我们的 Okta 身份验证与其集成。我通过 NuGet 安装了 SDK,我可以做一些简单的事情,比如获取用户并查看配置文件。

不过,我真正需要做的是了解我如何获取用户,通过 Okta 对其进行身份验证,然后再验证同一个用户。

这是我的基本概念。

var oktaClient = new OktaClient(apiToken: "00vEX-jX3to71axEZ1L3luDfaAPH9d-ZPBV4coG2Ya", baseUri: new Uri(uriString: "https://ourcompany.oktapreview.com"));    

AuthClient authClient = oktaClient.GetAuthClient();    

AuthResponse response = authClient.Authenticate(username: "MyUserName@corp.ourcompany.com", password: "MyPassword");

AuthResponse huh = authClient.GetStatus(response.StateToken);

问题是我的响应不包含 StateToken。它只包含一个 SessionToken。所以,我真正可以使用一些帮助的是我所缺少的。

我浏览了 Okta Music Store(https://github.com/okta/okta-music-store) 演示,但这似乎无法回答我的问题。也许是因为它是一个较旧的 MVC 4 应用程序并且我正在使用 WebApi,或者只是因为它是一个比我试图完成的更复杂的示例,我不知道。
我也一直在阅读http://developer.okta.com/docs/api/getting_started/design_principles.html,但我仍然没有看到我错过了什么。

【问题讨论】:

    标签: asp.net-web-api okta okta-api


    【解决方案1】:

    我建议您查看显示不同身份验证流程的this code sample

    只有在您在登录过程中处于中间状态(例如被提示输入第二个因素)时,您才会获得状态令牌。否则,只有在登录过程成功完成后,您才会获得会话令牌。

    希望对你有帮助!

    【讨论】:

      【解决方案2】:

      我也一直在努力找出stateToken,在筛选了对同一查询的无数无用回复后,我终于找到了答案:

      state——;防止跨站点请求伪造 (CSRF)。可 任何值。

      来源:https://developer.okta.com/docs/guides/add-an-external-idp/apple/create-authz-url/

      我发现我确实可以提供任意字符串,只要它在整个用户的授权流程中保持一致即可。

      但是,我仍然不清楚的是,应该多久重新生成一次状态令牌,以及在页面加载之间保持该值的最佳做法是什么。我的假设是它应该是随机生成并存储在会话中的。

      更新:我发现这个页面讨论了如何生成状态令牌,似乎相关。

      https://pipedrive.readme.io/docs/marketplace-oauth-authorization-state-parameter

      他们推荐的方法(至少对于 php )是:

      // Assign to state the hashing of the session ID
      $state = hash('sha256', session_id());
      

      【讨论】:

        猜你喜欢
        • 2017-05-07
        • 2020-06-22
        • 1970-01-01
        • 2015-08-12
        • 2015-02-06
        • 2013-09-10
        • 2012-07-26
        • 2022-09-29
        • 2017-09-18
        相关资源
        最近更新 更多