【问题标题】:Azure Mobile App Service / Xamarin iOS client / Okta Identity Provider exampleAzure 移动应用服务/Xamarin iOS 客户端/Okta 身份提供程序示例
【发布时间】:2017-09-15 13:30:00
【问题描述】:

这是我目前的情况:

  • Xamarin iOS 移动应用(使用MobileServiceClient 登录)
  • Azure Mobile/App Service (ASP.NET Web API) 与 Azure AD 身份验证

我想将此过程的身份验证部分修改为由Okta 处理,而不是Azure AD。如何设置Okta 或任何其他第三方Identity Provider Service 类似于Okta 作为我的移动应用程序和api Web 服务的ipd? Azure 声称您可以使用任何支持 Auth 的 3rd 方提供程序,但我看不出有任何方法可以将此类提供程序集成到 Azure 门户中。

我找到了自定义身份验证教程的网址:https://adrianhall.github.io/develop-mobile-apps-with-csharp-and-azure/chapter2/custom/

来自这篇文章: IdentityServer 4 as Identity Provider for Azure App Service

这真的是唯一的方法吗?我真的宁愿继续使用通过 MobileServiceClient 的服务器流并将 Azure 配置为使用第 3 方 OAuth 身份提供程序,是否有人提供有关如何执行此操作的示例或其他信息?

感谢您的帮助,也许 Azure 团队的某个人可以在这个主题上启发我们,到目前为止,我还没有在他们的文档中看到任何文档或如何做到这一点的示例。

客户:

找到了一个用于与 Okta 集成的 OAuth2 和 OpenID 工作库: https://github.com/openid/AppAuth-iOS
https://github.com/openid/AppAuth-iOS/tree/master/Examples

使用 Xamarin 包装器: https://github.com/xamarin/XamarinComponents/tree/master/XPlat/OpenId

使用 Okta 对客户端身份验证进行了 2 因素身份验证测试,效果很好。继续找出应用服务部分。

【问题讨论】:

    标签: azure authentication xamarin.ios azure-active-directory okta


    【解决方案1】:

    经过更多的研究和反复试验,我找到了适合我想要做的事情的正确组合。以下是它的概要:

    Okta(身份提供者)
    • 设置带有Implicit (Hybrid) 授权的本机应用程序
    移动客户端 服务器/Web API
    • 将我的asp.net web api 网络服务转换为asp.net core web api 网络服务,这样我就可以使用最新的owin 中间件来验证在对安全端点的调用标头中提交的jwt 不记名令牌,这是一个如何使用Okta 进行设置的示例:https://developer.okta.com/quickstart/#/ios/dotnet/aspnetcore

    一件事让我在路上绊倒:

    • 在客户端中,通过 OpenID Connect 组件成功通过 Okta 进行身份验证后,您将收到包含 id_tokenaccess_token 的用户信息,尽管使用访问令牌与您的api调用服务器,实际上并非如此,访问令牌应该仅用于获取用户信息并且不是经过验证的令牌,因为它会定期重新生成,另一方面,id令牌包含服务器需要的签名验证令牌的标头和有效负载没有被篡改,这两个令牌之间的差异可以通过令牌中包含的.分隔部分的数量来观察,访问令牌只有2个.分隔部分, header 和 payload,id token 有 3 个这样的部分,header, payload 和 signature

    在此处阅读有关 jwt 令牌的更多信息:https://auth0.com/learn/json-web-tokens/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-20
      • 2016-01-18
      • 1970-01-01
      • 2019-08-19
      • 1970-01-01
      • 2016-07-13
      • 1970-01-01
      • 2016-11-03
      相关资源
      最近更新 更多