lördag, oktober 06, 2012

Enterprise Authentication i Windows Store App

Idag fick jag lära mig den hårda vägen vad det innebär att använda sig av den capability, eller förmåga, i en Windows Store Application som heter Enterprise Authentication.


Tanken jag hade var att använda mig av UserInformation objektet i WinRT för att hämta ut information om inloggad användare. Min app ska bara vara tillgänglig för användare som har ett konto på Microsofts domän. Jag ville också hämta ut fullständigt namn och e-postadress.

private async Task<User> GetUserInformationAsync()
{var user = new User();

user.DomainName = await Windows.System.UserProfile.UserInformation.GetDomainNameAsync();

user.FirstName = await Windows.System.UserProfile.UserInformation.GetFirstNameAsync();

user.LastName = await Windows.System.UserProfile.UserInformation.GetLastNameAsync();

user.PrincipalName = await Windows.System.UserProfile.UserInformation.GetPrincipalNameAsync();

return user;
}

Om man kör ovan kod utan att ha Enterprise Authentication Capability så får man följnade fel:
 
System.UnauthorizedAccessException occured in mscorelib.dll.
Caller does not have the EnterpriseAuthentication capability.
 
Så långt inga problem. Jag markerade Enterprise Authentication som en capability för min app och kodade vidare. När jag var klar och skulle skicka in appen för certifiering så fallerade den redan i Windows App Certification Kit. Eller rättare sagt, jag fick en varning och den varningen kan jag inte ta mig förbi.
 
App Capabilities test
WARNING
Special Use Capabilities

  • Warning: The app has declared the following special use capabilities:
    • The app has declared the enterpriseAuthentication capability.
  • Impact if not fixed: If you don’t have a company account with the Windows Store, you won’t be able to upload this app. If you do have a company account, you’ll be required to provide justification during the submission process to support using this capability.
  • How to fix: Special use capabilities are intended for very specific scenarios. Only company accounts are allowed to use these capabilities. In addition, use of these capabilities is highly restricted and subject to additional Windows Store onboarding policy and review. Consider removing the special use capability if your app doesn’t require it.  
 
Det som är intressant i texten ovan är att den säger att jag måste ha ett Company account för att få använda mig av Enterprise Authentication capability. Processen för att skapa ett annorlunda jämfört med ett vanligt konto och man kan läsa mer om den här.
 
Så för min del är jag tillbaka på ruta ett när det gäller hur jag ska autentisera mina användare. Har fått några förslag från en kollega så vi får se var det slutar!


Inga kommentarer: