Environment : Azure and its emulator as server side & WP7 as client .Our requirement is to support Google,Live & Custom authentication in a Windows Phone 7 application using Azure as server side technology.
I have setup
IdentityServer as one of the external authentication provider in Azure and it works fine till the successful login .The Azure toolkit is not able to identify that the user has logged in in order to hide the login screen.
What I did ?
- Hosted the IdSrv in local IIS
- Downloaded the federationmetadata.xml
- Created new external identity provider in my Azure ACS portal by uploading the federationmetadata.xml
- Windows Phone 7 App automatically got the link to my IdSrv and loaded the login screen from my local IIS.
- I use ASP.Net membership to authenticate the IdSrv and it worked.
Issue is ScriptNotify event of WebBrowser in WP 7 app is not getting fired if the identity provider is IdentityServer and hence the toolkit it not hiding the browser. It simply show the IdSrv logged in page.
I know that window.external.notify() method will fire the event. But not sure how to get and pass the security token to that event.
After you successfully logged in, the client will be redirected to an ACS page which has script notification. If this doesn’t happen, can you make sure you’ve configured ACS correctly? You can get more information on
http://msdn.microsoft.com/en-us/library/gg185933.aspx. The problem can also be the IdentityServer you use is not implemented correctly. It should redirect the client to relying
party after successfully logged in. If the issue is related to IdentityService, you can also ask the question on
- The web page which has the notification page is issued by the acs (myacsnamepace.accesscontrol.windows.net/v2/...) right? I mean the page which have the script to call window.external.notify(authDetailsInJSon)
- The Identity provider(in my case identityserver.codeplex.com) is supposed to redirect to the above page in ACS. Isn't it?