无法使 Xamarin.Auth 重定向回设备



我遵循本教程,使用Azure Ad验证我的Azure移动服务,但我无法获得URL重定向。也许我已经误解了,但这是我尝试的...

在iOS项目中我将此URL方案添加到info.plist: com.spike.Xamarin.OAuth:/oauth2redirect我覆盖AppDelegate.OpenUrl方法(S)(均过载),并从教程中实现代码

在PCL项目中我将身份验证URL作为https://(my service).azurewebsites.net/.auth/login/aad传递,并且作为重定向URL,我将相同的URL(上)传递到Xamarin.Auth.OAuth2Authenticator CTOR。我将事件处理程序添加到Xamarin.Auth.OAuth2Authenticator.Completed事件中,以获取访问令牌等。

在我受保护的Azure移动服务(AAD/Express)中我注册了上述URL反转:OAuth.Xamarin.spike.com:/oauth2redirect为"允许的外部重定向URL"。

结果

发生的事情是我到达登录页面,我可以按预期填写凭据。但是最终重定向从未击中AppDelegate.openurl方法。相反,ios Safari似乎最终到达https://(my service).azurewebsites.net/.auth/login/aad/callback

我在这里出了什么问题?

xamarin.auth包括OAuth验证验证者,可为消费身份提供者提供支持(例如Google,Microsoft,Facebook和Twitter等)。

根据我的理解,您可以利用 Xamarin.auth.auth SDK独立联系身份提供商并在移动客户端端检索访问令牌,然后您需要使用后端登录(Azure Mobile)应用程序)以及用于检索authenticationToken的令牌,然后您可以利用authenticationToken访问移动应用下的资源。

对于Azure AD身份验证,您可以参考以下构造OAuth2Authenticator的以下设置:

授权url to https://login.microsoftonline.com/{tenantId}

重定向url to {Client-ID-of-your-AD-app}:/oauth2redirect

AccessToken URL to https://login.microsoftonline.com/{tenantId}/oauth2/token

有关更多详细信息,您可以参考AAD的OAuth 2.0授权流。

从AAD检索访问令牌后,您需要发送以下请求以使用移动应用程序登录:

Post: https://{your-app-name}.azurewebsites.net/.auth/login/aad
payload: {"access_token":"{your-access-token}"}

此外,您还可以利用Microsoft.azure.mobile.client进行客户管理的身份验证或服务器管理的身份验证。有关将身份验证添加到应用程序的更多详细信息,您可以将身份验证添加到便携式类库中,并将身份验证添加到iOS应用程序中的iOS应用程序中的Xamarin表单应用程序。

相关内容

  • 没有找到相关文章

最新更新