Hey ISVs, build your own oAuth2 service :-)

Are you a SaaS Software Vendor? Do you have the idea of providing your customers an API first approach? Do you want to offer a scalable solution in the cloud? Why the h… do you need an oAuth2 server?

Many successful SaaS vendors offer an identity infrastructure based on oAuth2. Good examples are Digital Oceans, Microsoft, Amazon or Matrix42 with MyWorkspace. This article intends to explain the reasons why you should offer your own oAuth2 infrastructure when you publish a SaaS application to the world.

Five reasons to offer an oAuth2 service

  • Adapt the Micro-Service-Architecture
    SaaS applications today are different to Web applications 10 years ago. The most vendors are following the micro services architecture pattern. Let’s re-cap what Micro-Services intend to be. At the end this architecture pattern means that a vendor offers many different web services independent from each other for a specific offering. Have a look on the big ones like Microsoft Azure: They offer the Azure Resource Manager, the Storage API or the Office 365 Graph API as independent services. Compared to that public ones, Matrix42 with MyWorkspace offers services for handling identity, files, workflows and BI dashboards. Azure Costs, the service the author is also working on, is divided in separate small services for processing spending information, handling trend analytics or managing teams. All these are good examples for Micro Service and they have something together.jwt
    A session cookie based approach would not work, because this means every web service needs to take care of the session. A token based approach for authorization is a better option and the best option to provide a token is the JWT (LINK to Blog) token.

    How to get the JWT:
    Just use an oAuth2 service you provide for your micro service infrastructure. Check out different offerings in the IDaaS market or write your own.

  • State of the art Single Sign On (SSO) and federated security
    Today customers expect single sign on for their workforce. This means every SaaS application needs to support various flavours of federated security and single sign on. A better approach is to totally rely on JWT tokens and delegate the complex identity work to your oAuth2 service. The oAuth2 service should talk to the different company directories like Active Directory, Azure Active Directory or SAML2. This keeps your micro service infrastructure simple, clean and scalable again and you can drive them with just one concept and not multiple.

    How to connect to other directories:
    There are solutions in the market like Matrix42 MyWorkspace acting as identity bridge. Integrating these solutions reduces the work in your oAuth2 service to mitigate between the different identity providers.

  • Customer requires API First approach
    When talking with customers and the customer likes your solution often the second or third question is “How can I integrate …”. Translated into the language of developers this means “Do you have an API we can easily adapt?”.

    { REST }

    Because of that API first is an approach every SaaS vendor should follow. Remind the first bullet point in this article and assume your API relies totally on JWT tokens. You need to deliver a special JWT token to your customers for integration. Normally this tokens are called app-only tokens and can be used with a client credentials against an oAuth2 service. Azure Costs, as a simple example, explains how to deal with app-only tokens in the this article.

    How to issue customer integration API tokens:
    Provide a separate oAuth2 service that supports the client credentials flow incl. app-only tokens.

  • Support for mobile, web and fat clients required
    Today’s market is not focused on a special operating system or platform anymore. Even Microsoft changed their mind dramatically and now they offer with Azure one of the best cloud platforms for all kind of devices including IOT devices. Mostly every SaaS application has sooner or later the requirement to integrate different clients. The compelling event for this is normally the requirement for a mobile app but also the requirement to support a browser extension or just the integration in an embedded device. oAuth2 delivers different permission grant flows to support any kind of device and use case. This means offering an oAuth2 service gives you the freedom to support any new device because your identity infrastructure is decoupled from your micro services infrastructure.

    How to connect a mobile app to my service:
    Provide a separate oAuth2 service which support, the so called indirect flow. Normally you should not use the code flow but you need to provide some kind of device management.

  • Stay scalable for your access
    Last but not least, scalability or better the option to be ready for growing your company is a key success criteria every SaaS vendor should have an eye on. The micro-service architecture and the decoupled identity infrastructure gives you the freedom the split and combine services on different services in different clouds and in different locations.

    How to stay scalable:
    Decouple identity from resource services and enjoy the freedom to let the infrastructure grow by business needs.

