1

我按照本教程使用 Azure AD 对我的 Azure 移动服务进行身份验证,但我无法使 URL 重定向正常工作。也许我误解了,但这就是我尝试过的......

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

在 PCL 项目 中,我将身份验证 URL 作为https://(my service).azurewebsites.net/.auth/login/aad重定向 URL 传递,并将相同的 URL(如上)传递给Xamarin.Auth.OAuth2Authenticatorctor。我为事件添加了一个事件处理程序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.

我在这里做错了什么?

4

1 回答 1

3

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

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

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

授权网址https://login.microsoftonline.com/{tenantId}

将网址重定向{Client-ID-of-your-AD-app}:/oauth2redirect

访问令牌网址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进行客户端管理的身份验证服务器管理的身份验证。有关向应用添加身份验证的更多详细信息,您可以参阅向可移植类库添加身份验证和向 Xamarin Forms 应用的 iOS 应用添加身份验证。

于 2017-09-04T08:19:10.523 回答