这是我目前的情况:
Xamarin iOS
移动应用(使用MobileServiceClient
登录)Azure Mobile/App Service
(ASP.NET Web API
)Azure AD
身份验证我想修改此过程的身份验证部分,由Okta
而不是Azure AD
来处理。如何为我的移动应用和api网络服务设置Okta
或与Identity Provider Service
类似的任何其他第三方Okta
作为ipd? Azure声称您可以使用任何支持Auth的第三方提供商,但我没有看到任何方法在Azure门户中集成此类提供商。
我发现这个网址是自定义身份验证的教程:wrap that event into a task
从这篇文章: https://adrianhall.github.io/develop-mobile-apps-with-csharp-and-azure/chapter2/custom/
这真的是唯一的方法吗?我真的宁愿继续使用服务器流程MobileServiceClient
并将Azure配置为使用第三方OAuth身份提供商,是否有任何人有关于如何执行此操作的示例或其他信息?
感谢您的帮助,也许Azure团队的某个人可以启发我们这个主题,到目前为止我还没有看到任何文档或示例如何在他们的文档中进行。
找到OAuth2和OpenID的工作库,用于与Okta集成:
IdentityServer 4 as Identity Provider for Azure App Service
https://github.com/openid/AppAuth-iOS
使用Xamarin包装: https://github.com/openid/AppAuth-iOS/tree/master/Examples
使用Okta对客户端Auth进行了2次身份验证测试,效果很好。在找出App Service部分。
答案 0 :(得分:0)
经过更多的研究和反复试验,我找到了适合我尝试做的正确组合。这里概述了它是什么:
Okta(身份提供者)Implicit (Hybrid)
授权的本机应用程序asp.net web api
网络服务转换为asp.net core web api
网络服务,以便我可以使用最新的owin中间件来验证在安全端点的调用标头中提交的jwt承载令牌,这里有一个示例如何使用Okta进行设置:https://developer.okta.com/quickstart/#/ios/dotnet/aspnetcore 有一点需要注意的是,我一路上绊倒了我:
id_token
和access_token
的用户信息,尽管使用访问令牌似乎很自然用你的api调用发送到服务器,实际上不是这种情况,访问令牌应该只用于获取userinfo而不是经过验证的令牌,因为它会定期重新生成,另一方面是id令牌包含服务器需要验证令牌的标头和有效负载未被篡改的签名,这两个令牌之间的差异可以通过包含在其中的.
分隔部分的数量来观察。令牌,访问令牌只有2个.
分隔部分,标题和有效负载,id令牌有3个这样的部分,标题,有效负载和签名在此处阅读有关jwt令牌的更多信息:https://auth0.com/learn/json-web-tokens/