当用户通过 Azure Web 应用程序(ASP.NET MVC)和 Xamarin.iOS 应用程序登录时,我会得到相同用户的两个不同 SID。
设置
Azure WebApp ASP.NET 5 带有 API 控制器
Xamarin iOS 应用程序使用 Microsoft.WindowsAzure.Mobile.Client SDK Azure B2C AAD
Web 上的用户
我获得的是 ObjectIdentifier 值,即 AAD SID:
var userClaim = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value;
移动用户
我只获得了一个Nameidentifier值,没有ObjectIdentifier。
ClaimsPrincipal mobileUser = this.User as ClaimsPrincipal;
var mobileUserClaim = mobileUser.FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier");
这里的SID是完全不同的,从移动端进行认证的用户获取到的SID为xxxx,而从Web端则获取到了xxx。
我知道如果我设置一个Azure Mobile App和一个Azure Web App,则在进行身份验证时SID将是相同的。但是由于我的应用程序很小,我不想管理两个站点。这个应用程序的目的是拥有一个简单的Web应用程序来执行一些动作,并且可以通过手机进行相同的操作。我使用Azure Mobile Service SDK和InvokeAPIAsync从手机上使用API控制器来调用Web App中的API。
谢谢