我遵循本教程,使用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表单应用程序。