Azure Mobile Services prompts you for a username and password

So you’ve built and deployed your first Azure Mobile Service. Awesome! then you get prompted for a username and password and you can’t use your new mobile service! The good news is that this is by design and being that it is by design, there is an appropriate and easy way to deal with it. The reason for it is security pure and simple and the information needed to get past it is available to you.

To start with, you have a mobile service in Azure that looks like the following:

image

Figure 1: Mobile Service Dashboard

Clicking the highlighted link takes you to this page:

image

Figure 2: Mobile Service entry page

Clicking the Try it out button brings you to the username/password dialog. Looking back at the mobile services dashboard you’ll see the Manage Keys button at the bottom of the screen as shown in Figure 3.

image

Figure 3: Manage Keys

Click the button and then copy either the primary or secondary key. Now, click the Try me button and when the username/password dialog is displayed, paste the key into the password field (leave the username field blank) and click OK. And voila you get to the service as shown in Figure 4.

image

Figure 4: The working mobile service

Screen keyboard-friendly WPA2 Key Generator

  • WPA2 is currently the most secure type of Wifi/WLAN encryption.
  • To connect a device to an access point (AP), you use a WPA2 key or passphrase.
  • The key can be up to 64 chars hexadecimal or 63 chars alphanumeric + special chars.
  • There are many online key generators.
  • The problem is that they don’t take into account mobile devices.
  • Entering 63-64 characters using a screen keyboard that you have to repeatedly switch between uppercase, lowercase, numbers and special characters is very tedious.
  • This generator lets you specify the maximum number of times to switch the screen keyboard.
  • The letter O and the number 0 are excluded to avoid confusion.
  • WARNING: Provided “as is”. Use at your own risk. No warranties of any kind.

 

8 chars/64 bits (Minimum/lowest security)20 chars/160 bits (Medium security)63 chars/504 bits (Maximum/highest security)

Open Data in Education–Sydney Open Data Day

image

Two of our partners, Socrata (based in Seattle, they’re an organisation with deep expertise in open data) and Altis (a Sydney-based data  specialist who have completed a huge range of data projects with Australian education organisations) are running the “Sydney Open Data Day” briefing on 6 November, with a special focus on education data.

Sydney Open Data Day

The briefing is a fast-paced hour, at 11AM on Thursday 6th November, at Australia Technology Park (in Eveleigh) Sydney. It’s an opportunity to learn about open data initiatives and programs in NSW and the US. During the session, Rustum Abdurahman of the NSW Department of Education & Communities will discuss how Open Data helps to: 

  • Break down data silos by making data available and consumable 
  • Streamline access and understanding of data for citizens and internal stakeholders
  • Publish the NSW Centre for Education Statistics and Evaluation open data, for use and innovation by the developer community

Keynote Speakers

Rustum will be joined by Kate Harrington, Strategic Policy NSW Open Data, & Chris Rieth, former director of Open Data and Open Performance for the State of Maryland. Chris and Kate will be sharing their experiences implementing and managing an open data initiative.

For an idea of the kind of Australian data that’s published through the Socrata system, take a look at the NSW CESE Datahub (where they publish data such as school lists, school locations, student enrolments, and even a list of school calendar websites) and the City of Melbourne Open Data hub (where there’s data like the locations of public artwork, bins, public transport routes, and even parking sensor data – but unfortunately no education data yet)

Make a dateHope to see you there: Register for the Sydney Open Data Day on 6th November

Reimagine Sydney – a briefing about change and digital disruption

There’ still an opportunity to register to attend the Reimagine event in Sydney on 29 October, at the Royal Hall of Industries from 9AM-12:30PM

The briefing isn’t just for education customers, and offers a learning opportunity from the experiences of transformation happening in other industries.

image

The briefing will cover the Microsoft vision for platform and productivity – how we will empower people and organisations to do more and achieve more. But technology is only part of the story, because as the impact of technology changes so does the role of IT itself. And the IT people within an organisation become responsible for a digital transformation, and working with others to support the cultural change that technology enables (and requires!).

This challenge exists with every organisation, whether it’s a big bank, an electricity company, or an education organisation like a school or university. And so we’re seeing new job roles emerging – like Chief Digital Officer and VP of Student Experience. These new roles are often being filled by people with a deep understanding of technology, backed by the skills to effectively manage visionary change.

At the event, three invited speakers will share their stories of change:

  • Sean Elwick, Head of Information Services at Aurecon, will share his view on the disruption to the role of IT, and how he personally lobbies for digital change within his organisation.
  • Anthony Stevens, Director of IT Operations from KPMG, will share how their business has empowered its people to be more mobile, more responsive and more productive in order to create great experiences for their customers.
  • Belinda Thompson, BDO’s Chief Information Officer, will share how the company is using the cloud to support its people and better connect with its customers – and what it all means for her team’s relationship with the business.

To find out more and register for either of the Reimagine events, then use the links below:

Make a date

Register for Reimagine in Sydney on 29 October

Brisbane Startup Meetup + Queensland MIC SCRUM are joining

