Os criadores anunciaram que o IdentityServer4 será pago. E o que isso pode mudar para nós?

No dia 01/10/2020 os desenvolvedores do IdentityServer4 publicaram que agora ele terá uma licença diferente. Será conhecido como Duende IdentityServer4 e passa a ser RPL (reciprocal public license).

Com essa licença é possivel utilizar gratuítamente em ambientes de desenvolvimento, testes e projetos Open Source. No entanto é necessário uma licença para o operar em produção.

A atual versão do IdentityServer4 (4x) continua Open Source e gratuita. E terá suporte até o final de 2022. Que coincide com o final do suporte LTS do .NET Core 3.1.

A nova versão do IS4, que será em .NET 5, passaremos o lidar com essas mudanças.

E agora?

Muitas discussões ocorreram. Algumas calorosas e desrespeitosas. Tirando as ofensas. Muito se falou acerca, principalmente, do preço.

is4

Valor por Client

O primeiro problema na tabela de preços é que diferente de outras soluções no mercado, ela está fundada no número de clients.

Pense no seguinte cenário:

Você colocou o IS4 em produção, tão logo você percebe que a administração dele, via queries, json ou hard code não é viável. Você precisa de um painel admin. O oficial, tem uma API. Logo, são 2 clients.

  1. Painel Admin
  2. API do Painel
  3. Seu frontend principal
  4. Free slot
  5. Free slot

Você já consumiu três clients numa manhã. Em questões financeiras, você acabou de gastar $7000 com o painel e $1500 com a framework IS4.
O valor do painel é em euros. Fiz uma conversão para dolares.

Quem tem um IS4 em produção sabe que client credentials (Sistemas em background) crescem a uma taxa alarmante.

Um simples serviço background, com 100 linhas de código. Pode te custar $300 adicionais. Pois é esse o preço por cada client adicional. Sem muito esforço sua empresa vai atingir as camadas mais elevadas de preço.

Tem um servidor de homologação? Mais $1500. De teste também? Mais $1500.

Em resumo num cenário ideal, em que você tem um ambiente de teste, outro de homologação e um de produção. Vai gastar $11.500 para colocar o IS4 em produção.

Em reais na cotação atual seria um extrato de R$ 64 mil reais.

cotacaoatual-1.

Startups tem desconto de 50%.

Workarounds

Por causa do preço significativo, é capaz de começar a ter ambientes únicos. E isso tras consequencias. Não há segregação de usuários, vai ter impacto direto em times que possuem ambientes de teste. As informações dos usuários serão sempre de produção. E também havera uma bagunça de clients e api's: Financeiro-dev / Financeiro-hml / Financeiro-prd.

Outro ponto é não utilizar o painel e fazer a administração através do banco ou com Json. E claro, depender de soluções Open Source.

A tabela não é final

Esse exemplo acima, foi um dos citados em uma das discussões em que o próprio Dominique respondeu e informou que eles ainda estão analisando a tabela. Pode ser que sofra alterações.

Drama do OSS

A decisão de transformar o projeto em pago é a mesma de tantos outros. Os desenvolvedores precisam comer. O projeto torna-se grande, issues são abertas. Features requisitadas. E tudo isso consome tempo. E os desenvolvedores não são remunerados por esse trabalho.

O Dominique apontou os ganhos, neste post:

Over the past three years: $60,000 in total from 75 monthly sponsors.
~$53,000 came from 12 companies
~$7,000 came from 63 individuals.
This breaks down to approximately $9,000 per year for each of us.

Em resumo, $9.000 dolares por ano. Transformando em reais, são R$ 4.100 reais por mês. Imagina você ganhar esse valor sabendo que seu código é um dos mais bem sucedidos projetos .NET e que milhares de desenvolvedores utilizam em milhares de empresas.

O que de fato pagava as contas no fim do mês era as consultorias e treinamentos que o projeto proporcionou.

Criticas da comunidade

Em linhas gerais as criticas mais ferrenhas, estão embasadas no fato que a Microsoft já recomendou a utilização do IS4. Além de alguns boilerplates conter o IS4 por default. Existem projetos da Microsoft que possuem código do time do IdentityServer embarcado. Microsoft.Identity.Web.

Essa associação levaram muitos a criticarem que dentro do ecossistema open source do .NET, haveria componentes que não são open source.

Ainda não há datas, mas em breve teremos novidades por parte da Microsoft. Essa foi a palavra final de um dos engenheiros. Nessa thread do GitHub.

Concorrência

O IdentityServer4 é uma framework popular na nossa comunidade .NET. Tão logo você inicia com o IdentityServer4, descobre os poderes do OAuth 2.0 e OpenId Connect. Então você percebe que IdentityServer4 é facilmente substituido pelos concorrentes.

KeyCloak agradece

A KeyCloak é tão mais completo que o próprio IdentityServer4 em questões de features x tempo de desenvolvimento. Com alguns comandos você já tem um KeyCloak com um painel completo de gerenciamento na mão. E tudo isso é gratuito. Você perde um pouco nas possibilidades, pois nesse quesito o IS4 tende ao infinito. Mas na prática é questionável o quanto de possibilidade você precisa que uma configuração básica do KeyCloak já não te atende.

AWS Cognito manda um abraço

