Azure AD B2C: How to revoke refresh tokens?

Welcome back to the… but first:

That was quite a break since my last post here… But enough of my laziness, it’s time to resume the Azure AD B2C series (or should I already call it Azure AD External Identities maybe?), the rest of the blog and my other community activities which died out recently.

So, welcome back to the AAD B2C series!

Introduction

While using OAuth you sooner or later encounter a refresh token which allows retrieving new access token for application without any user interaction. However, as you add new features, applications, etc. and your solution grows you might meet with a challenge of invalidating those tokens. This posts covers different scenarios and options you have to do that in Azure AD B2C service.

Continue reading “Azure AD B2C: How to revoke refresh tokens?”

AAD B2C Quick Tips: query string parameters

Introduction

Maybe my idea or use case I came up with was weird and it’s my fault in general but I battled the problem of passing a parameter inside the AAD B2C policy for over a day with no progress at all.

I tried docs, StackOverflow, I’ve read all conversations in Azure Advisors which could give me a hint how to handle it, I cloned the AAD B2C Samples repository and searched it thoroughly.

I’ve applied every combination I found but still my policy was either throwing errors (some handled gracefully, some not) or it was utterly ignoring my efforts to make it do what I wanted it to do (doing nothing or passing the claim resolver ‘code’ as an actual value, completely unresolved)

The breakthrough was sudden and a bit unexpected as I was slowly starting to think there might be something fundamentally wrong with my tenant. I’ll leave my solution for your future reference, maybe it will save someone’s time.

Continue reading “AAD B2C Quick Tips: query string parameters”

Język polski w Sentiment Analysis

Ucieszyłem się niedawno, że do Cognitive Services – Text API – Sentiment Analysis dodano obsługę języka polskiego. Preview bo preview, ale pierwsze koty za płoty.

Dzisiaj zrobiłem pierwsze próby wykorzystania, luźno inspirowane artykułem dotyczącym analizy emocjonalnej i klasyfikacji tekstów fabularnych. Continue reading “Język polski w Sentiment Analysis”

Data Lake Store Access – tips’n’tricks

Mam kilka rozgrzebanych wpisów, od wczesnego szkicu po prawie-finalne wersje, ale nie mogę się zebrać za ich wykończenie. Zatem na bezrybiu i rak ryba – krótko o tym jak klikać dostępy do Azure Data Lake Store (klikać – tzn. że robiłem to z Portalu, być może jest jakaś sprytniejsza, sympatyczniejsza opcja, jeszcze nie wnikałem).

Niezależnie czy dostęp chce się nadać “normalnemu” użytkownikowi czy aplikacji w AD (do autoryzacji service-to-service) robi się to tak samo.

Załóżmy, że mamy konto ADLS i w nim przykładową ścieżkę folderów: /pro/wojtek/blog/… Continue reading “Data Lake Store Access – tips’n’tricks”

Oh the irony…

Bloga ogarnęła pewna posucha, za co przepraszam. Przeciwności losu nie dały mi za bardzo dokończyć tego, co miałem zaplanowane. Obiecuję troszkę więcej aktywności w przyszłym tygodniu (community delivers!).

A tymczasem mała, niezbyt azurowa, za to cross-systemowa anegdotka. Postanowiłem zrobić lokalną kopię starego systemu napisanego w PHP i hostowanego gdzieś w Internetach na maszynie z linuksem.

Na początek zaznaczę, że jestem użytkownikiem Windows. Utworzyłem sobie pachnący nowością, pusty folder i rozpocząłem kopiowanie. Wszystko zgodnie z planem, aż do momentu gdy… “Plik o takiej nazwie już istnieje”.

W ciągu parunastu sekund przeszedłem od zaskoczenia, przez załamanie, po śmiech.

Etap 1) Irytacja. Co do licha, jak to istnieje?! Pusty folder!

Etap 2) Oświecenie z załamaniem. Nieeee, to niemożliwe… skrypty o “tej samej” nazwie, tylko dużą albo małą literą. W tym samym folderze. Rewelacja.

Etap 3) Śmiech. No nic, podamy inną nazwę i potem będziemy coś poprawiać. Jak to się tam nazywa? “checkunique.php”

The irony was strong with this one! 🙂

Nauka na przyszłość – nie zabierać się za legacy stuff w piątek 😉

Dziś klasyka – Storage i WebJobs

Tak się akurat złożyło, że ostatnio robiłem jakieś refactorowe zmiany i zwyczajne zmagania z tuningiem Storage i WebJobów wypełniały mi większość dnia. Tym bardziej, skoro jestem na bieżąco, przykuły moją uwagę posty z zasubskrybowanych blogów.

Najpierw Storage:

Super seria trzech artykułów o możliwościach Storage i best practices w programowaniu (ustawienia konkretnych parametrów dla konkretnych przypadków) oraz projektowaniu (np. partycjonowanie we wszystkich usługach Storage). Świetne artykuły, planuję wykorzystać niektóre rady. Continue reading “Dziś klasyka – Storage i WebJobs”

Niespodzianka powiększonej quoty

Na przełomie poprzedniego i bieżącego roku pierwszy raz miałem przyjemność (czy też coś w rodzaju przyjemności) przeprowadzać operację powiększenia quoty na jednej z usług, konkretnie na Notification Hub Namespace.

Ograniczenie stanowiła maksymalna liczba hubów, które można założyć w pojedynczym namespace (w przypadki Tieru Standard – 100). Potrzeba posiadania ponad 100 hubów może się wydać nieco dziwna, ale jednak jest realna. Przy specyficznej działalności wydawniczej w zakresie aplikacji mobilnych, nie jest to szczególnie trudne do osiągnięcia, zwłaszcza dla większych wydawnictw. Continue reading “Niespodzianka powiększonej quoty”

Fun with Functions – tanie schedulowanie

Jest taka usługa w Azure jak Scheduler. Usługa jak usługa – pozwala odpalać pewien zestaw akcji, zasadniczo przewidzianych pod kątem webjobów, via request HTTP (do tych ręcznie wywoływanych) albo via kolejka (do tych continuous) o zadanym czasie. Ma różne opcje i udogodnienia, ale ma też wady – przede wszystkim raczej proste ustawienie cyklu, ogarnia co prawda strefy czasowe, ale czas letni/zimowy już nie, w dodatku w opcji bezpłatnej wykonywać można najczęściej co godzinę. Continue reading “Fun with Functions – tanie schedulowanie”

Azure SQL i wyczerpanie connection pool size

“Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.”

Dla bardziej doświadczonych ode mnie programistów pewnie nie ma to żadnej tajemnicy. Wiedzą co może powodować takie zachowanie, potrafią napisać kod, który będzie bezpieczny od takiego “efektu”. Z kolei administratorzy DB wiedzą bez wątpienia jak namierzyć i monitorować takie niebezpieczne sytuacje. Continue reading “Azure SQL i wyczerpanie connection pool size”