As most of you would know, we’ve got startup networking drinks at the Queensland Microsoft Innovation Centre (MIC) next Friday afternoon from 5.30pm - http://blogs.msdn.com/b/bizspark_au/archive/2014/09/24/more-meetups-coming-your-way.aspx

But things just got even better, the MIC will be holding their SCRUM at the same time!

Shakeel Yusuf, the Senior Manager for R&D Incentives for PWC,  will be joining the combined MIC Scrum/Startup Drinks to discuss the Federal Government’s R&D Tax Incentive that startups can take advantage of. If you’re interested in learning how you can take advantage of the incentives available make sure you join us next Friday!

Please register here for catering purposes – http://startup.msdeveloper.com.au/pages/events.aspx

SQL–More memory and CPU is not always a win

image

All computer programs will run better when adding more memory and CPU cycles – right?  Not necessarily true.

Assuming everything else is equal, then more memory and CPU will be a win; however, all computer systems have finite resources, also memory and CPU. Granting more to one program (or service), will take it away somewhere else.

SQL is no exception, in fact it will happily consume all the resources you grant it – at the risk of starving other systems, including the OS.

MaxServerMemory

You can control how much memory SQL can use through the MaxServerMemory property. Setting it too low, means you are throttling SQL – setting it too high and you are throttling the OS.  Despair not, help is near: Here is a blog post written by Tara Shankar Jana – with a script, that will give you the optimal setting.

CPU – Priority boost

It may be tempting to give the SQL process a priority boost. But don’t do this! Ever! Doing this will starve any other process (including the OS processes), and it will not make the system perform better – in most cases it will be significantly worse.

Here is a blog post by Arvind Shyamsundar on the topic: Priority boost details and why its not recommended

If you want to disable priority boost, you can do it using this sql script:

sp_configure 'priority boost', 0
reconfigure with override

One more thing…

Since you are reading this, you probably want to get the best performance out of SQL on the hardware available. Check one more thing: The power plan!  You likely bought the hardware for your server to use it, so make sure to set the power plan to High performance – also on any VM hosts.

Cindy Gross has written a blog on the topic.

 

What has this got to do with Dynamics AX?

Nothing and everything. The three guidelines above apply to any use of SQL Server – including when SQL is used with Dynamics AX.

I recently visited an AX customer with performance problems. It turned out that SQL was granted 100% of the memory on the box, it was set to run with priority boost, and the power plan was set to balanced. The first two due to best intentions, the last due to this being the default setting. This starved the OS for resources, making overall performance of the system unpredictable – some simple queries would take seconds to complete, and blocks were observed too. Getting these settings right fundamentally changed the behavior – it was like night and day.

Kudos to Tara for educating me on these topics.

Campaña de e-mail marketing con Sendgrid en Azure

Hola a todos! Hoy vamos a ver como hacer para crear tu propio servicio de e-mail marketing en Microsoft Azure con algunos simples pasos. No necesitas ser un experto en tecnología para seguir esta guía.

Si aun no tenés una cuenta en Microsoft Azure, te dejo algunas formas de empezar gratis:

 

Derechos de autor

Esta guía fue 100% creada por Branko Straub, quien forma parte de nuestro equipo de Microsoft Student Partners en Argentina y Uruguay. Les recomiendo que pasen por su blog, ya que frecuentemente sube artículos super interesantes sobre Azure y desarrollo de aplicaciones móviles, entre otros temas.

 

Comentarios antes de empezar

Antes de montar tu servidor, vas a necesitar decidir tamaños de máquina y data center donde hostear tu aplicación. Para lo primero, te recomiendo este artículo. Para lo segundo, te recomiendo leas este otro.

 

Archivos necesarios:

http://1drv.ms/1zdZMJK

 

Configuración en Azure

Lo primero que necesitamos hacer una vez que tenemos activa nuestra cuenta de Azure es agregar una tarjeta de crédito, si bien el servicio SendGrid es gratis hasta 25.000 emails por mes, al ser un complemento de la tienda de Azure este requisito es indispensable.
Prosigamos a agregar la tarjeta:
En el portal de Azure si vamos a la parte de adminstracion de Suscipciones veremos algo asi:
Hacemos click para cambiar la configuración.

Imagen

Ahora vamos a ver lo siguiente agregamos un método de pago nuevo, en mi caso una tarjeta de crédito VISA.

Imagen

Una vez que agregamos la  tarjeta y ponemos aceptar vamos a ver una opción que nos dice quitar el limite de gasto, esto no es necesario, tienen la opción de hacerlo. Pero una vez agregada la tarjeta alcanza con cerrar dicha ventana y regresar al portal.

Imagen

Una vez que volvimos al portal ponemos “nuevo” y luego seleccionamos “Tienda”

Imagen

Buscamos SendGrid y le damos Ok:

Imagen

Nos da la opción de elegir un nombre y su ubicación geográfica:

Imagen

