Nouvelles Chroniques d'Amethyste

Penser au Sens, pas au Verbe


Poster un commentaire

Générer une page d’aide pour vos Web Api

C’est une fonctionnalité que j’ai découvert par hasard il y a quelques jours: le template de site Web Api installe également un outil de génération de pages d’aide pour nos Api, pas besoin de Swagger ou autre, c’est automatique.

J’ai voulu en savoir plus, d’où cet article qui explique comment ça marche et comment personnaliser les pages.

Lire la suite


Poster un commentaire

Se connecter à une API REST protégée par Azure AD avec un site web – partie I

Je poursuis l’exploration des différents scénarios OAuth2 dans le contexte Azure AD.

Cette fois je vais analyser le cas où le client de la Web Api est une application confidentielle, ce qui est le cas le plus fréquent. Je ferai également la démonstration du dernier scénario d’authentification OAuth2 restant à tester.

  • Démonstration du scénario OAuth2 : autorisation implicite (implicit grant)
  • La librairie Adal.js

 

Il y a pas mal de choses à dire, je vais donc découper cet article en deux parties.

Lire la suite


Poster un commentaire

La librairie SMO

Dans un récent projet j’ai eu besoin de restaurer et supprimer des bases de données SQL Server via un code C#.

Comment faire? La solution est l’utilisation de la librairie SMO (SQL Server Management Objects) que j’ai découvert pour l’occasion. Cette librairie fournit tout ce dont on a besoin pour ce genre d’opérations et bien d’autres.

Comme j’ai un peu galéré pour trouver des exemples qui fonctionnent, voici un petit article rapide sur le sujet.

Lire la suite


1 commentaire

Se connecter à une Api protégée par Azure AD avec une application native

Après avoir vu comment protéger un site Web, nous allons voir comment protéger une Api Rest.

 

On pourrait penser qu’il s’agit de la même chose et de fait il y a de nombreuses similitudes.  Il existe une différence importante, c’est que le client sera assez souvent une application native: console, desktop, appli mobile, test unitaire…

Et cela change un certain nombre de choses vis à vis de OAuth et Azure AD. J’expliquais dans l’article qui précède qu’OAuth2 propose 4 schémas d’authentification. Les schémas supplémentaires sont là, entre autre, pour répondre aux besoins des clients natifs.

Pourquoi cela? On a besoin de distinguer deux types de client:

  1. les clients confidentiel (confidential client)
    Clients qui tournent sur un serveur comme une application Web. Ces clients on la capacité de conserver en toute sécurité les identifiants
    Ces clients envoient leur Id et le secret dans les requêtes pour obtenir un jeton
  2. les clients public (public client)
    Client qui tourne sur la machine ou le périphérique du client
    Il n’est évidement pas question de placer un secret dans la configuration de ce genre de client. On doit obtenir le jeton de façon indirecte, nous verrons comment

 

Voyez cet article comme la suite de celui-ci:

https://amethyste16.wordpress.com/2017/03/30/proteger-une-application-avec-azure-ad/

Je n’y reprendrai en effet pas certaines explications comme l’inscription dans Azure AD d’une application ou la récupération des configurations.

Au programme :

  • Création d’une application de démo
  • Configuration de l’authentification dans Azure
  • Démonstration des schémas de base d’OAuth2 suivants:
    Schéma autorisation via un code (Authorization Code Grant Flow)
         Schéma Autorisation serveur à serveur (Client Credential Grant Flow)
         Schéma autorisation via mot de passe (Resource owner password grant flow)
  • Consentement et permissions

 

Dans cet article je vais rester dans le cadre des applications de type line of business (LOB), c’est à dire  mono-tenantes. Attendez vous à un article plutôt dense techniquement. J’y ai passé pas mal de temps pour aller plus loin qu’un « hello world ».

 

Un dernier point, pour toute la suite, les applications seront inscrites avec un compte admin. cela a des impacts sur la gestion des consentements, mais je ne l’aborde pas dans cet article.

Lire la suite


Poster un commentaire

Protéger une application avec Azure AD

Protéger une application avec Azure AD permet d’imposer un mécanisme d’authentification pour y accéder.

Cet article sera suivit d’un second consacré à la connexion vers une Web Api protégée à partir de divers clients.

Je vais développer ici:

  • quelques révisions sur OAuth2
  • Comment créer et déployer une application avec authentification grâce à Visual Studio
  • Comment enregistrer une application dans Azure AD
  • Comment récupérer les configurations dans Azure AD
  • Comment mettre en place un middleware d’authentification OpenId Connect

Lire la suite


Poster un commentaire

Utiliser l’émulateur avec un bot déployé sur Azure ou un serveur distant

On a déployé le bot, sur Azure par exemple, ce qui nous donne un point de terminaison de cette forme:

http://XXXXXXXXXXX.azurewebsites.net/

Il est tentant de connecter l’émulateur directement sur ce point de terminaison plutôt que de lancer localement le bot sur une url en localhost:

2017-03-05_11-48-41

N’oubliez pas de saisir les valeurs AppId et Password.

 

Si on lance une conversation toutefois:

2017-03-05_11-50-25

Le bot ne fonctionne pas très bien.

Lire la suite