Yes we can! Get your own oAuth2 service

When you think about building an oAuth2 service for your application you can start by building your own stuff. This is a great option when you need to stay under control of everything. There are also IDaaS providers on the market like Matrix42 with MyWorkspace, Auth0 or Azure Active Directory. These providers are a good starting point for your identity management project.

A hybrid approach is often the most practical. This means your engineers will provide a home grown oAuth2 service to support existing user accounts. This service should act as identity proxy to an IDaaS provider to open up the world of federated security and Single Sign On for your enterprise customers. Never waste time and budget on building an infrastructure for federated security by your own.

This article covered many technical topics on a very high level perspective. If you like it, let me know, as I think about creating a series out of it, to cover topics in more technical depth. Feel free to follow this blog to never miss an update about the upcoming series.

Streamlining API Testing with Postman

istock_53508866_xlarge-1200x600-1

David Creedy a colleague and teammate published a great series of blog articles to explain how to handle API workflows because we are heavily involved in API related projects in our day by day business. Postman is definitely the tool of choice to supercharge all your API workflows and the following blog series will give everybody an important overview:

So I hope David will move forward with additional blog posts in this series. All what I hear the next post, we will look at how you can use different APIs that are available. I guess addressing the various options how to deal with authentication is worth an extra article.

A more powerful azure costs portal

After several months of constant improvements in the new azure costs spending portal it now becomes the standard user interface for all of your spendings.

compare-final

The new portal offers a lot of new features and improvements to make your day by day work much easier. In this article we would like to highlight only the most important ones, to make your start with the new azure costs spending dashboard as easy and fast as possible:

Overall Spendings
The new overall spendings widget allows you to stay informed instantly. The widget always contains all spendings accumulated over the last 12 months.

azure costs - azure cloud cost optimization made easy 2016-08-28 15-40-35

azure costs - azure cloud cost optimization made easy 2016-08-28 15-47-31

Daily Burn Rate
An important indicator especially in cost optimization projects but also when you observe your costs on a regular basis is the daily burn rate. It’s easy to oversee what the short and mid term trend is.

Responsible Persons for Subscriptions
With this new functionality you are able to assign responsible persons to one or more subscriptions. This helps team administrators to oversee who is the single point of contact (SPOC) in case of unusual spendings.

resp-person

azure costs - azure cloud cost optimization made easy 2016-08-28 15-53-42

Switch Team – Multi Team Support
For service providers and administrators who would like to oversee the spendings of several teams, the Multi Team support makes it super easy to handle spendings over different organisations in a single portal.

Smart Compare
Smart Compare allows you to conveniently compare monthly cloud costs with the costs of any previous month. azure costs highlights cost spikes & deflections, so that you can focus on the costs you are really interested in.

compare-final.png (2880×1471) 2016-08-28 16-29-04

azure costs - azure cloud cost optimization made easy 2016-08-28 16-15-23

Full Screen Mode
Every widget can be used in the full screen mode as well. This gives you enough space to work on more complex spending optimization projects without scrolling and moving around. The full screen mode is optimized for working with a huge amount of different data.

Interested in the new feature?
Try the new feature today by simply logging into your azure costs account. The feature is part of any plan.

Any questions, wishes or ideas? Try our feedback portal or drop a mail to help@azure-costs.com.

Integrate your applications, welcome oAuth2

The Azure Costs team is happy to announce a simplified way to integrate your applications in Azure Costs. Here is how to integrate an application in Azure Costs, that you are developing . This might for example be your BI dashboard or some other enterprise application integration platform that consumes data Azure Costs provides.

Step 1: Create an application principal

Every application which shall be integrated in Azure Costs needs to be registered as a so called application principal within a team account. The technical reason for this is that the authorisation relies on the oauth2 client credentials flow.

app-registration.png