Ya que es un servicio pago, veremos un resumen de la transacción, pero si eligimos correctamente la versión gratuita de 25.000 emails, veremos como el resumen total aparecerá en 0 pesos:

Imagen

Una vez creado debemos anotar los datos de conexión y luego ir al portal de administración de SendGrid para configurar unos pequeños detalles:

Imagen

Anotamos el usuario y la contraseña que nos serán útiles luego:

Imagen

Nos dirigimos al portal de administración, en la parte inferior en Azure hay un ítem que nos permite ingresar al mismo directamente, veremos en la parte superior del portal de SendGrid que hay una advertencia, clickeamos ahí para completar los datos que faltan

Imagen

Terminamos de configurar todo y veremos todos los “ticks” en verde:

Imagen

Una vez realizados todos estos pasos ya hemos terminado con la configuración de todo lo que es “Cloud” ahora vamos a remitirnos al Visual Studio.

 

Configuración en Visual Studio

Para el resto del tutorial yo opte por realizar el programa en .Net (C#) pero cabe destacar que SendGrid permite JS, C#, y además cuenta con una WebApi entre otras cosas.
Recordemos que para continuar deben bajar el proyecto que se encuentra alojado en OneDrive: http://1drv.ms/1zdZMJK

Lo descomprimimos, lo iniciamos y lo único que debemos hacer es realizar unos pequeños cambios en el código:

Donde dice “var credentials = new NetworkCredential(“usuario”, “contraseña”);”
Reemplazamos usuario y contraseña por las nuestras (las que anotamos antes).
Luego podemos adaptar el código a nuestro gusto y necesidades.

Imagen

Observaciones:

myMessage.From = new MailAddress(“atencion@heqsoa.onmicrosoft.com”);
Esta opción nos permite elegir el remitente que va a ver el usuario que recibe el email.

List<String> recipients = new List<String>

            {

                @”Jeff Smith <Jeff@hotmail.com
                @”Anna Lidman <Anna@outlook.com>”,

                @”Peter Saddow <Peter@microsoft.com>”

};

Esto nos permite agregar los usuarios que van a recibir los emails, en este caso agregue tres destinatarios a mano, pero los mismos se pueden cargar desde un archivo Txt, Excel, SQL, etc.
myMessage.Subject = “Azure Boxs Testing”;
Acá podemos cambiar el asunto del email.

StreamReader reader = File.OpenText(@”C:email.html”);            
myMessage.Html = reader.ReadToEnd();
Ya que la mayoria de los emails hoy en dia se encuentran en format HTML podemos leer nuestro email desde un archivo de esta manera y luego cargarlo.
myMessage.AddAttachment(@”C:file1.txt”);

Esto nos deja enviar archivos adjuntos.

Una vez realizados todos los cambios que desean pueden probar enviar un email de prueba, en mi caso me base en un email de ImagineCup 2015, como pueden observar son libres de elegir el remitente que ustedes deseen ya que el encargado de enviar los emails es SendGrid y no su casilla de email:

Imagen

Gracias a todos y espero que les haya sido útil.
Cualquier duda, consulta o comentario será más que bienvenido.

WS-Man (Web Services for Management) 1.2 Published

The DMTF recently published the Web Services for Management (WS-Man) standard version 1.2. This release of the WS-Man specification clarifies support for the latest encryption protocols, which has been required by organizations and governmental agencies such as the US Government NIST program.

WS-Man is a SOAP-based protocol that can be used with any transport, although it is primarily used with HTTP and HTTPS.  The older versions of the WS-Man specification made specific references to older versions of TLS (Transport Layer Security) that have proven to be insufficient.  The updated version more clearly decouples the protocol and the transport to ensure that interoperability is not dependent on specific versions of encryption algorithms, including TLS.  There is no functional change with the updated WS-Man 1.2 specification.  

Microsoft, an active member of the DMTF, contributed and edited the updated WS-Man specification. The Microsoft implementation of WS-Man is known as Windows Remote Management (WinRM), and has been a part of Windows since Windows 7 / Windows Server 2008 R2.  The WinRM implementation of WS-Man conforms with the latest NIST requirements described in NIST Special Publication 800 -52r1. WinRM leverages HTTP.SYS, which implements and enables configuration of the most recent and industry-standard secure transport protocol layer, as described in these two articles:

· Configuring WINRM for HTTPS

· The Configuring WinRM to Use HTTPS section of Configuration and Security

Note that if HTTPS is not used, WinRM still encrypts the payload over HTTP by default unless explicitly set to not use encryption.

WinRM has been, and should continue to be relied on in secure environments that are configured to meet the government and industry recommended cryptographic algorithms. Due to the lack of clarity in the previous releases of the WS-Man specification, some users were confused about whether or not WS-Man and WinRM supported recent and more secure implementations of the Transport-Layer Security (TLS), which it does. While this has not been an issue for the Microsoft implementation in WinRM, the WS-Man version 1.2 specification update has addressed that, and removed the confusing elements.

Steve Lee
Principal Engineering Manager
Windows Server

Keith Bankston
Senior Program Manager
Windows Server