O Cognito cobra por usuário. Não importa o número de clients. Se é 1 ou 1000. O que importa é que até 50.00 MAUs* é gratuíto. Acima disso virá cobranças. Salgada, é verdade. No entanto, levando em consideração que há pelo menos 50.000 usuários ativos no sistema, talvez essa cobrança não seja mais um problema.

  • MAU significa monthly active users. Um usuário é considerado ativo se ele fez pelo menos um login no último mês.

Auth0

O plano básico do Auth0 é $23 mês. Ideal para ambientes de homologação e testes. Para produção o plano básico é $130/mês. Dado um cenário básico de desenvolvimento, que contempla testes e homologação. Ele é mais barato e com mais feature.

Outros players pagos

Quando entramos nesse mundo, há diversos de provedores de identidade SaaS. Cada um com seu ecossistema e sistema de preços. Desde o mais barato Auth0, ao mais caro da Okta. Opções não faltam:

Opinião

Eu concordo com o modelo pago. Desenvolvedores precisam pagar contas. Ao mesmo tempo que ter um projeto grande e que atende milhões de pessoas é gratificante, deve ser frustante perceber que ninguém paga por ele.

O grande diferencial do IdentityServer4 reside no poder de personalização que ele entrega. Pois você monta seu próprio SSO, com suas regras e fluxos de negócio próprio. A tela de login tem teu logo e tuas cores. Resetar a senha com a digital é uma possibilidade que só depende de você. Adicionar FIDO2 ou a Iris no processo de MFa é uma questão de tempo ou quando você estiver empolgado para desenvolver.

Quando todo o ecossistema é open source, ir atrás de um painel admin ou extensões open source é um ganho, antes de tudo, psicológico.

Você sente que está economizando e entregando um bom resultado.

Porém, diante de um cenário, onde há transações financeiras. Naturalmente haverá benchmarks, comparar o preço entre as soluções. E nesse benchmark talvez só seja viável considerar se for com um painel open source.

Uma solução minimente viável que começa com R$ 64k. Já não é tão mais atraente. A chancela do .NET tem que ser muito forte para permanecer com todo o ecossistema .NET.

Nesse cenário, onde é necessário efetuar um pagamento de $1500, para então, alocar uma equipe e desenvolver o SSO. E depois ter que ir atrás de um painel admin open source, onde não há garantias de compatibilidade ou suporte. Não sinto que é uma boa estratégia.

Se considerar só um ambiente por $1500, empata com Auth0 no quesito preço. Se colocar os demais ambientes, tem que ter motivos sólidos para permanecer com IS4.

Tenho a opinião que eles estão mal posicionados no mercado. Na minha experiencia, tenho visto o IdentityServer4 entrar em empresas pequenas / médias.

Embora o match perfeito para IS4 seja empresas com um ecossistema complexo, utilizando microsserviços. Com diversos times. Ou seja grandes empresas. Que tem condições de pagar tais valores. Mas o IS4 tem dificuldade para entrar nesses ambiente. Uma empresa que está listada na Bovespa tem que seguir padrões de governança e poucos estão dispostos a assumir o risco de construir um SSO. LGPD está ai. É mais barato terceirizar esse risco.

O ponto é que não parece haver um equilibrio entre preços sugerido x empresas que utilizam.

E pela camada de preço há boas alternativas. O lider e mais "queridinho" dos desenvolvedores é a Auth0. (segundo relatório do Gartner). Um player que já tem um ecossistema bem desenvolvido, com diversas features e frameworks.

O IdentityServer4 em contrapartida falha em ter um ecossistema mais bem estruturado. Se você quiser integrar um node ou java com seu IS4, vai encontrar documentação na concorrência.

Diante desse cenário não me parece razoável adotar o IS4 com players a altura na mesma faixa de preço.

Os concorrentes me parecem mais atraentes.

Conclusão

De maneira geral entendo e concordo que o IdentityServer tem que ser pago. O projeto já provou o que tinha que provar. Ele é bom, seguro e estável. Tem um bom suporte. Especialistas por detrás dele. E o melhor, feito em .NET Core.

O problema não é fácil resolver. A primeira noticia e sua tabela de preço assusta. Os criadores estão cientes e prometem trabalhar em cima.

Acredito que esse primeiro posicionamento não foi legal e eles sentiram o golpe. Mas temos que relevar que anunciaram a empresa fazem alguns dias. Nada que não possa ser revisado.

Quem sabe se tiver uma politica de preços mais acessivel ou um modelo diferente, por usuários por exemplo. Ter uma camada gratuíta para produção, com usuários limitados, ao invés de clients, para suprir o problema dos ambientes de teste.
São ideias que pode agradar mais e que já são práticadas no mercado.

Além de agradar pode aproveitar melhor os desenvolvedores que fizeram download 12 milhões de vezes.

O IdentityServer4 carece de um ecossitema mais rico fora do mundo .NET. Como documentação e exemplos com node, java, azure, aws. Sempre que buscamos materiais que não seja .NET caimos num tutorial da Okta ou do Auth0.

O Duende IdentityServer4, acabou de lançar. Com uma chuva de criticas e problemas que chegou até os fórums do .NET. Acredito que essa história não acabou e ainda haverá novidades.

Para nós, basta aguardar.

Referências