The application principal can be used in the same way as an interactive user. This means it’s possible to assign specific permissions to the application principal. All features of the access rights and permissions system can be used out of the box for application principals as well.

There are no limitations, every enterprise subscription allows to create as many application principals as required. In case of exposing the client secret by accident please remove or reset the application registration to prevent unauthorized access to your spending data.

Step 2: Get an access token with the client credentials grant flow

Based on the client credentials grant flows it’s possible to get the access token which needs to be used to communicate with the Azure Costs API following the “Bearer” schema in the authorisation header. The Token can be issued with the following call:

curl -X POST -d “client_id=<<clientId>>&client_secret=<<clientSecret>>&grant_type=client_credentials” https://azure-costs.com/sts/issue/oauth/token

The generated access token is valid for 60 minutes and needs to be renewed after that time with the same request.

Step 3: Consume our APIs

The Azure Costs API is available via https://api.azure-costs.com and follows the REST paradigm. If you need more information please contact us, we will support you with your project.

Interested in the new feature?
Try the new feature today by simply logging into your azure costs account. The feature is part of any Enterprise plan in our dashboards.

Any questions, wishes or ideas? Try our feedback portal or drop a mail to help@azure-costs.com.

Assign responsible persons to subscriptions

We feel very lucky to have  engaged users who tell us about their cloud data management challenges and the functionality that they’d like to see added to azure costs. And we listen.

We’re continually deploying additional features that our users have been asking for to azure costs and here’s a great new functionality.

Assign responsible persons to subscriptions:
With the new functionality our users are able to assign responsible persons to one or more subscriptions. This helps team administrators to oversee who is the single point of contact (SPOC) in case of unusual spendings.

resp-person.png

This enables every team administrator to act instantly on cost spikes what keeps cloud costs under control.

Interested in the new feature?
Try the new feature today by simply logging into your azure costs account. The feature is part of any Enterprise plan in our dashboards.

Any questions, wishes or ideas? Try our feedback portal or drop a mail to help@azure-costs.com.

Azure Costs: Feature enhancements

Smart Compare now supports Excel/CSV export
Some weeks ago, we released the new Smart Compare feature, an effective way to compare cloud costs of various months with each other. Now the existing CSV-export functionality is able to export these important results of Smart Compare as well. This enables everyone to find and report cost spikes fast and reliable.

Disable Subscriptions
Azure Costs needs to be connected to every subscription to manage the costs of Pay-as-you-Go or Rate-Plan subscriptions. Not every administrator wants to set the required access permissions for all subscriptions existing in the associated Azure account. Now Azure Costs allows, to disable not needed subscriptions as shown below:

disable-subscritpions

Team Activity Overview
Many team administrators would like to know, if the team members are taking their responsibility for specific subscriptions. Now administrators can see the Last Login information in the Manage Team overview, what gives helpful information if team members are checking cost reports on a regular basis.

How to get started?
All new features can be used right now as part of every plan. Try the new features today by simply logging into your azure costs portal.

Any questions, wishes or ideas? Try our feedback portal or drop a mail to help@azure-costs.com.

 

Notomia for software licenses

Check out the future of Software Asset Management for SaaS, Web and Legacy applications…

MyWorkspace by Matrix42

Notomia – that was Leonardo da Vinci’s synonym for anatomy. In 1515, when a Papal decree prohibited the dissection of humans, he ignored this decree and dissected 30 men and women who had been executed, in order to study the structure and functioning of the human body. Neither the decree nor the significant risk of infection through dead bodies kept him from doing what he wanted to do, and his success justified the risks he had taken: he discovered arteriosclerosis and was probably the first among mankind to create drawings of a child in the mother’s womb. Even today, his 200 or so anatomic drawings are precious works of arts, combined with scientific precision and detail. And what applied to Leonardo da Vinci, is well worth to be applied to software license management: the more precise and accurate knowledge is supplied to license managers on the company’s license landscape, the…

View original post 702 more words